![]() |
v0.15.0 |
Field data structure for finite element approximation. More...
#include "src/multi_indices/FieldMultiIndices.hpp"
Public Types | |
| using | SequenceDofContainer = multi_index_container< boost::weak_ptr< std::vector< DofEntity > >, indexed_by< sequenced<> > > |
| Container for bulk DOF allocation. | |
| using | DofsOrderMap = std::array< std::array< int, MAX_DOFS_ON_ENTITY >, MBMAXTYPE > |
| Array mapping entity types to DOF order arrays. | |
Public Member Functions | |
| Field (moab::Interface &moab, const EntityHandle meshset) | |
| Constructor for MOAB field. | |
| virtual | ~Field ()=default |
| Virtual destructor. | |
| FieldOrderTable & | getFieldOrderTable () |
| Get field order table. | |
| EntityHandle | getMeshset () const |
| Get field meshset handle. | |
| const BitFieldId & | getId () const |
| Get unique field identifier. | |
| boost::string_ref | getNameRef () const |
| Get field name as string reference. | |
| std::string | getName () const |
| Get field name as string. | |
| FieldSpace | getSpace () const |
| Get field approximation space. | |
| auto | getSpaceName () const |
| Get field approximation space name. | |
| FieldContinuity | getContinuity () const |
| Get field continuity type. | |
| auto | getContinuityName () const |
| Get field continuity name. | |
| FieldApproximationBase | getApproxBase () const |
| Get approximation basis type. | |
| auto | getApproxBaseName () const |
| Get approximation basis name. | |
| FieldCoefficientsNumber | getNbOfCoeffs () const |
| Get number of field coefficients per DOF. | |
| FieldBitNumber | getBitNumber () const |
| Get bit number for this field's ID. | |
| FieldBitNumber | getBitNumberCalculate () const |
| Calculate bit number for this field's ID. | |
| SequenceDofContainer & | getDofSequenceContainer () const |
| Get sequence container for bulk DOF allocation. | |
| const std::array< ApproximationOrder, MAX_DOFS_ON_ENTITY > & | getDofOrderMap (const EntityType type) const |
| Get DOF order mapping for specific entity type. | |
| const DofsOrderMap & | getDofOrderMap () const |
| Get complete DOF order mapping for all entity types. | |
| std::map< int, BaseFunction::DofsSideMap > & | getDofSideMap () const |
| Get DOF side mapping for broken spaces. | |
| MoFEMErrorCode | rebuildDofsOrderMap () |
| Rebuild DOF order mapping arrays. | |
| const Field * | getFieldRawPtr () const |
| Get raw pointer to this field. | |
Static Public Member Functions | |
| static FieldBitNumber | getBitNumberCalculate (const BitFieldId &id) |
| Calculate bit number from field ID bitset. | |
Public Attributes | |
| moab::Interface & | moab |
| MOAB interface reference. | |
| EntityHandle | meshSet |
| Meshset containing field entities. | |
| TagType | tagFieldDataVertsType |
| Tag type for vertex data storage. | |
| Tag | th_FieldDataVerts |
| Tag for field values on vertices. | |
| Tag | th_FieldData |
| Tag for field values on entities. | |
| Tag | th_AppOrder |
| Tag for approximation order on entities. | |
| Tag | th_FieldRank |
| Tag for field rank (vector dimension) | |
| BitFieldId * | tagId |
| Field unique identifier. | |
| FieldSpace * | tagSpaceData |
| Field approximation space. | |
| FieldContinuity * | tagFieldContinuityData |
| Field continuity type. | |
| FieldApproximationBase * | tagBaseData |
| Field basis functions. | |
| FieldCoefficientsNumber * | tagNbCoeffData |
| Field rank (e.g. Temperature=1, displacement in 3D=3) | |
| const void * | tagName |
| Field name. | |
| int | tagNameSize |
| Field name size in bytes. | |
| const void * | tagNamePrefixData |
| Field name prefix. | |
| int | tagNamePrefixSize |
| Field name prefix size in bytes. | |
| FieldOrderTable | forderTable |
| DOF count functions for each entity type. | |
| unsigned int | bitNumber |
| Bit number corresponding to this field's unique ID. | |
Static Public Attributes | |
| static constexpr int | maxBrokenDofsOrder = 10 |
| Maximum order for broken space DOFs. | |
Private Attributes | |
| SequenceDofContainer | sequenceDofContainer |
| DofsOrderMap | dofOrderMap |
| std::map< int, BaseFunction::DofsSideMap > | dofSideMap |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const Field &e) |
| Output stream operator for field information. | |
Field data structure for finite element approximation.
Stores field information including approximation space, basis functions, coordinate systems, and DOF management. Each field has a unique ID and name. Data is shared between mesh entities and their associated DOFs.
Definition at line 36 of file FieldMultiIndices.hpp.
| using MoFEM::Field::DofsOrderMap = std::array<std::array<int, MAX_DOFS_ON_ENTITY>, MBMAXTYPE> |
Array mapping entity types to DOF order arrays.
Definition at line 54 of file FieldMultiIndices.hpp.
| using MoFEM::Field::SequenceDofContainer = multi_index_container< boost::weak_ptr<std::vector<DofEntity> >, indexed_by<sequenced<> >> |
Container for bulk DOF allocation.
Definition at line 49 of file FieldMultiIndices.hpp.
| MoFEM::Field::Field | ( | moab::Interface & | moab, |
| const EntityHandle | meshset | ||
| ) |
Constructor for MOAB field.
| moab | MOAB interface reference |
| meshset | EntityHandle containing field entities |
Definition at line 17 of file FieldMultiIndices.cpp.
|
virtualdefault |
Virtual destructor.
|
inline |
Get approximation basis type.
Definition at line 161 of file FieldMultiIndices.hpp.
|
inline |
Get approximation basis name.
Definition at line 167 of file FieldMultiIndices.hpp.
|
inline |
Get bit number for this field's ID.
Definition at line 188 of file FieldMultiIndices.hpp.
|
inline |
Calculate bit number for this field's ID.
Definition at line 208 of file FieldMultiIndices.hpp.
|
inlinestatic |
Calculate bit number from field ID bitset.
| id | Field ID bitset |
Definition at line 195 of file FieldMultiIndices.hpp.
|
inline |
Get field continuity type.
There are two types of continuity: CONTINUOUS and DISCONTINUOUS. Discontinuous is used to indicate broken spaces.
Definition at line 145 of file FieldMultiIndices.hpp.
|
inline |
Get field continuity name.
Definition at line 153 of file FieldMultiIndices.hpp.
|
inline |
Get complete DOF order mapping for all entity types.
Definition at line 239 of file FieldMultiIndices.hpp.
|
inline |
Get DOF order mapping for specific entity type.
| type | Entity type (vertex, edge, face, volume) |
Definition at line 231 of file FieldMultiIndices.hpp.
|
inline |
Get sequence container for bulk DOF allocation.
Container stores DOF data in bulk for efficiency. Vectors are destroyed when last entity referencing them is removed. Used primarily for vertex DOFs in H1 spaces where DOF count per vertex is fixed.
Definition at line 221 of file FieldMultiIndices.hpp.
|
inline |
Get DOF side mapping for broken spaces.
Maps interior DOFs in broken spaces to entities where their traces are non-zero. Used for discontinuous Galerkin methods.
Definition at line 251 of file FieldMultiIndices.hpp.
|
inline |
Get field order table.
Definition at line 84 of file FieldMultiIndices.hpp.
|
inline |
Get raw pointer to this field.
Definition at line 268 of file FieldMultiIndices.hpp.
|
inline |
Get unique field identifier.
Definition at line 105 of file FieldMultiIndices.hpp.
|
inline |
Get field meshset handle.
On this meshset handle are stored tags with field data about base, space, number of coefficients, continuity, etc.
Meshset contains entities on which the field is defined.
Definition at line 99 of file FieldMultiIndices.hpp.
|
inline |
Get field name as string.
Definition at line 119 of file FieldMultiIndices.hpp.
|
inline |
Get field name as string reference.
Definition at line 111 of file FieldMultiIndices.hpp.
|
inline |
Get number of field coefficients per DOF.
Scalar fields have 1 coefficient, vector fields in 3D have 3. Coefficients may represent spatial components, physical quantities, or mixed formulations depending on the field interpretation.
Definition at line 180 of file FieldMultiIndices.hpp.
|
inline |
Get field approximation space.
Definition at line 127 of file FieldMultiIndices.hpp.
|
inline |
Get field approximation space name.
Definition at line 133 of file FieldMultiIndices.hpp.
| MoFEMErrorCode MoFEM::Field::rebuildDofsOrderMap | ( | ) |
Rebuild DOF order mapping arrays.
Definition at line 517 of file FieldMultiIndices.cpp.
|
friend |
Output stream operator for field information.
Definition at line 554 of file FieldMultiIndices.cpp.
| unsigned int MoFEM::Field::bitNumber |
Bit number corresponding to this field's unique ID.
Definition at line 87 of file FieldMultiIndices.hpp.
|
mutableprivate |
Definition at line 272 of file FieldMultiIndices.hpp.
|
mutableprivate |
Definition at line 273 of file FieldMultiIndices.hpp.
| FieldOrderTable MoFEM::Field::forderTable |
DOF count functions for each entity type.
Definition at line 78 of file FieldMultiIndices.hpp.
|
staticconstexpr |
Maximum order for broken space DOFs.
Definition at line 241 of file FieldMultiIndices.hpp.
| EntityHandle MoFEM::Field::meshSet |
Meshset containing field entities.
Definition at line 59 of file FieldMultiIndices.hpp.
| moab::Interface& MoFEM::Field::moab |
MOAB interface reference.
Definition at line 57 of file FieldMultiIndices.hpp.
|
mutableprivate |
Definition at line 271 of file FieldMultiIndices.hpp.
| FieldApproximationBase* MoFEM::Field::tagBaseData |
Field basis functions.
Definition at line 70 of file FieldMultiIndices.hpp.
| FieldContinuity* MoFEM::Field::tagFieldContinuityData |
Field continuity type.
Definition at line 69 of file FieldMultiIndices.hpp.
| TagType MoFEM::Field::tagFieldDataVertsType |
Tag type for vertex data storage.
Definition at line 61 of file FieldMultiIndices.hpp.
| BitFieldId* MoFEM::Field::tagId |
Field unique identifier.
Definition at line 67 of file FieldMultiIndices.hpp.
| const void* MoFEM::Field::tagName |
Field name.
Definition at line 74 of file FieldMultiIndices.hpp.
| const void* MoFEM::Field::tagNamePrefixData |
Field name prefix.
Definition at line 76 of file FieldMultiIndices.hpp.
| int MoFEM::Field::tagNamePrefixSize |
Field name prefix size in bytes.
Definition at line 77 of file FieldMultiIndices.hpp.
| int MoFEM::Field::tagNameSize |
Field name size in bytes.
Definition at line 75 of file FieldMultiIndices.hpp.
| FieldCoefficientsNumber* MoFEM::Field::tagNbCoeffData |
Field rank (e.g. Temperature=1, displacement in 3D=3)
Definition at line 73 of file FieldMultiIndices.hpp.
| FieldSpace* MoFEM::Field::tagSpaceData |
Field approximation space.
Definition at line 68 of file FieldMultiIndices.hpp.
| Tag MoFEM::Field::th_AppOrder |
Tag for approximation order on entities.
Definition at line 64 of file FieldMultiIndices.hpp.
| Tag MoFEM::Field::th_FieldData |
Tag for field values on entities.
Definition at line 63 of file FieldMultiIndices.hpp.
| Tag MoFEM::Field::th_FieldDataVerts |
Tag for field values on vertices.
Definition at line 62 of file FieldMultiIndices.hpp.
| Tag MoFEM::Field::th_FieldRank |
Tag for field rank (vector dimension)
Definition at line 65 of file FieldMultiIndices.hpp.