12#ifndef BELFEM_CL_MESH_HPP
13#define BELFEM_CL_MESH_HPP
183 Mesh(
const uint aNumberOfDimensions,
const proc_t aMasterProc=0,
const bool aComputeConnectivities =
true );
193 Mesh(
const string & aPath,
194 const proc_t aMasterProc = 0,
195 const bool aComputeConnectivities =
true,
196 const bool aParallelMode =
true );
208 const proc_t aMasterProc = 0 );
243 save(
const string & aFilePath );
387 field(
const string & aLabel );
468 const string & aLabel,
470 const id_t aID = 0 );
476 const real aValue = 0.0,
477 const id_t aID = 0 );
737 const uint & aNumberOfPartitions,
738 const bool aSetProcOwners =
true,
739 const bool aForceContinuousPartitions =
true,
740 const bool aResetVertexContainers =
true );
750 const bool aSetProcOwners =
true,
751 const bool aForceContinuousPartitions =
false,
752 const bool aResetVertexContainers =
true );
763 const bool aSetProcOwners =
true,
764 const bool aForceContinuousPartitions =
false,
765 const bool aResetVertexContainers =
true );
802 const bool aCreateEdgesOnAllSideSets =
true );
1166 set_sideset_indices();
1172 set_block_indices();
1180 compute_max_element_order();
1185 compute_edge_directions();
1198 inline const string &
1306 "Tried to access invalid node id: %lu.",
1307 (
long unsigned int ) aID );
1318 "can only access node over 2d index on 2d-tensormeshes" );
1329 "can only access node over 3d index on 3d-tensormeshes" );
1339 "Tried to access invalid edge id: %lu.",
1340 (
long unsigned int ) aID );
1351 "Tried to access invalid face id: %lu.",
1352 (
long unsigned int ) aID );
1371 "Tried to access invalid element id: %lu.",
1372 (
long unsigned int ) aID );
1383 "can only access element over 2d index on 2d-tensormeshes" );
1394 "can only access element over 3d index on 3d-tensormeshes" );
1405 "Tried to access invalid control point id: %lu.",
1406 (
long unsigned int ) aID );
1415 "can only access control point over 2d index on 2d-tensormeshes" );
1425 "can only access control point over 3d index on 3d-tensormeshes" );
1447 "Tried to access invalid facet id: %lu.",
1448 (
long unsigned int ) aID );
1459 "Tried to access invalid block id: %lu.",
1460 (
long unsigned int ) aID );
1471 "Tried to access invalid sideset id: %lu.",
1472 (
long unsigned int ) aID );
1483 "Tried to access invalid vertex id: %lu.",
1484 (
long unsigned int ) aID );
1503 "Field '%s' does not exist on mesh", aLabel.c_str());
1523 "Field '%s' does not exist on mesh", aLabel.c_str());
1894 return this->
node( aID );
1898 return this->
edge( aID );
1902 return this->
face( aID );
1910 return this->
facet( aID );
2014 template<
typename T >
2019 for( T * tBasis : aBasis )
2021 if( tBasis->is_hanging() )
2029 aHangingBasis.
clear();
2033 aHangingBasis.
set_size( tCount,
nullptr );
2035 for ( T * tBasis: aBasis )
2037 if ( tBasis->is_hanging())
2039 aHangingBasis( tCount++ ) = tBasis;
#define BELFEM_ERROR(aCheck,...)
Definition assert.hpp:264
#define BELFEM_ASSERT(aCheck,...)
Definition assert.hpp:244
void reset(const index_t aIndex)
set a bit to false
Definition cl_Bitset.hpp:103
void set(const index_t aIndex)
set a bit to true
Definition cl_Bitset.hpp:92
bool test(const index_t aIndex) const
test if a bit is set
Definition cl_Bitset.hpp:138
Bitset()=default
trivial constructor
A bounds-checked wrapper around std::vector.
Definition cl_Cell.hpp:45
void set_size(const size_t aSize)
New elements are value-initialized ( zero for arithmetic T, nullptr for pointers ).
Definition cl_Cell.hpp:199
size_t size() const
Definition cl_Cell.hpp:189
void clear()
Empties the Cell.
Definition cl_Cell.hpp:249
Incremental hash computation.
Definition cl_Hash.hpp:29
Hash map (unordered key-value).
Definition cl_Map.hpp:75
bool key_exists(const Key &aKey) const
Definition cl_Map.hpp:161
Top-level container for all mesh entities.
Definition cl_Mesh.hpp:60
Cell< mesh::Element * > mHangingElements
Definition cl_Mesh.hpp:101
Cell< mesh::ControlPoint * > & control_points()
Owned and deleted by the mesh.
Definition cl_Mesh.hpp:1771
Cell< mesh::Edge * > mHangingEdges
Definition cl_Mesh.hpp:98
mesh::Field * field(const string &aLabel)
get field by label
Definition cl_Mesh.hpp:1500
void update_facet_indices()
Definition cl_Mesh.cpp:433
const proc_t mCommSize
Definition cl_Mesh.hpp:68
bool mEdgesAreFinalized
Definition cl_Mesh.hpp:150
Cell< mesh::Element * > & vertices()
Owned and deleted by the mesh.
Definition cl_Mesh.hpp:1803
void set_kernel_flag()
called by kernel
Definition cl_Mesh.hpp:1811
void set_periodicity(mesh::Periodicity *aPeriodicity)
The mesh takes ownership and deletes aPeriodicity.
Definition cl_Mesh.hpp:1972
bool mesh_checker_flag() const
Definition cl_Mesh.hpp:2006
Cell< mesh::Curve * > & curves()
Owned and deleted by the mesh.
Definition cl_Mesh.hpp:1732
void update_sideset_map()
Definition cl_Mesh.cpp:2347
void unflag_all_nodes(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1018
Map< id_t, mesh::Element * > mElementMap
Definition cl_Mesh.hpp:132
Cell< mesh::Facet * > mFacets
Definition cl_Mesh.hpp:87
void add_sideset(mesh::SideSet *aSideSet)
Takes ownership of aSideSet: ~Mesh deletes the sideset and, through it, its facets.
Definition cl_Mesh.cpp:2162
Cell< mesh::Node * > & hanging_nodes()
Returns views of entities the mesh owns through the containers below.
Definition cl_Mesh.hpp:1952
index_t number_of_faces() const
Definition cl_Mesh.hpp:1271
void set_vertex_owners()
Definition cl_Mesh.cpp:1628
Map< id_t, mesh::GlobalVariable * > mGlobalVariableIDMap
Definition cl_Mesh.hpp:113
Cell< mesh::ControlPoint * > mHangingControlPoints
Definition cl_Mesh.hpp:102
Map< id_t, mesh::ControlPoint * > mControlPointMap
Definition cl_Mesh.hpp:139
void create_edge_map()
special function called by Kernel
Definition cl_Mesh.cpp:1520
mesh::Edge * edge(const id_t aID)
Definition cl_Mesh.hpp:1336
void update_element_indices()
Definition cl_Mesh.cpp:446
void update_element_map()
Definition cl_Mesh.cpp:2324
const uint & time_step() const
The current timestep index.
Definition cl_Mesh.hpp:1596
bool facet_exists(const id_t aID) const
Definition cl_Mesh.hpp:1436
proc_t mNumberOfPartitions
Definition cl_Mesh.hpp:117
Cell< mesh::Node * > & autopins()
Definition cl_Mesh.hpp:1827
void create_curve_map()
Definition cl_Mesh.cpp:2678
index_t number_of_facets() const
Definition cl_Mesh.hpp:1255
void unflag_all_control_points(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1169
Cell< mesh::Block * > mBlocks
Definition cl_Mesh.hpp:104
Cell< mesh::Face * > & faces()
Owned and deleted by the mesh.
Definition cl_Mesh.hpp:1787
Cell< mesh::Element * > mVertices
Definition cl_Mesh.hpp:88
Cell< mesh::Element * > mBoundaryEdges
Definition cl_Mesh.hpp:95
index_t number_of_elements() const
Definition cl_Mesh.hpp:1247
void compute_facet_orientations()
Definition cl_Mesh.cpp:713
bool node_exists(const id_t aID) const
Definition cl_Mesh.hpp:1675
uint load_meta(hid_t aFile)
Definition cl_Mesh.cpp:2876
void populate_element_neighbors()
Definition cl_Mesh.cpp:2532
Map< id_t, mesh::Node * > mNodeMap
Definition cl_Mesh.hpp:131
void finalize_faces()
Definition cl_Mesh.cpp:961
void update_block_map()
Definition cl_Mesh.cpp:2337
void unflag_all_faces(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1076
void update_facet_nodes()
Definition cl_Mesh.cpp:628
Cell< mesh::Facet * > mHangingFacets
Definition cl_Mesh.hpp:100
bool global_variable_exists(const string &aLabel)
Definition cl_Mesh.hpp:1564
uint mNumberOfGlobalVariables
Definition cl_Mesh.hpp:120
void save_meta(hid_t aFile, const uint aRunningTimestep=0)
Definition cl_Mesh.cpp:2859
void save_globals(hid_t aFile)
Definition cl_Mesh.cpp:2932
bool mMeshCheckerFlag
Definition cl_Mesh.hpp:174
void distribute_edge_directions()
Collective and asymmetric: every rank must enter; rank 0 distributes the per-owner edge signs,...
Definition cl_Mesh.cpp:1764
void set_time_step(const uint aTimeStep)
set the index of the time step
Definition cl_Mesh.hpp:1611
void collect_facets_from_sidesets()
Definition cl_Mesh.cpp:597
Cell< mesh::SideSet * > & sidesets()
The mesh owns the sidesets; a sideset owns and deletes its facets.
Definition cl_Mesh.hpp:1724
uint number_of_fields() const
Definition cl_Mesh.hpp:1572
const string & path() const
Definition cl_Mesh.hpp:1199
Vector< real > & field_data(const string &aLabel)
Definition cl_Mesh.hpp:1520
Map< id_t, mesh::Block * > mBlockMap
Definition cl_Mesh.hpp:134
uint64_t config_tag() const
Definition cl_Mesh.cpp:2268
const proc_t mMasterProc
Definition cl_Mesh.hpp:66
uint number_of_sidesets() const
Definition cl_Mesh.hpp:1295
Cell< mesh::Facet * > & facets()
A flat list of the facets of all sidesets.
Definition cl_Mesh.hpp:1765
id_t max_block_and_sideset_id()
Definition cl_Mesh.cpp:2116
uint number_of_dimensions() const
Definition cl_Mesh.hpp:1223
Cell< mesh::Node * > mAbstractNodes
Definition cl_Mesh.hpp:165
void save(const string &aFilePath)
Master rank only, a no-op elsewhere; the mesh must be finalized.
Definition cl_Mesh.cpp:316
void update_node_indices()
Definition cl_Mesh.cpp:397
void unflag_all_elements(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1132
void update_face_indices()
Definition cl_Mesh.cpp:421
index_t number_of_edges() const
Definition cl_Mesh.hpp:1263
bool block_exists(const id_t aID) const
Definition cl_Mesh.hpp:1659
Cell< mesh::ThinShell * > & thin_shells()
Owned and deleted by the mesh.
Definition cl_Mesh.hpp:1749
id_t max_element_id()
Definition cl_Mesh.cpp:2061
void set_compute_facet_orientation_flag(const bool aFlag)
Definition cl_Mesh.hpp:1925
void load_globals(hid_t aFile)
Definition cl_Mesh.cpp:2956
void collect_elements_from_blocks()
Definition cl_Mesh.cpp:563
void reset_connectivity(const Connectivity aConnectivity)
Definition cl_Mesh.hpp:1627
bool mIsKernelMesh
flag telling if this is a mesh on the kernel
Definition cl_Mesh.hpp:146
bool edges_exist() const
tells if Nedelec edges exist on this mesh
Definition cl_Mesh.hpp:1683
Cell< mesh::Node * > mOrphanedNodes
Definition cl_Mesh.hpp:166
const TensorMeshConfig * mTensorConfig
Definition cl_Mesh.hpp:170
void update_edge_indices()
Definition cl_Mesh.cpp:409
real & create_global_variable(const string &aLabel, const real aValue=0.0, const id_t aID=0)
Definition cl_Mesh.cpp:524
mesh::Periodicity * mPeriodicity
Definition cl_Mesh.hpp:172
mesh::Block * block(const id_t aID)
Definition cl_Mesh.hpp:1456
string mPath
Definition cl_Mesh.hpp:83
void update_vertex_indices()
Definition cl_Mesh.cpp:458
Bitset< static_cast< size_t >(Connectivity::UNDEFINED)> mConnectivities
Definition cl_Mesh.hpp:168
void set_number_of_partitions(const proc_t &aNumberOfPartitions)
to be called by partitioner
Definition cl_Mesh.hpp:1651
uint mNumberOfFields
Definition cl_Mesh.hpp:121
mesh::Curve * curve(const id_t aID)
return a curve by its ID
Definition cl_Mesh.hpp:1740
bool mNodesAreSorted
Definition cl_Mesh.hpp:154
Cell< mesh::Block * > & blocks()
The mesh owns the blocks; a block owns and deletes its elements.
Definition cl_Mesh.hpp:1715
Vector< real > & create_field(const string &aLabel, const EntityType aEntity=EntityType::NODE, const id_t aID=0)
Definition cl_Mesh.cpp:481
mesh::Basis * basis_by_index(const EntityType aType, const index_t aIndex)
Definition cl_Mesh.hpp:1851
bool has_periodicity() const
Definition cl_Mesh.hpp:1979
bool edges_are_finalized() const
Definition cl_Mesh.hpp:1937
void reset_faces()
Definition cl_Mesh.cpp:1381
mesh::SideSet * sideset(const id_t aID)
Definition cl_Mesh.hpp:1468
Map< id_t, mesh::Edge * > mEdgeMap
Definition cl_Mesh.hpp:137
bool mFacesAreFinalized
Definition cl_Mesh.hpp:151
real mTimeStamp
Definition cl_Mesh.hpp:123
mesh::Node * node(const id_t aID)
Definition cl_Mesh.hpp:1303
bool is_kernel_mesh() const
Definition cl_Mesh.hpp:1819
Cell< mesh::Node * > & nodes()
The nodes.
Definition cl_Mesh.hpp:1707
bool is_finalized() const
Definition cl_Mesh.hpp:1931
Cell< mesh::Element * > & hanging_elements()
Definition cl_Mesh.hpp:1956
mesh::Element * vertex(const id_t aID)
Definition cl_Mesh.hpp:1480
void create_face_map()
special function called by Kernel
Definition cl_Mesh.cpp:1533
mesh::GlobalVariable * global_variable(const id_t aID)
Definition cl_Mesh.hpp:1539
real & time_stamp()
Writable reference to the current time [s].
Definition cl_Mesh.hpp:1588
void collect_elements_from_group(Cell< mesh::Element * > &aElements, const id_t aGroupId, const ElementType aType=ElementType::EMPTY)
Definition cl_Mesh.cpp:661
Map< string, mesh::GlobalVariable * > mGlobalVariableMap
Definition cl_Mesh.hpp:112
std::size_t checksum()
Definition cl_Mesh.cpp:2239
void unfinalize()
unfinalizes all aspects of mesh but edges
Definition cl_Mesh.cpp:819
void save_fields(hid_t aFile)
Definition cl_Mesh.cpp:2914
void create_faces(const bool aPrint=false, const Vector< id_t > aNedelecBlocks=Vector< id_t >(), const Vector< id_t > aNedelecSideSets=Vector< id_t >())
creates the faces on the mesh
Definition cl_Mesh.cpp:1436
void expand_hanging_basis_sources()
Definition cl_Mesh.cpp:2009
void unflag_all_edges(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1045
bool faces_exist() const
tells if Nedelec faces exist on this mesh
Definition cl_Mesh.hpp:1691
bool faces_are_finalized() const
Definition cl_Mesh.hpp:1944
mesh::Periodicity * periodicity()
Definition cl_Mesh.hpp:1985
uint number_of_blocks() const
Definition cl_Mesh.hpp:1287
void set_number_of_dimensions(const uint &aNumberOfDimensions)
Definition cl_Mesh.hpp:1231
size_t memory() const
Compute the total memory used by the mesh in bytes.
Definition cl_Mesh.cpp:2690
const proc_t mCommRank
Definition cl_Mesh.hpp:67
bool sideset_exists(const id_t aID) const
Definition cl_Mesh.hpp:1667
Map< id_t, mesh::Facet * > mFacetMap
Definition cl_Mesh.hpp:133
void create_edges(const bool aPrint=false, const Vector< id_t > aNedelecBlocks=Vector< id_t >(), const Vector< id_t > aNedelecSideSets=Vector< id_t >(), const bool aCreateEdgesOnAllSideSets=true)
creates the edges on the mesh
Definition cl_Mesh.cpp:1303
uint number_of_global_variables() const
Definition cl_Mesh.hpp:1580
Cell< mesh::Face * > mFaces
Definition cl_Mesh.hpp:90
void partition(const uint &aNumberOfPartitions, const bool aSetProcOwners=true, const bool aForceContinuousPartitions=true, const bool aResetVertexContainers=true)
Only the master rank partitions the mesh and sets the element and node ownerships.
Definition cl_Mesh.cpp:1180
uint mNumberOfDimensions
Definition cl_Mesh.hpp:119
Cell< mesh::Field * > mFields
Definition cl_Mesh.hpp:110
Cell< mesh::Element * > & elements()
A flat list of the elements of all blocks.
Definition cl_Mesh.hpp:1757
string mConfigText
Definition cl_Mesh.hpp:81
void unflag_all_facets(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1106
mesh::Facet * facet(const id_t aID)
Definition cl_Mesh.hpp:1444
const TensorMeshConfig * tensorconf() const
Definition cl_Mesh.hpp:1215
void save_faces(const string &aPath)
Definition cl_Mesh.cpp:1851
Cell< mesh::GlobalVariable * > & global_variables()
Definition cl_Mesh.hpp:1531
Map< id_t, mesh::Element * > mVertexMap
Definition cl_Mesh.hpp:136
void scale_mesh(const real aFactor)
Multiplies the node and control-point coordinates by aFactor, e.g.
Definition cl_Mesh.cpp:278
uint mMaxElementOrder
Definition cl_Mesh.hpp:143
mesh::Element * element(const id_t aID)
Definition cl_Mesh.hpp:1368
Map< id_t, mesh::Curve * > mCurveMap
Definition cl_Mesh.hpp:140
bool field_exists(const string &aLabel)
Definition cl_Mesh.hpp:1511
Cell< mesh::SideSet * > mSideSets
Definition cl_Mesh.hpp:105
void reset_mesh_checker_flag()
Definition cl_Mesh.hpp:2000
void update_control_point_indices()
Definition cl_Mesh.cpp:470
void set_connectivity(const Connectivity aConnectivity)
Definition cl_Mesh.hpp:1619
mesh::Basis * basis(const EntityType aType, const id_t aID)
Definition cl_Mesh.hpp:1888
const proc_t & master() const
return the ID of the proc that owns this mesh
Definition cl_Mesh.hpp:1643
mesh::Face * face(const id_t aID)
Definition cl_Mesh.hpp:1348
Cell< mesh::ControlPoint * > mControlPoints
Definition cl_Mesh.hpp:91
Map< string, mesh::Field * > mFieldMap
Definition cl_Mesh.hpp:114
void reset_edges()
Definition cl_Mesh.cpp:1326
Cell< mesh::Node * > mHangingNodes
Definition cl_Mesh.hpp:97
Cell< mesh::Node * > & orphaned_nodes()
Definition cl_Mesh.hpp:1843
Cell< mesh::Curve * > mCurves
Definition cl_Mesh.hpp:106
void set_mesh_checker_flag()
Definition cl_Mesh.hpp:1994
void set_abstract_nodes(Cell< mesh::Node * > &aNodes)
Adopts the nodes.
Definition cl_Mesh.cpp:2182
Hash mHash
Definition cl_Mesh.hpp:73
Cell< mesh::Edge * > mEdges
Definition cl_Mesh.hpp:89
index_t number_of_control_points() const
Definition cl_Mesh.hpp:1279
Mesh(const uint aNumberOfDimensions, const proc_t aMasterProc=0, const bool aComputeConnectivities=true)
creates an empty mesh container but specifies number of dimension
Definition cl_Mesh.cpp:82
void finalize()
finalizes all aspects of the mesh; edges and faces are finalized too when connectivities are computed
Definition cl_Mesh.cpp:726
mesh::ControlPoint * control_point(const id_t aID)
Definition cl_Mesh.hpp:1402
Cell< mesh::ControlPoint * > & hanging_control_points()
Definition cl_Mesh.hpp:1957
Cell< mesh::Face * > & hanging_faces()
Definition cl_Mesh.hpp:1954
const string & config_text() const
Definition cl_Mesh.cpp:2276
Cell< mesh::GlobalVariable * > mGlobalVariables
Definition cl_Mesh.hpp:109
void flag_curved_elements()
flags elements that are curved
Definition cl_Mesh.cpp:1700
void load_fields(hid_t aFile)
Definition cl_Mesh.cpp:3001
uint64_t mConfigTag
Definition cl_Mesh.hpp:80
void finalize_edges()
Definition cl_Mesh.cpp:914
bool test_connectivity(const Connectivity aConnectivity)
Definition cl_Mesh.hpp:1635
Cell< mesh::Node * > & abstract_nodes()
Definition cl_Mesh.hpp:1835
void collect_hanging_basis()
Definition cl_Mesh.cpp:1997
Cell< mesh::Node * > mNodes
Definition cl_Mesh.hpp:86
real & global_variable_data(const string &aLabel)
Definition cl_Mesh.hpp:1555
id_t max_node_id()
Definition cl_Mesh.cpp:2045
Cell< mesh::Node * > mAutoPins
Definition cl_Mesh.hpp:164
void update_ownerships()
Definition cl_Mesh.cpp:1560
Cell< mesh::ThinShell * > mThinShells
Definition cl_Mesh.hpp:107
Map< id_t, mesh::SideSet * > mSideSetMap
Definition cl_Mesh.hpp:135
const uint & max_element_order() const
return the max interpolation order on the mesh
Definition cl_Mesh.hpp:1699
uint mTimeStep
Definition cl_Mesh.hpp:124
void unflag_everything(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1004
bool element_exists(const id_t aID) const
Definition cl_Mesh.hpp:1360
Cell< mesh::Face * > mHangingFaces
Definition cl_Mesh.hpp:99
void unflag_all_vertices(const uint aFlagIndex=0)
Definition cl_Mesh.cpp:1158
bool is_tensormesh() const
Definition cl_Mesh.hpp:1207
bool mComputeFacetOrientationsWhenFinalizing
Definition cl_Mesh.hpp:157
index_t number_of_hanging_basis() const
Definition cl_Mesh.hpp:1960
Cell< mesh::Edge * > & hanging_edges()
Definition cl_Mesh.hpp:1953
Cell< mesh::Element * > & boundary_edges()
The line elements of a 3D Gmsh mesh; owned and deleted by the mesh.
Definition cl_Mesh.hpp:1795
bool mIsFinalized
flag telling if mesh is finalized (master only)
Definition cl_Mesh.hpp:149
void add_block(mesh::Block *aBlock)
Takes ownership of aBlock: ~Mesh deletes the block and, through it, its elements.
Definition cl_Mesh.cpp:2153
void set_config_tag(const uint64_t aTag, const string &aText)
Definition cl_Mesh.cpp:2259
Cell< mesh::Facet * > & hanging_facets()
Definition cl_Mesh.hpp:1955
Map< id_t, mesh::Face * > mFaceMap
Definition cl_Mesh.hpp:138
index_t number_of_nodes() const
Definition cl_Mesh.hpp:1239
Cell< mesh::Element * > mElements
Definition cl_Mesh.hpp:85
Cell< mesh::Edge * > & edges()
Owned and deleted by the mesh.
Definition cl_Mesh.hpp:1779
void force_checksum(const std::size_t aChecksum)
Definition cl_Mesh.cpp:2251
Mesh * extract_thin_shell_mesh()
Returns a newly allocated mesh the caller owns and deletes.
Definition cl_Mesh.cpp:2436
Definition cl_TensorMeshConfig.hpp:22
uint num_control_points(const uint aDimension=BELFEM_UINT_MAX) const
Definition cl_TensorMeshConfig.hpp:124
index_t node_index(const index_t i, const index_t j) const
Definition cl_TensorMeshConfig.hpp:155
index_t element_index(const index_t i, const index_t j) const
Definition cl_TensorMeshConfig.hpp:175
Definition cl_Mesh_Basis.hpp:33
Definition cl_Block.hpp:27
Definition cl_ControlPoint.hpp:27
Definition cl_Curve.hpp:27
Special Edge class for NEDELEC-Type elements.
Definition cl_Edge.hpp:30
Lagrange Element baseclass.
Definition cl_Element.hpp:35
Definition cl_Face.hpp:29
Definition cl_Facet.hpp:24
Definition cl_Mesh_Field.hpp:28
Definition cl_Mesh_GlobalVariable.hpp:24
Definition cl_Mesh_GmshReader.hpp:40
Creates a Periodicity object by matching nodes on two periodic boundary planes.
Definition cl_Mesh_PeriodicityFactory.hpp:34
Stores matched periodic boundary entity pairs (nodes, edges, faces).
Definition cl_Mesh_Periodicity.hpp:39
Definition cl_ProtoMesh.hpp:39
Definition cl_SideSet.hpp:29
Definition cl_EF_EdgeFunction.hpp:24
void collect_hanging_basis(Cell< T * > &aBasis, Cell< T * > &aHangingBasis)
Definition cl_Mesh.hpp:2016
uint compute_facet_index(Facet *aFacet, Element *aElement, Cell< Node * > &aNodes)
Definition cl_Mesh.cpp:46
USER GUIDES:
Definition cl_Capacitor.cpp:16
int hid_t
Definition hdf5_types.hpp:20
unsigned int uint
Definition typedefs.hpp:30
unsigned int id_t
Definition typedefs.hpp:41
Connectivity
Definition Mesh_Enums.hpp:145
@ UNDEFINED
Definition Mesh_Enums.hpp:182
int proc_t
Definition commtypes.hpp:29
ElementType
Element types.
Definition Mesh_Enums.hpp:27
@ EMPTY
Definition Mesh_Enums.hpp:28
EntityType
Definition Mesh_Enums.hpp:116
@ NODE
Definition Mesh_Enums.hpp:117
@ FACE
Definition Mesh_Enums.hpp:119
@ CONTROLPOINT
Definition Mesh_Enums.hpp:123
@ EDGE
Definition Mesh_Enums.hpp:118
@ FACET
Definition Mesh_Enums.hpp:121
@ ELEMENT
Definition Mesh_Enums.hpp:122
uint32_t index_t
Definition typedefs.hpp:52
double real
Definition typedefs.hpp:36
Definition GmshReader.py:1