Main orchestrator for automatic cut generation on multiply-connected domains.
More...
#include <cl_CutFactory.hpp>
Main orchestrator for automatic cut generation on multiply-connected domains.
- See also
- Homology Module Usage Guide
◆ CutFactory()
◆ ~CutFactory()
| belfem::mesh::CutFactory::~CutFactory |
( |
| ) |
|
◆ abstract_nodes()
| Cell< Node * > & belfem::mesh::CutFactory::abstract_nodes |
( |
| ) |
|
◆ close_terminal_loop()
| void belfem::mesh::CutFactory::close_terminal_loop |
( |
Curve * | aCurve, |
|
|
const Cell< Node * > & | aDuplicates, |
|
|
id_t & | aMaxID ) |
|
static |
Closes one terminal curve into a loop.
Every segment is duplicated in reverse, its nodes replaced by aDuplicates( index ) where the node carries an index ( a node at gNoIndex is kept ), the arclength vector is extended by the return pass, the node list is rebuilt and the closed flag set. aMaxID is advanced by one per new segment element. LINE2 and LINE3 only: corners swap and a LINE3 midside stays node 2 of the reversed segment, as in Curve::reverse. The arclength of the return pass follows the reversed segment order. Preconditions, checked with BELFEM_ERROR before anything is allocated: every indexed node has a non-null entry in aDuplicates, and aCurve->arclength() holds one sample per node of the open curve ( n+1 for LINE2, 2n+1 for LINE3 ), as CurveFactory::compute_coordinates writes it. A curve without segments is left untouched.
◆ close_terminal_loops()
| void belfem::mesh::CutFactory::close_terminal_loops |
( |
| ) |
|
◆ create_thin_shell_cuts()
| bool belfem::mesh::CutFactory::create_thin_shell_cuts |
( |
| ) |
|
◆ cuts()
◆ duplicate_and_relink_facets()
| void belfem::mesh::CutFactory::duplicate_and_relink_facets |
( |
| ) |
|
◆ duplicate_nodes_on_face_sidesets()
| void belfem::mesh::CutFactory::duplicate_nodes_on_face_sidesets |
( |
| ) |
|
◆ orient_terminal_curves()
| void belfem::mesh::CutFactory::orient_terminal_curves |
( |
| ) |
|
◆ orient_terminal_curves_2D()
| void belfem::mesh::CutFactory::orient_terminal_curves_2D |
( |
| ) |
|
Gives every 2-D terminal curve the counter-clockwise sense about +z around its tape.
Runs after the slave side is relinked to duplicate nodes and the loops are closed. The sense is read off the master element of the sideset_a facet that carries the first segment: with counter-clockwise elements the master lies to the left of its edge direction and owns the original nodes, so the loop is counter-clockwise exactly when that pass runs against the edge direction. Checked with BELFEM_ERROR: the first segment lies on sideset_a and the master carries its nodes. Homology::reorient_generators applies a global -1 calibrated to this sense.
◆ orient_terminal_curves_sub()
◆ orphaned_nodes()
| Cell< Node * > & belfem::mesh::CutFactory::orphaned_nodes |
( |
| ) |
|
◆ refuse_closed_side_curve_sharing_nodes()
| void belfem::mesh::CutFactory::refuse_closed_side_curve_sharing_nodes |
( |
Mesh * | aMesh, |
|
|
Cell< Protoshell * > & | aShells, |
|
|
const index_t | aNumMeshCurves ) |
|
static |
Refuses a geometrically closed side curve of any shell in aShells that shares a node with a terminal curve of any shell, or with a side curve of another shell.
A closed rim is accepted only when it is isolated: its nodes stay single-valued, while the nodes of a terminal curve are duplicated, and a rim that touches another shell's side curve is treated as open and duplicated, which tears it. Called once the side curves of every shell exist and have been pushed, in shell order, onto aMesh->curves(), which held aNumMeshCurves curves before the first push. Before the throw, shrinks aMesh->curves() back to aNumMeshCurves, then deletes the side curves of every shell and empties each side_curves(). Uses node flag slot 0, which is clear on return and before the throw. Rank 0, before the shell nodes are duplicated.
◆ relink_non_thinshell_facets()
| void belfem::mesh::CutFactory::relink_non_thinshell_facets |
( |
| ) |
|
◆ relink_slave_elements_with_duplicate_nodes()
| void belfem::mesh::CutFactory::relink_slave_elements_with_duplicate_nodes |
( |
| ) |
|
◆ run()
| void belfem::mesh::CutFactory::run |
( |
| ) |
|
◆ save_curve_debug_meshes()
| void belfem::mesh::CutFactory::save_curve_debug_meshes |
( |
| ) |
|
◆ set_periodicity()
◆ set_terminals()
| void belfem::mesh::CutFactory::set_terminals |
( |
const Cell< Cell< id_t > > & | aTerminals, |
|
|
const Cell< id_t > & | aThinShellIndices ) |
◆ thin_shell_boundaries()
| Vector< id_t > & belfem::mesh::CutFactory::thin_shell_boundaries |
( |
| ) |
|
|
inline |
◆ thin_shell_facets()
| Cell< Facet * > & belfem::mesh::CutFactory::thin_shell_facets |
( |
const id_t | aID | ) |
|
|
inline |
◆ thin_shell_master_nodes()
| Cell< Node * > & belfem::mesh::CutFactory::thin_shell_master_nodes |
( |
| ) |
|
|
inline |
◆ thin_shell_slave_nodes()
| Cell< Node * > & belfem::mesh::CutFactory::thin_shell_slave_nodes |
( |
| ) |
|
|
inline |
The documentation for this class was generated from the following files: