initial upload
This commit is contained in:
127
documentation/lagrit_manual/commands/addmesh.txt
Executable file
127
documentation/lagrit_manual/commands/addmesh.txt
Executable file
@@ -0,0 +1,127 @@
|
||||
.. _addmesh:
|
||||
|
||||
 _place_holder;
|
||||
|
||||
> **_ADDMESH_**
|
||||
|
||||
>
|
||||
|
||||
>> This routine joins two meshes together at their common interface to produce
|
||||
a third mesh.
|
||||
|
||||
>
|
||||
|
||||
> FORMAT:
|
||||
|
||||
>
|
||||
|
||||
>> **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** - 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. If the optional [bfs] argument is
|
||||
given, the routine will use a breadth-first search algorithm to find nodes to
|
||||
remove, as opposed to the default KD-tree algorithm. If the optional [connect]
|
||||
argument is given, the program will, after excavation, execute an
|
||||
addmesh/append, and then a connect, to produce a fully connected mesh with the
|
||||
surface (mesh2) inserted into the background (mesh1).
|
||||
|
||||
> 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 execute a series of [**resetpts**/**itp**](RESETPT.html) and
|
||||
**[filter](FILTER.html)** commands to get the final desired result.
|
||||
|
||||
>
|
||||
|
||||
> NOTE: _place_holder; Some operations may only work with tet meshes.
|
||||
|
||||
 _place_holder;
|
||||
|
||||
>
|
||||
|
||||
> [Click here for demos](http://lagrit.lanl.gov/docs/demos/)
|
||||
|
||||
|
||||
 _place_holder;
|
||||
|
||||
Reference in New Issue
Block a user