|
| 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<>>>;
69 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> &
318 template <
typename FIELD,
typename REFENT>
324 const boost::shared_ptr<REFENT> &ref_ents_ptr)
329 template <
typename FIELD,
typename REFENT>
333 const boost::shared_ptr<REFENT> &ref_ents_ptr)
398 inline std::array<ApproximationOrder, MAX_DOFS_ON_ENTITY> &
417 template <
typename T>
479 inline std::array<ApproximationOrder, MAX_DOFS_ON_ENTITY> &
495 typedef multi_index_container<
496 boost::shared_ptr<Field>,
498 hashed_unique<tag<BitFieldId_mi_tag>,
499 const_mem_fun<Field, const BitFieldId &, &Field::getId>,
500 HashBit<BitFieldId>, EqBit<BitFieldId>>,
501 ordered_unique<tag<Meshset_mi_tag>,
502 member<Field, EntityHandle, &Field::meshSet>>,
504 tag<FieldName_mi_tag>,
505 const_mem_fun<Field, boost::string_ref, &Field::getNameRef>>,
506 ordered_non_unique<tag<BitFieldId_space_mi_tag>,
507 const_mem_fun<Field, FieldSpace, &Field::getSpace>>>>
510 typedef multi_index_container<
511 boost::shared_ptr<Field>,
513 ordered_unique<tag<BitFieldId_mi_tag>,
514 const_mem_fun<Field, const BitFieldId &, &Field::getId>,
520 #endif // __FIELDMULTIINDICES_HPP__
auto getSpaceName() const
Get field approximation space.
TagType tagFieldDataVertsType
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
static constexpr int maxBrokenDofsOrder
max number of broken dofs
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.
std::array< std::array< int, MAX_DOFS_ON_ENTITY >, MBMAXTYPE > DofsOrderMap
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.
std::map< int, BaseFunction::DofsSideMap > & getDofSideMap() const
Get the dofs side map.
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)
std::map< int, BaseFunction::DofsSideMap > dofSideMap
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.