a.   Mesh Object Definition

The data structure which contains the information necessary to define a mesh is called a Mesh Object. A Mesh Object consists of attributes. There is a default template for a Mesh Object composed of the following attributes:

name (character *32 – mesh object name) []{#scalarscalar (integer – defined to have value 1) []{#vectorvector (integer – defined to have value 3) []{#nnodesnnodes (integer – number of nodes in the mesh) []{#nelementsnelements (integer – number of elements in the mesh, e.g. triangles, tetrahedra)

nfaces (integer – number of unique topological facets in the mesh, e.g. number of edges in 2D or number of element faces in 3D) – (not set or maintained by LaGriT; may be set and maintained by the user)

nedges (integer – number of unique edges in mesh) – (not set or maintained by LaGriT; may be set and maintained by the user) []{#mbndrymbndry (integer – value signifying that if the node number is greater that mbndry then the node is a boundary node) – (default 16000000) (must be greater than 48 *nnodes and may be reset by connect) (for an example of usage see Section III.d) []{#ndimensions_topondimensions_topo (integer – topological dimensionality,1, 2 or 3, i.e. a non-planar surface would have ndimensions_topo = 2 and ndimensions_geom = 3.) []{#ndimensions_geomndimensions_geom (integer – 1, 2 or 3 for dimension of geometry) (default 3)

nodes_per_element (integer – value dependent on type of mesh; e.g. for tetrahedral mesh the value will be 4)

edges_per_element (integer – value dependent on type of mesh; e.g. for tetrahedral mesh the value will be 6)

faces_per_element (integer – topological number of facets per element (i.e. in 1D this number is always 2, for 2D use the number of edges of the element, for 3D use the number of faces of the element.–( value dependent on type of mesh; e.g. for tetrahedral mesh the value will be 4)) []{#isetwdisetwd (integer array containing pset membership information, see pset command definition)

ialias (integer array of alternate node numbers, i.e. for merged points) []{#imt1imt1 (integer array of node material) []{#itp1itp1 (integer array of node type if type > 20 node will be invisible)

 


point type name description 0  int Interior 2 ini  Interface 3 vrt Virtual 4 vin Virtual + interface 8  vif Virtual + interface + free 9 alb Virtual + Interface + free + reflective 10 rfl  Reflective boundary node  11 fre Free boundary node  12 irb Interface node on reflective boundary  13 ifb Interface node on free boundary 14 rfb Node on intersection of free boundary and  reflective boundary 15 irf  Interface node on intersection of free boundary  and reflective boundary  16  vrb  Virtual node on reflective boundary 17 vfb Virtual node on free boundary  18  vrf Virtual node on free + reflective boundary  19 vir Virtual + interface node on reflective boundary 20 mrg Merged node  21 dud  Dudded node 41  par Parent node ———— —— —————————————————————- []{#icr1icr1 (integer array of constraint numbers for nodes; the value of this array is an index into the icontab table of node constraints described later in this section) []{#isn1isn1 (integer array of child, parent node correspondence)

Points on material interfaces are given point type 41 (parent). One child point is spawned for each material meeting at the parent point. The isn1 field of the parent point will contain the point number of the first child point. The isn1 field of the first child will contain the point number of the next child. The isn1 field of the last child will contain the point number of the parent. The point types of the child points will be 2, 12, 13, 15 or 19 depending on whether the interface point is also on an exterior boundary. This parent, child relationship is established by the settets command. []{#xicxic, yic, zic (real arrays of node coordinates) []{#itetclritetclr (integer array of element material) []{#itettypitettyp (element shape)  (for an example of usage seeSection III.d)

 


name value  description ifelmpnt 1 point  ifelmlin 2 line  ifelmtri 3 triangle  ifelmqud 4 quadrilateral  ifelmtet 5 tetrahedron  ifelmpyr 6 pyramid ifelmpri 7 prism  ifelmhex 8 hexahedron  ifelmhyb 9 hybrid ifelmply 10 polygon ———- ——- —————-

See supported element types.

xtetwd (real array containing eltset membership information, see eltset command definition )

itetoff (index into itet array for an element)  (for an example of usage see Section III.d)

jtetoff (index into jtet array for an element)  (for an example of usage see Section III.d)

itet (integer array of node vertices for each element)  (for an example of usage see Section III.d)

jtet (integer array of element connectivity)  (for an example of usage see Section III.d)

ipolydat (character default yes) flag to dump/gmvto output polygon data

vor2d  (character default yes) flag to dump/gmv to output voronoi cells and median mesh cells for 2D meshes.

vor3d  (character default no) flag to dump/gmv to output voronoi cells and median mesh cells for 3D meshes.

epsilon (real) value of machine epsilon which will be calculated by the code.

epsilonl (real) value of smallest edge that the code can distinguish will be set internally by the code (see setsize).

epsilona (real) value of smallest area that the code can distinguish will be set internally by the code.

epsilonv (real) value of smallest volume that the code can distinguish will be set internally by the code.

ipointi (integer) node number of the first node of the last set of nodes generated, used by  the 0,0,0 pset syntax

ipointj(integer) node number of the last node of the last set of nodes generated, used by  the 0,0,0 pset syntax

idebug (integer) debug flag values greater than 0 produce increasing levels of output.

itypconv_sm (integer)

maxiter_sm (integer default 25) number of smoothing iterations in the smoothand radapt routines.

tolconv_sm (real)

nnfreq (integer default 1) flag to control reconnection afterrefine - set to zero to turn off reconnection.

ivoronoi (integer default 1) flag to control reconnection criterion :

+1 means restore delaunay

-2 means improve geometric quality of the elements

+2 means adaptive reconnection with user supplied routine (seerecon)

+5 means disable all reconnection

iopt2to2 (integer default 2) flag to contol boundary flips during reconnection (see recon):

0=exterior boundaries

1=interfaces

2=exterior boundaries and interfaces

3=all

dumptype (character default binary) Type of gmv file to write.

velname (character default vels) Name of velocity attribute.

densname (character default ric) Name of density attribute.

presname (character default pic) Name of pressure attribute.

enername (character default eic) Name of energy attribute.

xmin (real default 1) minimum x coordinate of nodes in mesh set bysetsize)

xmax (real default 1) maximum x coordinate of nodes in mesh set bysetsize)

ymin (real default 1) minimum y coordinate of nodes in mesh set bysetsize)

ymax (real default 1) maximum y coordinate of nodes in mesh set bysetsize)

zmin (real default 1) minimum z coordinate of nodes in mesh set bysetsize)

zmax (real default 1) maximum z coordinate of nodes in mesh set bysetsize)

kdtree_level (integer default 0) resolution level ofkdtree– 0 means terminal nodes contain 1 member.

max_number_of_sets (integer default 32) number ofpsetand eltsets allowed - currently restricted to 32.

number_of_psets (integer) number of defined psets in the mesh.

number_of_eltsets (integer) number of defined eltsets in the mesh.

geom_name (character default -defaultgeom-) name of geometry associated with this mesh.  (see geom)

 

The current state of a mesh object can be displayed by thecmo/statuscommand

Note: Many commands and the cmo_get_info subroutine accept itp as equivalent to itp1; icr to icr1, isn to isn1; imt to imt1. The user should never add an attribute whose name is itp,imt,icr,isn.

 

The default Mesh Object can be expanded by adding user defined attributes (see cmo /addatt).

 

The value of parameters can be changed by the cmo/setatt command.

(e.g. cmo/setatt//epsilonl/1.d-9) []{#icontabLaGriT will add attributes to the mesh object in certain instances. For example, if there are any constrained surfaces, reflect, virtual or intrcons types, the following attributes are added to the mesh object:

 


NCONBND number of combinations of constrained surfaces  ICONTAB(50,NCONBND)
ICONTAB(1,i) number of surfaces contributing to the ith constraint  ICONTAB(2,i)  degree of freedom of the ith constraint  ICONTAB(2+j,i)  Surface number of the jth surface contributing to the ith constraint ——————— ———————————————————————-

In order to determine which constraint entry applies to node ip, retrieve the value

i=icr1 (ip), i.e. ICONTAB(1, icr1(ip)) gives the number of surfaces that ip is `on’.

If icr1(ip) is zero there is no constraint on that node.  The number of the surfaces that

ip is ‘on’ are stored in ICONTAB(3,icrl(ip))…ICONTAB(2 + ICONTAB(1,icr1(ip))).


TENSOR  Dimension of XCONTAB  XCONTAB(TENSOR,NPOINTS) This is a 3x3 matrix which multiplied by the velocity vector, constrains the velocity to the degrees of freedom possessed by the node.  May be constructed by calls to constrainv.


b.   Mesh Object Attribute Definition :

 

Each attribute (either default attribute or use added attribute) in a mesh object consists of the following items:

 

      name -               (character) Attribute name

      []{#typetype -                 (character) Attribute type

                                 INT- Integer

                                 REAL - Real number

                                 CHARACTER - character variable of length 32

                                 VINT - Vector of integer

                                 VDOUBLE - Vector of real *8 (this is the default)

                                 VCHAR - Vector of character *32

      rank -                (character) Attribute rank (must be an attribute for this Mesh object)  default is scalar

      length -             (character) Attribute length (must be an attribute for this Mesh object) default is nnodes

      interpolation -  (character) Interpolation option:

                constant - Constant value

                sequence -Set to the node number

                copy -      Copy values

                linear -     Linear interpolation  - this is the default

                user -       User provides a subroutine named user_interpolate (see IV. e.8)

                log -         Logarithmic interpolation

                asinh -     Asinh interpolation

                min -       Set to the minimum

                max -      Set to the maximum

                incmin -  Set to the minimum plus one (vint attribute only)

                incmax -  Set to the maximum plus one (vint attribute only)

                and -       ‘and’ the bits

                or -         ‘or’ the bits

      persistence -     (character) Attribute persistence:

              permanent -  Can not be deleted

              temporary -  Temporary attribute - this is the default

      ioflag -             (character) Attribute IO flag:

                                 default is alg

                   a             Put this attribute on avs dumps

                   g             Put this attribute on gmv dumps

                   f              Put this attribute on fehm dumps

                   l              Put this attribute on LaGriT dumps

                   L             Do not write this attribute to LaGriT dumps

       default -           (real) Attribute value