v0.14.0
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | Static Private Attributes | Friends | List of all members
MoFEM::FieldEntity Struct Reference

Struct keeps handle to entity in the field. More...

#include <src/multi_indices/FieldEntsMultiIndices.hpp>

Inheritance diagram for MoFEM::FieldEntity:
[legend]
Collaboration diagram for MoFEM::FieldEntity:
[legend]

Public Types

using interface_type_Field = interface_Field< Field, RefEntity >
 
using interface_type_RefEntity = interface_RefEntity< RefEntity >
 
- Public Types inherited from MoFEM::interface_FieldImpl< Field, RefEntity >
using interface_type_RefEntity = interface_RefEntity< RefEntity >
 

Public Member Functions

 FieldEntity (const boost::shared_ptr< Field > field_ptr, const boost::shared_ptr< RefEntity > ref_ents_ptr, boost::shared_ptr< double *const > field_data_adaptor_ptr, boost::shared_ptr< const int > t_max_order_ptr)
 
virtual ~FieldEntity ()=default
 
int getNbDofsOnEnt () const
 Get number of active DOFs on entity. More...
 
boost::shared_ptr< FieldData *const > & getEntFieldDataPtr () const
 Get shared ptr to vector adaptor pointing to the field tag data on entity. More...
 
VectorAdaptor getEntFieldData () const
 Get vector of DOFs active values on entity. More...
 
int getOrderNbDofs (ApproximationOrder order) const
 Get number of DOFs on entity for given order of approximation. More...
 
int getOrderNbDofsDiff (ApproximationOrder order) const
 Get difference of number of DOFs between order and order-1. More...
 
const ApproximationOrdergetMaxOrderPtr () const
 Get pinter to Tag keeping approximation order. More...
 
ApproximationOrder getMaxOrder () const
 Get order set to the entity (Allocated tag size for such number) More...
 
UId getLocalUniqueIdCalculate ()
 Get the Local Unique Id Calculate object. More...
 
UId getGlobalUniqueId () const
 Get global unique id. More...
 
const UIdgetLocalUniqueId () const
 Get global unique id. More...
 
UId getGlobalUniqueIdCalculate () const
 Calculate global UId. More...
 
template<typename T >
void getLoFieldEntityUId (T &uid)=delete
 
template<typename T >
void getHiFieldEntityUId (T &uid)=delete
 
const std::array< int, MAX_DOFS_ON_ENTITY > & getDofOrderMap () const
 get hash-map relating dof index on entity with its order More...
 
template<typename T = EntityStorage>
boost::shared_ptr< T > getSharedStoragePtr () const
 Get the Weak Storage pointer. More...
 
boost::weak_ptr< EntityStorage > & getWeakStoragePtr () const
 
template<>
boost::shared_ptr< EntityStoragegetSharedStoragePtr () const
 
- Public Member Functions inherited from MoFEM::interface_Field< Field, RefEntity >
 interface_Field (const boost::shared_ptr< Field > &field_ptr, const boost::shared_ptr< RefEntity > &ref_ents_ptr)
 
EntityHandle getMeshset () const
 
int getCoordSysDim (const int d=0) const
 
const BitFieldIdgetId () const
 
boost::string_ref getNameRef () const
 
std::string getName () const
 
FieldSpace getSpace () const
 
FieldApproximationBase getApproxBase () const
 
FieldCoefficientsNumber getNbOfCoeffs () const
 
FieldBitNumber getBitNumber () const
 
std::array< ApproximationOrder, MAX_DOFS_ON_ENTITY > & getDofOrderMap (const EntityType type) const
 get hash-map relating dof index on entity with its order More...
 
const FieldgetFieldRawPtr () const
 
FieldOrderTable & getFieldOrderTable ()
 
- Public Member Functions inherited from MoFEM::interface_FieldImpl< Field, RefEntity >
 interface_FieldImpl (const boost::shared_ptr< Field > &field_ptr, const boost::shared_ptr< RefEntity > &ref_ents_ptr)
 
virtual ~interface_FieldImpl ()=default
 
- Public Member Functions inherited from MoFEM::interface_RefEntity< RefEntity >
 interface_RefEntity (const boost::shared_ptr< RefEntity > &sptr)
 
 interface_RefEntity (const interface_RefEntity< RefEntity > &interface)
 
virtual ~interface_RefEntity ()=default
 
int getSideNumber () const
 
boost::shared_ptr< SideNumbergetSideNumberPtr () const
 Get the Side number. More...
 
const boost::shared_ptr< BasicEntityDatagetBasicDataPtr () const
 Get pointer to basic data struture. More...
 
EntityHandle getEnt () const
 Get the entity handle. More...
 
EntityType getParentEntType () const
 Get patent entity. More...
 
EntityHandle getParentEnt () const
 
BitRefLevelgetBitRefLevelPtr () const
 Get pointer to bit ref level tag. More...
 
const BitRefLevelgetBitRefLevel () const
 
unsigned long int getBitRefLevelULong () const
 Get entity ref bit refinement as ulong. More...
 
EntityType getEntType () const
 Get entity type. More...
 
int getEntDimension () const
 Get the Ent Dimension. More...
 
const char * getEntTypeName () const
 Get the Ent Type Name. More...
 
EntityID getEntId () const
 get entity id More...
 
EntityHandle getOwnerEnt () const
 
EntityHandlegetOwnerEnt ()
 
int getOwnerProc () const
 
int getPartProc () const
 
int * getPartProcPtr () const
 Get pointer to partition tag. More...
 
unsigned char getPStatus () const
 
int * getSharingProcsPtr () const
 get shared processors More...
 
EntityHandlegetSharingHandlersPtr () const
 get sharid entity handlers More...
 
boost::shared_ptr< RefEntity > & getRefEntityPtr () const
 

Static Public Member Functions

static boost::shared_ptr< FieldData *const > makeSharedFieldDataAdaptorPtr (const boost::shared_ptr< Field > &field_ptr, const boost::shared_ptr< RefEntity > &ref_ents_ptr)
 Return shared pointer to entity field data vector adaptor. More...
 
static UId getLocalUniqueIdCalculate (const char bit_number, const EntityHandle handle)
 Get the Local Unique Id Calculate. More...
 
static UId getGlobalUniqueIdCalculate (const int owner_proc, const char bit_number, const EntityHandle moab_owner_handle)
 Calculate UId for field entity. More...
 
static auto getOwnerFromUniqueId (const UId uid)
 
static auto getHandleFromUniqueId (const UId uid)
 Get the Handle From Unique Id. More...
 
static auto getFieldBitNumberFromUniqueId (const UId uid)
 Get the Field Bit Number From Unique Id. More...
 
static UId getLoBitNumberUId (const FieldBitNumber bit_number)
 
static UId getHiBitNumberUId (const FieldBitNumber bit_number)
 
static UId getLoFieldEntityUId (const UId &uid)
 
static UId getHiFieldEntityUId (const UId &uid)
 
static UId getLoLocalEntityBitNumber (const char bit_number, const EntityHandle ent)
 
static UId getHiLocalEntityBitNumber (const char bit_number, const EntityHandle ent)
 

Public Attributes

UId localUId
 Local unique id for this entity. Unique on CPU partition. More...
 
boost::weak_ptr< EntityCacheDofsentityCacheDataDofs
 
boost::weak_ptr< EntityCacheNumeredDofsentityCacheRowDofs
 
boost::weak_ptr< EntityCacheNumeredDofsentityCacheColDofs
 
boost::weak_ptr< EntityStorageweakStoragePtr
 
- Public Attributes inherited from MoFEM::interface_RefEntity< RefEntity >
boost::shared_ptr< RefEntitysPtr
 

Private Attributes

boost::shared_ptr< const ApproximationOrdertagMaxOrderPtr
 
boost::shared_ptr< FieldData *const > fieldDataAdaptorPtr
 

Static Private Attributes

static constexpr int dof_shift = 9
 
static constexpr int ent_shift = 64
 
static constexpr int proc_shift = 10
 

Friends

std::ostream & operator<< (std::ostream &os, const FieldEntity &e)
 

Detailed Description

Struct keeps handle to entity in the field.

Definition at line 24 of file FieldEntsMultiIndices.hpp.

Member Typedef Documentation

◆ interface_type_Field

Definition at line 26 of file FieldEntsMultiIndices.hpp.

◆ interface_type_RefEntity

Definition at line 27 of file FieldEntsMultiIndices.hpp.

Constructor & Destructor Documentation

◆ FieldEntity()

MoFEM::FieldEntity::FieldEntity ( const boost::shared_ptr< Field field_ptr,
const boost::shared_ptr< RefEntity ref_ents_ptr,
boost::shared_ptr< double *const >  field_data_adaptor_ptr,
boost::shared_ptr< const int >  t_max_order_ptr 
)

Definition at line 15 of file FieldEntsMultiIndices.cpp.

20  : interface_Field<Field, RefEntity>(field_ptr, ref_ents_ptr),
21  tagMaxOrderPtr(t_max_order_ptr),
22  fieldDataAdaptorPtr(field_data_adaptor_ptr) {
23 
24  localUId = getLocalUniqueIdCalculate(field_ptr->getBitNumber(),
25  ref_ents_ptr->getEnt());
26 #ifndef NDEBUG
27  if (PetscUnlikely(!fieldDataAdaptorPtr))
28  THROW_MESSAGE("Pointer to field data adaptor not set");
29 
30  if (PetscUnlikely(!tagMaxOrderPtr))
31  THROW_MESSAGE("Pointer to max order not set");
32 #endif
33 }

◆ ~FieldEntity()

virtual MoFEM::FieldEntity::~FieldEntity ( )
virtualdefault

Member Function Documentation

◆ getDofOrderMap()

const std::array<int, MAX_DOFS_ON_ENTITY>& MoFEM::FieldEntity::getDofOrderMap ( ) const
inline

get hash-map relating dof index on entity with its order

DOFs of given field are indexed on entity of the same type, same space, approximation base and number of coefficients, are sorted in the way.

Definition at line 272 of file FieldEntsMultiIndices.hpp.

272  {
273  return this->getFieldRawPtr()->getDofOrderMap(this->getEntType());
274  }

◆ getEntFieldData()

VectorAdaptor MoFEM::FieldEntity::getEntFieldData ( ) const
inline

Get vector of DOFs active values on entity.

Returns
Vector of DOFs values

Definition at line 77 of file FieldEntsMultiIndices.hpp.

77  {
79  }

◆ getEntFieldDataPtr()

boost::shared_ptr<FieldData *const>& MoFEM::FieldEntity::getEntFieldDataPtr ( ) const
inline

Get shared ptr to vector adaptor pointing to the field tag data on entity.

Returns
boost::shared_ptr<VectorAdaptor>&

Definition at line 69 of file FieldEntsMultiIndices.hpp.

69  {
70  return fieldDataAdaptorPtr;
71  }

◆ getFieldBitNumberFromUniqueId()

static auto MoFEM::FieldEntity::getFieldBitNumberFromUniqueId ( const UId  uid)
inlinestatic

Get the Field Bit Number From Unique Id.

Parameters
uid
Returns
FieldId
Examples
dm_build_partitioned_mesh.cpp.

Definition at line 205 of file FieldEntsMultiIndices.hpp.

205  {
206  constexpr int bit_field_mask = ~(char(0));
207  return static_cast<char>(
208  (uid & getGlobalUniqueIdCalculate(0, bit_field_mask, 0)) >>
210  };

◆ getGlobalUniqueId()

UId MoFEM::FieldEntity::getGlobalUniqueId ( ) const
inline

Get global unique id.

Returns
Global UId

Definition at line 144 of file FieldEntsMultiIndices.hpp.

144 { return getGlobalUniqueIdCalculate(); }

◆ getGlobalUniqueIdCalculate() [1/2]

UId MoFEM::FieldEntity::getGlobalUniqueIdCalculate ( ) const
inline

Calculate global UId.

Returns
Global UId

Definition at line 216 of file FieldEntsMultiIndices.hpp.

216  {
218  this->getBitNumber(),
219  this->getRefEntityPtr()->getOwnerEnt());
220  }

◆ getGlobalUniqueIdCalculate() [2/2]

static UId MoFEM::FieldEntity::getGlobalUniqueIdCalculate ( const int  owner_proc,
const char  bit_number,
const EntityHandle  moab_owner_handle 
)
inlinestatic

Calculate UId for field entity.

UId is constructed such that all DOFs are ordered by processor, entity, field.

UId is 128 bit

Parameters
owner_procowning processor
bit_numberfield bit number
moab_owner_handleentity handle on owning processor meshes
Returns
UId

Definition at line 167 of file FieldEntsMultiIndices.hpp.

168  {
169  return
170 
171  (static_cast<UId>(owner_proc) |
172  static_cast<UId>(moab_owner_handle) << proc_shift |
173  static_cast<UId>(bit_number) << proc_shift + ent_shift)
174  << dof_shift;
175  }

◆ getHandleFromUniqueId()

static auto MoFEM::FieldEntity::getHandleFromUniqueId ( const UId  uid)
inlinestatic

Get the Handle From Unique Id.

Parameters
uid
Returns
EntityHandle
Examples
dm_build_partitioned_mesh.cpp.

Definition at line 192 of file FieldEntsMultiIndices.hpp.

192  {
193  constexpr EntityHandle handle_mask = ~(EntityHandle(0));
194  return static_cast<EntityHandle>(
195  (uid & getGlobalUniqueIdCalculate(0, 0, handle_mask)) >> proc_shift >>
196  dof_shift);
197  };

◆ getHiBitNumberUId()

static UId MoFEM::FieldEntity::getHiBitNumberUId ( const FieldBitNumber  bit_number)
inlinestatic
Examples
dm_partitioned_no_field.cpp, and free_surface.cpp.

Definition at line 228 of file FieldEntsMultiIndices.hpp.

228  {
229  return static_cast<UId>(MAX_DOFS_ON_ENTITY - 1) |
230  static_cast<UId>(MAX_PROCESSORS_NUMBER - 1) << dof_shift |
231  static_cast<UId>(std::numeric_limits<EntityHandle>::max())
232  << dof_shift + proc_shift |
233  static_cast<UId>(bit_number) << dof_shift + ent_shift + proc_shift;
234  }

◆ getHiFieldEntityUId() [1/2]

static UId MoFEM::FieldEntity::getHiFieldEntityUId ( const UId uid)
inlinestatic

Definition at line 240 of file FieldEntsMultiIndices.hpp.

240  {
241  return getLoFieldEntityUId(uid) | static_cast<UId>(MAX_DOFS_ON_ENTITY - 1);
242  }

◆ getHiFieldEntityUId() [2/2]

template<typename T >
void MoFEM::FieldEntity::getHiFieldEntityUId ( T &  uid)
delete

◆ getHiLocalEntityBitNumber()

static UId MoFEM::FieldEntity::getHiLocalEntityBitNumber ( const char  bit_number,
const EntityHandle  ent 
)
inlinestatic
Examples
cell_forces.cpp.

Definition at line 258 of file FieldEntsMultiIndices.hpp.

259  {
260  return getLoLocalEntityBitNumber(bit_number, ent) |
261  static_cast<UId>(MAX_DOFS_ON_ENTITY - 1);
262  }

◆ getLoBitNumberUId()

static UId MoFEM::FieldEntity::getLoBitNumberUId ( const FieldBitNumber  bit_number)
inlinestatic
Examples
dm_partitioned_no_field.cpp, and free_surface.cpp.

Definition at line 222 of file FieldEntsMultiIndices.hpp.

222  {
223  return
224 
225  static_cast<UId>(bit_number) << dof_shift + ent_shift + proc_shift;
226  }

◆ getLocalUniqueId()

const UId& MoFEM::FieldEntity::getLocalUniqueId ( ) const
inline

Get global unique id.

Returns
Global UId

Definition at line 150 of file FieldEntsMultiIndices.hpp.

150 { return localUId; }

◆ getLocalUniqueIdCalculate() [1/2]

UId MoFEM::FieldEntity::getLocalUniqueIdCalculate ( )
inline

Get the Local Unique Id Calculate object.

Returns
UId
Examples
heat_method.cpp.

Definition at line 136 of file FieldEntsMultiIndices.hpp.

136  {
137  return getLocalUniqueIdCalculate(this->getBitNumber(), this->getEnt());
138  }

◆ getLocalUniqueIdCalculate() [2/2]

static UId MoFEM::FieldEntity::getLocalUniqueIdCalculate ( const char  bit_number,
const EntityHandle  handle 
)
inlinestatic

Get the Local Unique Id Calculate.

Parameters
bit_number
handle
Returns
UId

Definition at line 122 of file FieldEntsMultiIndices.hpp.

123  {
124  return
125 
126  (static_cast<UId>(handle) << proc_shift | static_cast<UId>(bit_number)
127  << proc_shift + ent_shift)
128  << dof_shift;
129  }

◆ getLoFieldEntityUId() [1/2]

static UId MoFEM::FieldEntity::getLoFieldEntityUId ( const UId uid)
inlinestatic

Definition at line 236 of file FieldEntsMultiIndices.hpp.

236  {
237  return ((~static_cast<UId>(MAX_DOFS_ON_ENTITY - 1)) & uid);
238  }

◆ getLoFieldEntityUId() [2/2]

template<typename T >
void MoFEM::FieldEntity::getLoFieldEntityUId ( T &  uid)
delete

◆ getLoLocalEntityBitNumber()

static UId MoFEM::FieldEntity::getLoLocalEntityBitNumber ( const char  bit_number,
const EntityHandle  ent 
)
inlinestatic
Examples
cell_forces.cpp.

Definition at line 247 of file FieldEntsMultiIndices.hpp.

248  {
250 
251  bit_number,
252 
253  ent
254 
255  );
256  }

◆ getMaxOrder()

ApproximationOrder MoFEM::FieldEntity::getMaxOrder ( ) const
inline

Get order set to the entity (Allocated tag size for such number)

Returns
Approximation order

Definition at line 111 of file FieldEntsMultiIndices.hpp.

111  {
112  return *tagMaxOrderPtr.get();
113  }

◆ getMaxOrderPtr()

const ApproximationOrder* MoFEM::FieldEntity::getMaxOrderPtr ( ) const
inline

Get pinter to Tag keeping approximation order.

Returns
Pointer to Tag

Definition at line 103 of file FieldEntsMultiIndices.hpp.

103  {
104  return tagMaxOrderPtr.get();
105  }

◆ getNbDofsOnEnt()

int MoFEM::FieldEntity::getNbDofsOnEnt ( ) const
inline

Get number of active DOFs on entity.

Returns
Number of DOFs

Definition at line 50 of file FieldEntsMultiIndices.hpp.

50  {
51  return getOrderNbDofs(getMaxOrder()) * this->getNbOfCoeffs();
52  }

◆ getOrderNbDofs()

int MoFEM::FieldEntity::getOrderNbDofs ( ApproximationOrder  order) const
inline

Get number of DOFs on entity for given order of approximation.

Parameters
orderOrder of approximation
Returns
Number of DOFs

Definition at line 86 of file FieldEntsMultiIndices.hpp.

86  {
87  return (this->getFieldRawPtr()->forderTable[this->getEntType()])(order);
88  }

◆ getOrderNbDofsDiff()

int MoFEM::FieldEntity::getOrderNbDofsDiff ( ApproximationOrder  order) const
inline

Get difference of number of DOFs between order and order-1.

Parameters
orderApproximation order
Returns
Difference number of DOFs

Definition at line 95 of file FieldEntsMultiIndices.hpp.

95  {
97  }

◆ getOwnerFromUniqueId()

static auto MoFEM::FieldEntity::getOwnerFromUniqueId ( const UId  uid)
inlinestatic
Examples
dm_build_partitioned_mesh.cpp.

Definition at line 177 of file FieldEntsMultiIndices.hpp.

177  {
178  constexpr int proc_mask = MAX_PROCESSORS_NUMBER - 1;
179  return static_cast<int>(
180 
181  (uid & getGlobalUniqueIdCalculate(proc_mask, 0, 0)) >> dof_shift
182 
183  );
184  };

◆ getSharedStoragePtr() [1/2]

template<>
boost::shared_ptr<EntityStorage> MoFEM::FieldEntity::getSharedStoragePtr ( ) const
inline

Definition at line 308 of file FieldEntsMultiIndices.hpp.

308  {
309  return weakStoragePtr.lock();
310 }

◆ getSharedStoragePtr() [2/2]

template<typename T = EntityStorage>
boost::shared_ptr<T> MoFEM::FieldEntity::getSharedStoragePtr ( ) const
inline

Get the Weak Storage pointer.

Returns
boost::weak_ptr<EntityStorage>&

Definition at line 288 of file FieldEntsMultiIndices.hpp.

288  {
289  return boost::dynamic_pointer_cast<T>(weakStoragePtr.lock());
290  }

◆ getWeakStoragePtr()

boost::weak_ptr<EntityStorage>& MoFEM::FieldEntity::getWeakStoragePtr ( ) const
inline

Definition at line 292 of file FieldEntsMultiIndices.hpp.

292  {
293  return weakStoragePtr;
294  }

◆ makeSharedFieldDataAdaptorPtr()

boost::shared_ptr< FieldData *const > MoFEM::FieldEntity::makeSharedFieldDataAdaptorPtr ( const boost::shared_ptr< Field > &  field_ptr,
const boost::shared_ptr< RefEntity > &  ref_ents_ptr 
)
static

Return shared pointer to entity field data vector adaptor.

Returns
boost::shared_ptr<VectorAdaptor>

Definition at line 35 of file FieldEntsMultiIndices.cpp.

37  {
38  int size;
39  FieldData *ptr;
40  switch (ref_ents_ptr->getEntType()) {
41  case MBVERTEX:
42  size = field_ptr->getNbOfCoeffs();
43  ptr = static_cast<FieldData *>(
44  MoFEM::get_tag_ptr(field_ptr->moab, field_ptr->th_FieldDataVerts,
45  ref_ents_ptr->ent, &size));
46  break;
47  default:
48  ptr = static_cast<FieldData *>(MoFEM::get_tag_ptr(
49  field_ptr->moab, field_ptr->th_FieldData, ref_ents_ptr->ent, &size));
50  }
51  return boost::make_shared<FieldData *const>(ptr);
52 }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const FieldEntity e 
)
friend

Definition at line 54 of file FieldEntsMultiIndices.cpp.

54  {
55  os << "ent_global_uid " << e.getLocalUniqueId() << " entity " << e.getEnt()
56  << " type " << e.getEntTypeName() << " pstatus "
57  << std::bitset<8>(e.getPStatus()) << " owner handle " << e.getOwnerEnt()
58  << " owner proc " << e.getOwnerProc() << " order " << e.getMaxOrder()
59  << " " << *e.getFieldRawPtr();
60  return os;
61 }

Member Data Documentation

◆ dof_shift

constexpr int MoFEM::FieldEntity::dof_shift = 9
staticconstexprprivate

Definition at line 301 of file FieldEntsMultiIndices.hpp.

◆ ent_shift

constexpr int MoFEM::FieldEntity::ent_shift = 64
staticconstexprprivate

Definition at line 302 of file FieldEntsMultiIndices.hpp.

◆ entityCacheColDofs

boost::weak_ptr<EntityCacheNumeredDofs> MoFEM::FieldEntity::entityCacheColDofs
mutable

Definition at line 280 of file FieldEntsMultiIndices.hpp.

◆ entityCacheDataDofs

boost::weak_ptr<EntityCacheDofs> MoFEM::FieldEntity::entityCacheDataDofs
mutable

Definition at line 278 of file FieldEntsMultiIndices.hpp.

◆ entityCacheRowDofs

boost::weak_ptr<EntityCacheNumeredDofs> MoFEM::FieldEntity::entityCacheRowDofs
mutable

Definition at line 279 of file FieldEntsMultiIndices.hpp.

◆ fieldDataAdaptorPtr

boost::shared_ptr<FieldData *const> MoFEM::FieldEntity::fieldDataAdaptorPtr
mutableprivate

Definition at line 300 of file FieldEntsMultiIndices.hpp.

◆ localUId

UId MoFEM::FieldEntity::localUId

Local unique id for this entity. Unique on CPU partition.

Note
Global UId use entity handle from owning processor, so is unique across all CPUs. Local UId, uses local entity handle. Local id is convenient to use, is easley accessible from MOAB.

Definition at line 37 of file FieldEntsMultiIndices.hpp.

◆ proc_shift

constexpr int MoFEM::FieldEntity::proc_shift = 10
staticconstexprprivate

Definition at line 303 of file FieldEntsMultiIndices.hpp.

◆ tagMaxOrderPtr

boost::shared_ptr<const ApproximationOrder> MoFEM::FieldEntity::tagMaxOrderPtr
mutableprivate

Definition at line 299 of file FieldEntsMultiIndices.hpp.

◆ weakStoragePtr

boost::weak_ptr<EntityStorage> MoFEM::FieldEntity::weakStoragePtr
mutable

Definition at line 296 of file FieldEntsMultiIndices.hpp.


The documentation for this struct was generated from the following files:
MoFEM::FieldEntity::getGlobalUniqueIdCalculate
UId getGlobalUniqueIdCalculate() const
Calculate global UId.
Definition: FieldEntsMultiIndices.hpp:216
MoFEM::interface_Field< Field, RefEntity >::getBitNumber
FieldBitNumber getBitNumber() const
Definition: FieldMultiIndices.hpp:347
MoFEM::get_tag_ptr
void * get_tag_ptr(moab::Interface &moab, Tag th, EntityHandle ent, int *tag_size)
Get the tag ptr object.
Definition: RefEntsMultiIndices.hpp:40
EntityHandle
MoFEM::Field::getDofOrderMap
const std::array< ApproximationOrder, MAX_DOFS_ON_ENTITY > & getDofOrderMap(const EntityType type) const
get hash-map relating dof index on entity with its order
Definition: FieldMultiIndices.hpp:254
MoFEM::FieldEntity::getOrderNbDofs
int getOrderNbDofs(ApproximationOrder order) const
Get number of DOFs on entity for given order of approximation.
Definition: FieldEntsMultiIndices.hpp:86
MoFEM::FieldEntity::getLoLocalEntityBitNumber
static UId getLoLocalEntityBitNumber(const char bit_number, const EntityHandle ent)
Definition: FieldEntsMultiIndices.hpp:247
MoFEM::FieldEntity::getLoFieldEntityUId
static UId getLoFieldEntityUId(const UId &uid)
Definition: FieldEntsMultiIndices.hpp:236
MoFEM::interface_RefEntity< RefEntity >::getRefEntityPtr
boost::shared_ptr< RefEntity > & getRefEntityPtr() const
Definition: RefEntsMultiIndices.hpp:709
MoFEM::interface_RefEntity< RefEntity >::getEnt
EntityHandle getEnt() const
Get the entity handle.
Definition: RefEntsMultiIndices.hpp:603
THROW_MESSAGE
#define THROW_MESSAGE(msg)
Throw MoFEM exception.
Definition: definitions.h:561
order
constexpr int order
Definition: dg_projection.cpp:18
MAX_PROCESSORS_NUMBER
#define MAX_PROCESSORS_NUMBER
Maximal number of processors.
Definition: definitions.h:237
MoFEM::getVectorAdaptor
auto getVectorAdaptor(T1 ptr, const size_t n)
Get Vector adaptor.
Definition: Templates.hpp:31
MoFEM::Types::UId
uint128_t UId
Unique Id.
Definition: Types.hpp:31
MoFEM::FieldEntity::getLocalUniqueIdCalculate
UId getLocalUniqueIdCalculate()
Get the Local Unique Id Calculate object.
Definition: FieldEntsMultiIndices.hpp:136
MoFEM::FieldEntity::tagMaxOrderPtr
boost::shared_ptr< const ApproximationOrder > tagMaxOrderPtr
Definition: FieldEntsMultiIndices.hpp:299
MoFEM::interface_RefEntity< RefEntity >::getOwnerProc
int getOwnerProc() const
Definition: RefEntsMultiIndices.hpp:675
MoFEM::interface_Field< Field, RefEntity >::getNbOfCoeffs
FieldCoefficientsNumber getNbOfCoeffs() const
Definition: FieldMultiIndices.hpp:342
MoFEM::FieldEntity::proc_shift
static constexpr int proc_shift
Definition: FieldEntsMultiIndices.hpp:303
MoFEM::FieldEntity::fieldDataAdaptorPtr
boost::shared_ptr< FieldData *const > fieldDataAdaptorPtr
Definition: FieldEntsMultiIndices.hpp:300
MAX_DOFS_ON_ENTITY
#define MAX_DOFS_ON_ENTITY
Maximal number of DOFs on entity.
Definition: definitions.h:236
MoFEM::FieldEntity::getMaxOrder
ApproximationOrder getMaxOrder() const
Get order set to the entity (Allocated tag size for such number)
Definition: FieldEntsMultiIndices.hpp:111
MoFEM::FieldEntity::ent_shift
static constexpr int ent_shift
Definition: FieldEntsMultiIndices.hpp:302
MoFEM::FieldEntity::dof_shift
static constexpr int dof_shift
Definition: FieldEntsMultiIndices.hpp:301
MoFEM::Types::FieldData
double FieldData
Field data type.
Definition: Types.hpp:25
MoFEM::FieldEntity::getNbDofsOnEnt
int getNbDofsOnEnt() const
Get number of active DOFs on entity.
Definition: FieldEntsMultiIndices.hpp:50
MoFEM::interface_RefEntity< RefEntity >::getEntType
EntityType getEntType() const
Get entity type.
Definition: RefEntsMultiIndices.hpp:643
MoFEM::interface_Field< Field, RefEntity >::getFieldRawPtr
const Field * getFieldRawPtr() const
Definition: FieldMultiIndices.hpp:364
MoFEM::FieldEntity::weakStoragePtr
boost::weak_ptr< EntityStorage > weakStoragePtr
Definition: FieldEntsMultiIndices.hpp:296
MoFEM::interface_RefEntity< RefEntity >::getOwnerEnt
EntityHandle getOwnerEnt() const
Definition: RefEntsMultiIndices.hpp:665
MoFEM::FieldEntity::localUId
UId localUId
Local unique id for this entity. Unique on CPU partition.
Definition: FieldEntsMultiIndices.hpp:37