This routine joins two meshes together at their common interface to produce a third mesh.
Some operations may only work with tet meshes.
NOTE: Care must be taken when using these commands because nothing is done to clean up the point type (itp) array after the addmesh operation. The user must often use the commands resetpts/itp and filter
addmesh / add / mesh3 / mesh1 / mesh2 / [refine_factor] / [tet edge] addmesh / amr / mesh3 / mesh1 / mesh2 / addmesh / append / mesh3 / mesh1 / mesh2 / addmesh / delete / mesh3 / mesh1 / mesh2 / addmesh / glue / mesh3 / mesh1 / mesh2 / addmesh / intersect / pset_name / mesh1 / mesh2 / addmesh / match / mesh3 / mesh1 / mesh2 / i1 12 i3 i4 i5 i6/ addmesh / match / mesh3 / mesh1 / mesh2 /rx1 ry1 rz1/rx2 ry2 rz2/rx3 ry3 rz3/rx4 ry4 rz4/rx5 ry5 rz5/rx6/ry6/rz6/ addmesh / merge / mesh3 / mesh1 / mesh2 / addmesh / pyramid / mesh3 / mesh1 / mesh2 / addmesh / excavate / mesh3 / mesh1 / mesh2 / [bfs] / [connect] /
add
- Find the intersection of mesh1 and mesh2. Refine mesh1 where
it overlaps mesh2 using the following criteria. refine_factor
specifies the number of times that the background mesh will be
refined. If this number is negative, or if it does not appear, then
the it will use the default. The default method determines the number
of refinement iterations based on the volumes of the tets. It
continues to refine until the elements on the interface boundary of
the background mesh object are within a given factor (5.0) of the
volume of the elements on the border of the incoming mesh object. This
factor is a parameter constant called size_difference
in the code
continue_refinement.f
. For example, if size_difference
is set to
5.0, then the background mesh will be refined until the maximum volume
element on the boundary with the incoming mesh object is no bigger
than 5 times the volume of the maximum volume element on the border of
the incoming mesh. refine_type is the type of refinement that is
executed. If the string tet
appears, then tetrahedral refinement
is performed. Otherwise, edge
based refinement is performed. After
the above refine steps have been done, the intersection of mesh1 and
mesh2 is found, elements that overlap are deleted from mesh1 and mesh2
is appended to mesh1 to create mesh3.
merge
- Append mesh2
to to mesh1
and create mesh3
. Essentially
this just concatenates two mesh objects.
glue
- Synonym for merge
.
append
- Append mesh2 to mesh1 and create mesh3. Similar to
merge
except imt
, icr
, itetclr
of mesh2 have the value
max(imt(mesh1))
added to mesh2.
delete
- Create mesh3 which is mesh1 with elements that intersect
mesh2 deleted.
intersect
- Create a pset called pset_name
that contains all
nodes in mesh1 which intersect elements of mesh2.
amr
- Use Adaptive mesh refinement to connect background mesh1
with submesh mesh2 and create mesh3.
match
- Same as merge
except the second mesh can be moved,
rotated and translated. The first mesh does not move scale or rotate.
If the interface needs to be scaled, translated and rotated that is
accomplished by specifing 3 node numbers in each mesh or 3 node
coordinates from each mesh that are to become coincident. If nodes are
given match i1-i4
, i2-i5
, i3-i6
. If coordinates are given match
(x1,y1,z1)-(x4,y4,z4)
, etc.
pyramid
- join a hex mesh to a tet mesh. The common surface must
have matching nodes (i.e. there must be exactly two triangle faces on
the tet grid that fit into one quad face of the hex grid). Pyramid
elements will be constructed in the region where the two meshes join.
excavate
- The circumscribed sphere of each triangle of mesh2 is computed and any node in mesh1 that falls inside one of the circumscribed spheres is marked as a dudded node, along with any cells of mesh1 associated with these nodes. mesh1 must be a 3D mesh (of any geometry) and mesh2
must be a 2D triangular mesh. This then excavates an area in mesh1
around mesh2, such that the surface could then be inserted into the 3D
mesh (such as to insert a fault into a background terrain mesh). The
background mesh, minus the excavated/removed nodes, is put into mesh3.
The following options are available:
[bfs]
will use a breadth-first search algorithm to find nodes to remove, as opposed to
the default KD-tree algorithm. This will find candidate nodes for deletion within the maximum circumradius of the surface. Then a breadth-first search across the surface will be searched for an element large enough to contain the candidate node.[connect]
after excavation the following commands will be executed: addmesh/append
and then connect. This will produce a fully connected mesh with the surface
(mesh2) inserted into the background (mesh1).