* * LaGriT control file to compute distance field between two * point distributions. * * Carl Gable * gable@lanl.gov * * CMO_NAME is the mesh that will have distance field computed on * each node and put into the node attribute, rdist. * * cmo / create / cmosrc / / / tet quadxy/ 200 ,200 / & 4000.,0.,0./20000.,0.,-16000./ & 20000.,16000.,-16000./4000.,16000.,0./ cmo/addatt/CMO_NAME/xobj/VDOUBLE/scalar/nnodes/linear/temporary/agx/-1.0 cmo/addatt/CMO_NAME/yobj/VDOUBLE/scalar/nnodes/linear/temporary/agx/-1.0 cmo/addatt/CMO_NAME/zobj/VDOUBLE/scalar/nnodes/linear/temporary/agx/-1.0 * * Map the x coordinate of the nearest point on the cmosrc (object) mesh * onto the attribute xobj of CMO_NAME. Do the same for y and z. * interpolate/ voronoi / CMO_NAME xobj /1,0,0/ cmosrc xic / keepatt interpolate/ voronoi / CMO_NAME yobj /1,0,0/ cmosrc yic / keepatt interpolate/ voronoi / CMO_NAME zobj /1,0,0/ cmosrc zic * * Now compute rdist = sqrt(x**2 + y**2 + z**2) * cmo/addatt/CMO_NAME/rdist/VDOUBLE/scalar/nnodes/linear/permanent/agx/-1.0 cmo/setatt/CMO_NAME/rdist/ 1 0 0 / -1.0 cmo/addatt/CMO_NAME/temp/VDOUBLE/scalar/nnodes/linear/temporary/agx/-1.0 math/sub/CMO_NAME/temp/1,0,0/CMO_NAME/xic/CMO_NAME/xobj math/power/CMO_NAME/rdist/1,0,0/CMO_NAME/temp/2.0 math/sub/CMO_NAME/temp/1,0,0/CMO_NAME/yic/CMO_NAME/yobj math/power/CMO_NAME/temp/1,0,0/CMO_NAME/temp/2.0 math/add/CMO_NAME/rdist/1,0,0/CMO_NAME/rdist/CMO_NAME/temp math/sub/CMO_NAME/temp/1,0,0/CMO_NAME/zic/CMO_NAME/zobj math/power/CMO_NAME/temp/1,0,0/CMO_NAME/temp/2.0 math/add/CMO_NAME/rdist/1,0,0/CMO_NAME/rdist/CMO_NAME/temp math/power/CMO_NAME/rdist/1,0,0/CMO_NAME/rdist/0.5 * * Clean up * cmo/delatt/CMO_NAME/temp cmo/delatt/CMO_NAME/xobj cmo/delatt/CMO_NAME/yobj cmo/delatt/CMO_NAME/zobj dump / gmv / tmp_distance_field.gmv / CMO_NAME * cmo / delete / cmosrc cmo / select / CMO_NAME * finish