![Logo](MoFEMLogo.png) |
| v0.14.0
|
Go to the documentation of this file.
14 #ifndef __FIELDMULTIINDICES_HPP__
15 #define __FIELDMULTIINDICES_HPP__
60 virtual ~Field() =
default;
64 boost::weak_ptr<std::vector<DofEntity>>,
66 indexed_by<sequenced<>>>;
68 typedef std::array<std::array<int, MAX_DOFS_ON_ENTITY>, MBMAXTYPE>
220 "Too many fields allowed, can be more but ...");
267 inline const std::array<ApproximationOrder, MAX_DOFS_ON_ENTITY> &
303 template <
typename FIELD,
typename REFENT>
309 const boost::shared_ptr<REFENT> &ref_ents_ptr)
314 template <
typename FIELD,
typename REFENT>
318 const boost::shared_ptr<REFENT> &ref_ents_ptr)
383 inline std::array<ApproximationOrder, MAX_DOFS_ON_ENTITY> &
397 mutable boost::shared_ptr<FIELD>
sFieldPtr;
400 template <
typename T>
462 inline std::array<ApproximationOrder, MAX_DOFS_ON_ENTITY> &
478 typedef multi_index_container<
479 boost::shared_ptr<Field>,
481 hashed_unique<tag<BitFieldId_mi_tag>,
482 const_mem_fun<Field, const BitFieldId &, &Field::getId>,
483 HashBit<BitFieldId>, EqBit<BitFieldId>>,
484 ordered_unique<tag<Meshset_mi_tag>,
485 member<Field, EntityHandle, &Field::meshSet>>,
487 tag<FieldName_mi_tag>,
488 const_mem_fun<Field, boost::string_ref, &Field::getNameRef>>,
489 ordered_non_unique<tag<BitFieldId_space_mi_tag>,
490 const_mem_fun<Field, FieldSpace, &Field::getSpace>>>>
493 typedef multi_index_container<
494 boost::shared_ptr<Field>,
496 ordered_unique<tag<BitFieldId_mi_tag>,
497 const_mem_fun<Field, const BitFieldId &, &Field::getId>,
503 #endif // __FIELDMULTIINDICES_HPP__
auto getSpaceName() const
Get field approximation space.
TagType tagFieldDataVertsType
std::array< std::array< int, MAX_DOFS_ON_ENTITY >, MBMAXTYPE > DofsOrderMap
FieldBitNumber getBitNumber() const
FieldCoefficientsNumber getNbOfCoeffs() const
Get number of field coefficients.
virtual ~interface_FieldImpl()=default
const std::array< ApproximationOrder, MAX_DOFS_ON_ENTITY > & getDofOrderMap(const EntityType type) const
get hash-map relating dof index on entity with its order
FieldContinuity getContinuity() const
Get field space continuity.
keeps information about DOF on the entity
EntityHandle getMeshset() const
Get field meshset.
const static char *const ApproximationBaseNames[]
FieldSpace * tagSpaceData
tag keeps field space
MoFEMErrorCode rebuildDofsOrderMap()
FieldContinuity * tagFieldContinuityData
tag keeps field continuity
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
FieldSpace getSpace() const
Get field approximation space.
boost::shared_ptr< REFENT > & getRefEntityPtr() const
std::array< ApproximationOrder, MAX_DOFS_ON_ENTITY > & getDofOrderMap(const EntityType type) const
get hash-map relating dof index on entity with its order
std::bitset< BITFIELDID_SIZE > BitFieldId
Field Id.
FieldOrderTable & getFieldOrderTable()
Get the Field Order Table.
Tag th_FieldData
Tag storing field values on entity in the field.
FieldOrderFunct FieldOrderTable[MBMAXTYPE]
user adjacency function table
std::string getName() const
Get field name.
SequenceDofContainer sequenceDofContainer
FieldOrderTable & getFieldOrderTable()
interface_Field(const boost::shared_ptr< T > &ptr)
boost::string_ref getNameRef() const
auto getApproxBaseName() const
Get approximation base.
Provide data structure for (tensor) field approximation.
FieldApproximationBase getApproxBase() const
multi_index_container< boost::shared_ptr< Field >, indexed_by< ordered_unique< tag< BitFieldId_mi_tag >, const_mem_fun< Field, const BitFieldId &, &Field::getId >, LtBit< BitFieldId > > > > Field_multiIndex_view
DeprecatedCoreInterface Interface
FieldSpace
approximation spaces
int tagNameSize
number of bits necessary to keep field name
const BitFieldId & getId() const
Get unique field id.
std::string getName() const
const static char *const FieldContinuityNames[]
const DofsOrderMap & getDofOrderMap() const
get hash-map relating dof index on entity with its order
implementation of Data Operators for Forces and Sources
FieldContinuity getContinuity() const
auto getApproxBaseName() const
#define BITFIELDID_SIZE
max number of fields
boost::string_ref getNameRef() const
Get string reference to field name.
std::array< ApproximationOrder, MAX_DOFS_ON_ENTITY > & getDofOrderMap(const EntityType type) const
get hash-map relating dof index on entity with its order
const Field * getFieldRawPtr() const
FieldContinuity
Field continuity.
Tag th_FieldDataVerts
Tag storing field values on vertices in the field.
int FieldCoefficientsNumber
Number of field coefficients.
Pointer interface for MoFEM::Field.
const Field * getFieldRawPtr() const
boost::string_ref getNameRef() const
friend std::ostream & operator<<(std::ostream &os, const Field &e)
FieldApproximationBase * tagBaseData
tag keeps field base
FieldApproximationBase getApproxBase() const
Get approximation base.
const BitFieldId & getId() const
auto getContinuityName() const
Get field space continuity name.
boost::shared_ptr< FIELD > sFieldPtr
const void * tagName
tag keeps name of the field
FieldCoefficientsNumber getNbOfCoeffs() const
multi_index_container< boost::weak_ptr< std::vector< DofEntity > >, indexed_by< sequenced<> >> SequenceDofContainer
FieldCoefficientsNumber * tagNbCoeffData
FieldCoefficientsNumber getNbOfCoeffs() const
FieldSpace getSpace() const
static FieldBitNumber getBitNumberCalculate(const BitFieldId &id)
Calculate number of set bit in Field ID. Each field has uid, get getBitNumber get number of bit set f...
boost::function< int(const int order)> FieldOrderFunct
user adjacency function
auto getSpaceName() const
const static char *const FieldSpaceNames[]
Tag th_AppOrder
Tag storing approximation order on entity.
Field(moab::Interface &moab, const EntityHandle meshset)
constructor for moab field
FieldBitNumber getBitNumber() const
Get number of set bit in Field ID. Each field has uid, get getBitNumber get number of bit set for giv...
EntityHandle getMeshset() const
multi_index_container< boost::shared_ptr< Field >, indexed_by< hashed_unique< tag< BitFieldId_mi_tag >, const_mem_fun< Field, const BitFieldId &, &Field::getId >, HashBit< BitFieldId >, EqBit< BitFieldId > >, ordered_unique< tag< Meshset_mi_tag >, member< Field, EntityHandle, &Field::meshSet > >, ordered_unique< tag< FieldName_mi_tag >, const_mem_fun< Field, boost::string_ref, &Field::getNameRef > >, ordered_non_unique< tag< BitFieldId_space_mi_tag >, const_mem_fun< Field, FieldSpace, &Field::getSpace > > > > Field_multiIndex
Field_multiIndex for Field.
interface_FieldImpl(const boost::shared_ptr< FIELD > &field_ptr, const boost::shared_ptr< REFENT > &ref_ents_ptr)
char FieldBitNumber
Field bit number.
EntityHandle getMeshset() const
FieldApproximationBase getApproxBase() const
FieldApproximationBase
approximation base
const void * tagNamePrefixData
tag keeps name prefix of the field
FieldSpace getSpace() const
SequenceDofContainer & getDofSequenceContainer() const
Get reference to sequence data container.
const Field * getFieldRawPtr() const
auto getContinuityName() const
FieldBitNumber getBitNumberCalculate() const
Calculate number of set bit in Field ID. Each field has uid, get getBitNumber get number of bit set f...
std::string getName() const
FieldBitNumber getBitNumber() const
FieldOrderTable forderTable
nb. DOFs table for entities
EntityHandle meshSet
keeps entities for this meshset
interface_Field(const boost::shared_ptr< FIELD > &field_ptr, const boost::shared_ptr< REFENT > &ref_ents_ptr)
int getCoordSysDim(const int d=0) const
const BitFieldId & getId() const
BitFieldId * tagId
Tag field rank.