2012-08-09 16:03:55 +06:00
|
|
|
/*!
|
|
|
|
|
|
|
|
\page cartesian_algo_page Body Fitting 3D meshing algorithm
|
|
|
|
|
|
|
|
Body Fitting algorithm generates hexahedrons of a Cartesian grid in
|
|
|
|
the internal part of geometry and polyhedrons and other types of
|
|
|
|
elements at the intersection of Cartesian cells with the geometrical
|
|
|
|
boundary.
|
|
|
|
|
|
|
|
\image html cartesian3D_sphere.png "A shpere meshed by Body Fitting algorithm"
|
|
|
|
|
|
|
|
The meshing algorithm is as follows.
|
|
|
|
<ol>
|
|
|
|
<li> Lines of a Cartesian structured grid defined by
|
|
|
|
\ref cartesian_hyp_anchor "Body Fitting Parameters" hypothesis are
|
|
|
|
intersected with the geometry boundary, thus nodes lying on the
|
|
|
|
boundary are found. This step also allows finding out for each node of
|
|
|
|
the Cartesian grid if it is inside or outside the geometry. </li>
|
|
|
|
<li> For each cell of the grid, check how many of its nodes are outside
|
|
|
|
of the geometry boundary. Depending on a result of this check
|
|
|
|
<ul>
|
|
|
|
<li> skip a cell, if all its nodes are outside </li>
|
|
|
|
<li> skip a cell, if it is too small according to <b> Size
|
|
|
|
Threshold </b> parameter</li>
|
|
|
|
<li> add a hexahedron in the mesh, if all nodes are inside </li>
|
|
|
|
<li> add a polyhedron or another cell type in the mesh, if some
|
|
|
|
nodes are inside and some outside. </li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
</ol>
|
|
|
|
To apply this algorithm when you define your mesh, select <b>Body
|
|
|
|
Fitting</b> in the list of 3D algorithms and click <em> "Add
|
|
|
|
Hypothesis" </em> button and <em>"Body Fitting Parameters"</em>" menu
|
2014-02-04 19:02:26 +06:00
|
|
|
item. Dialog of <b>Body Fitting Parameters
|
2012-08-09 16:03:55 +06:00
|
|
|
hypothesis</b> will appear.
|
|
|
|
|
|
|
|
<br>
|
|
|
|
\anchor cartesian_hyp_anchor
|
|
|
|
<h2>Body Fitting Parameters hypothesis</h2>
|
|
|
|
|
|
|
|
\image html cartesian3D_hyp.png "Body Fitting Parameters hypothesis dialog"
|
|
|
|
|
|
|
|
This dialog allows to define
|
|
|
|
<ul>
|
2014-02-04 19:02:26 +06:00
|
|
|
<li>\b Name of the algorithm. </li>
|
|
|
|
<li> Minimal size of a cell truncated by the geometry boundary. If the
|
|
|
|
size of a truncated grid cell is \b Threshold times less than a
|
|
|
|
initial cell size, then a mesh element is not created. </li>
|
|
|
|
<li> <b> Implement Edges </b> check-box activates incorporation of
|
|
|
|
geometrical edges in the mesh.
|
|
|
|
\image html cartesian_implement_edge.png "'Implement Edges' switched off (left) and on (right)"
|
|
|
|
<li> Cartesian structured grid. Location of nodes along each grid axis
|
|
|
|
is defined individually. <b> Definition mode </b> chooses a way of
|
|
|
|
grid definition:
|
|
|
|
<ul>
|
|
|
|
<li> You can specify the \b Coordinates of grid nodes. \b Insert button
|
|
|
|
inserts a node at distance \b Step (negative or positive) from a
|
|
|
|
selected node. \b Delete button removes a selected node. Double
|
|
|
|
click on a coordinate in the list enables its edition.
|
|
|
|
\b Note that node coordinates are measured along directions of
|
|
|
|
axes that can differ from the directions of the Global Coordinate
|
|
|
|
System.</li>
|
|
|
|
<li> You can define the \b Spacing of a grid as an algebraic formula
|
|
|
|
<em>f(t)</em> where \a t is a position along a grid axis
|
|
|
|
normalized at [0.0,1.0]. The whole range of geometry can be
|
|
|
|
divided into sub-ranges with their own spacing formulas to apply;
|
2012-08-09 16:03:55 +06:00
|
|
|
\a t varies between 0.0 and 1.0 within each sub-range. \b Insert button
|
2014-02-04 19:02:26 +06:00
|
|
|
divides a selected range into two ones. \b Delete button adds the
|
|
|
|
selected sub-range to the previous one. Double click on a range in
|
|
|
|
the list enables edition of its right boundary. Double click on a
|
|
|
|
function in the list enables its edition.
|
|
|
|
</li> </ul>
|
|
|
|
</li>
|
|
|
|
<li> Coordinates of a <b> Fixed Point</b>. They allow to exactly
|
|
|
|
locate a grid node in a direction defined by spacing. If all the three
|
|
|
|
directions are defined by spacing, then there will be a mesh node at
|
|
|
|
the <b> Fixed Point</b>. If two directions are defined by spacing,
|
|
|
|
then there will be at least a link between mesh nodes passing through
|
|
|
|
the <b> Fixed Point</b>. If only one direction is defined by spacing,
|
|
|
|
then there will be at least an element facet passing through
|
|
|
|
the <b> Fixed Point</b>. If no directions are defined by spacing,
|
|
|
|
<b> Fixed Point</b> is disabled.</li>
|
|
|
|
<li> <b> Directions of Axes</b>. You can set up almost any
|
2014-02-04 19:27:03 +06:00
|
|
|
directions of grid axes that can help in generation of as many as
|
2014-02-04 19:02:26 +06:00
|
|
|
possible hexahedral elements.
|
|
|
|
<ul>
|
|
|
|
<li><b> Orthogonal Axes </b> check-box, if activated, keeps the
|
|
|
|
axes orthogonal during their modification. </li>
|
|
|
|
<li> Selection buttons enable snapping corresponding axes to
|
|
|
|
direction of a geometrical edge selected in the Object
|
|
|
|
Browser. Edge direction is defined by coordinates of its end
|
|
|
|
points.</li>
|
|
|
|
<li><b> Optimal Axes</b> button runs an algorithm that tries to
|
|
|
|
set the axes so that a number of generated hexahedra to be
|
|
|
|
maximal.</li>
|
|
|
|
<li><b> Reset </b> button returns the axes in a default position
|
|
|
|
parallel to the axes of the Global Coordinate System.</li>
|
|
|
|
</ul></li>
|
2012-08-09 16:03:55 +06:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
<br>
|
2014-02-04 19:02:26 +06:00
|
|
|
<b>See Also</b> a sample TUI Script of a
|
|
|
|
\ref tui_cartesian_algo "Usage of Body Fitting algorithm".
|
2012-08-09 16:03:55 +06:00
|
|
|
|
|
|
|
*/
|