12#ifndef BELFEM_CL_CUTFACTORY_HPP
13#define BELFEM_CL_CUTFACTORY_HPP
53 const bool mUseEnrichment ;
73 Homology * mRelativeHomology = nullptr ;
95 bool mSuggestHomologies = true ;
98 bool mUsePoissonInsteadOfRcm = false ;
110 const bool aUseEnrichment );
220 const index_t aNumMeshCurves );
257 return mThinShellBoundaryIDs ;
265 return mTemporaryThinShellSidesets( aID )->facets();
273 return mThinShellMasterNodes ;
281 return mThinShellSlaveNodes ;
290 link_node_duplicates_and_originals();
295 collect_orphan_nodes();
299 collect_nodes_and_elements_on_blocks(
307 compute_rcm_problem();
312 compute_cohomologies();
317 compute_thin_cuts_and_duplicate_interface_nodes();
322 restore_thin_shell_sidesets();
327 write_debug_cohomology(
Homology * aSuggestedHomology ) ;
332 create_curves_for_thinshells();
335 create_side_curves_for_thinshells_3d();
343 check_element_types() ;
349 save_edges(
const uint aIndex );
355 create_cut_sideset_2d(
364 create_cut_sideset_3d(
374 flag_nodes_and_facets_of_tape_sidesets(
Cell< Node * > & aNodes ) ;
384 connect_facet_to_slave(
Facet * aFacet );
389 unflag_symmetry_sidesets();
394 compute_element_adjacencies();
399 compute_poisson_problem();
A bounds-checked wrapper around std::vector.
Definition cl_Cell.hpp:45
Hash map (unordered key-value).
Definition cl_Map.hpp:75
Top-level container for all mesh entities.
Definition cl_Mesh.hpp:60
Computes the cohomology groups H^k of a mesh complex.
Definition cl_Cohomology.hpp:37
Definition cl_Curve.hpp:27
void set_periodicity(PeriodicityFactory *aPeriodicFactory)
Definition cl_CutFactory.cpp:103
Cell< Node * > & abstract_nodes()
Definition cl_CutFactory.cpp:2363
void orient_terminal_curves_sub(SideSet *aSideSet, Vector< real > &aWorkA, Vector< real > &aWorkB, Vector< real > &aN)
Definition cl_CutFactory.cpp:1813
void duplicate_and_relink_facets()
Definition cl_CutFactory.cpp:1485
Vector< id_t > & thin_shell_boundaries()
Definition cl_CutFactory.hpp:255
Cell< Node * > & orphaned_nodes()
Definition cl_CutFactory.cpp:2371
static void refuse_closed_side_curve_sharing_nodes(Mesh *aMesh, Cell< Protoshell * > &aShells, const index_t aNumMeshCurves)
Refuses a geometrically closed side curve of any shell in aShells that shares a node with a terminal ...
Definition cl_CutFactory.cpp:2013
Cell< Node * > & thin_shell_master_nodes()
Definition cl_CutFactory.hpp:271
void orient_terminal_curves()
Definition cl_CutFactory.cpp:1757
static void close_terminal_loop(Curve *aCurve, const Cell< Node * > &aDuplicates, id_t &aMaxID)
Closes one terminal curve into a loop.
Definition cl_CutFactory.cpp:1589
CutFactory(Mesh *aMesh, Topology *aTopology, Cell< Protoshell * > &aProtoshells, const CutAlgorithm aAlgorithm, const bool aUseEnrichment)
Definition cl_CutFactory.cpp:42
void duplicate_nodes_on_face_sidesets()
Definition cl_CutFactory.cpp:1181
void relink_non_thinshell_facets()
Definition cl_CutFactory.cpp:1537
void orient_terminal_curves_2D()
Gives every 2-D terminal curve the counter-clockwise sense about +z around its tape.
Definition cl_CutFactory.cpp:1853
void run()
Definition cl_CutFactory.cpp:111
void set_terminals(const Cell< Cell< id_t > > &aTerminals, const Cell< id_t > &aThinShellIndices)
Definition cl_CutFactory.cpp:95
Cell< SideSet * > & cuts()
Definition cl_CutFactory.cpp:2379
Cell< Facet * > & thin_shell_facets(const id_t aID)
Definition cl_CutFactory.hpp:263
Cell< Node * > & thin_shell_slave_nodes()
Definition cl_CutFactory.hpp:279
void relink_slave_elements_with_duplicate_nodes()
Definition cl_CutFactory.cpp:1406
bool create_thin_shell_cuts()
Definition cl_CutFactory.cpp:1134
void close_terminal_loops()
Definition cl_CutFactory.cpp:1575
void save_curve_debug_meshes()
Definition cl_CutFactory.cpp:2572
Lagrange Element baseclass.
Definition cl_Element.hpp:35
Definition cl_Facet.hpp:24
Computes the homology groups H_k of a mesh complex.
Definition cl_Homology.hpp:36
Creates a Periodicity object by matching nodes on two periodic boundary planes.
Definition cl_Mesh_PeriodicityFactory.hpp:34
Definition cl_SideSet.hpp:29
Simplicial complex reduction engine underlying the homology and cohomology computation.
Definition cl_SimplicialComplex.hpp:37
Analyzes and classifies mesh topology for finite element simulations.
Definition cl_Topology.hpp:44
Definition cl_EF_EdgeFunction.hpp:24
CutAlgorithm
Definition en_CutAlgorithm.hpp:22
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
unsigned int id_t
Definition typedefs.hpp:41
int proc_t
Definition commtypes.hpp:29
ElementType
Element types.
Definition Mesh_Enums.hpp:27
uint32_t index_t
Definition typedefs.hpp:52