v0.8.15
Public Member Functions | Friends | List of all members
MoFEM::RefElement_VERTEX Struct Reference

keeps data about abstract VERTEX finite element More...

#include <src/multi_indices/FEMultiIndices.hpp>

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

Public Member Functions

 RefElement_VERTEX (const boost::shared_ptr< RefEntity > &ref_ent_ptr)
 
const boost::shared_ptr< SideNumber > & getSideNumberPtr (const EntityHandle ent) const
 
- Public Member Functions inherited from MoFEM::RefElement
 RefElement (const boost::shared_ptr< RefEntity > &ref_ent_ptr)
 
virtual const BitRefEdgesgetBitRefEdges () const
 
virtual int getBitRefEdgesUlong () const
 
SideNumber_multiIndexgetSideNumberTable () const
 
boost::shared_ptr< RefEntity > & getRefEntityPtr () const
 Get pointer to RefEntity. More...
 
- 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 ()
 
boost::shared_ptr< BasicEntityData > & getBasicDataPtr ()
 
const boost::shared_ptr< BasicEntityData > & getBasicDataPtr () const
 
EntityHandle getRefEnt () const
 
EntityType getParentEntType () const
 
EntityHandle getParentEnt () const
 
BitRefLevelgetBitRefLevelPtr () const
 
const BitRefLevelgetBitRefLevel () const
 
unsigned long int getBitRefLevelULong () const
 
EntityType getEntType () const
 
EntityID getEntId () const
 
EntityHandle getOwnerEnt () const
 
EntityHandlegetOwnerEnt ()
 
int getOwnerProc () const
 
intgetOwnerProc ()
 
int getPartProc () const
 
intgetPartProc ()
 
unsigned char getPStatus () const
 
intgetSharingProcsPtr () const
 
EntityHandlegetSharingHandlersPtr () const
 
boost::shared_ptr< RefEntity > & getRefEntityPtr () const
 

Friends

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

Additional Inherited Members

- Public Types inherited from MoFEM::RefElement
typedef interface_RefEntity< RefEntityinterface_type_RefEntity
 
- Public Attributes inherited from MoFEM::RefElement
SideNumber_multiIndex side_number_table
 
- Public Attributes inherited from MoFEM::interface_RefEntity< RefEntity >
boost::shared_ptr< RefEntitysPtr
 
- Static Public Attributes inherited from MoFEM::RefElement
static BitRefEdges DummyBitRefEdges = BitRefEdges(0)
 
static const boost::shared_ptr< SideNumber > nullSideNumber
 

Detailed Description

keeps data about abstract VERTEX finite element

Definition at line 144 of file FEMultiIndices.hpp.

Constructor & Destructor Documentation

◆ RefElement_VERTEX()

MoFEM::RefElement_VERTEX::RefElement_VERTEX ( const boost::shared_ptr< RefEntity > &  ref_ent_ptr)

Definition at line 486 of file FEMultiIndices.cpp.

488  : RefElement(ref_ent_ptr) {
489  switch (ref_ent_ptr->getEntType()) {
490  case MBVERTEX:
491  break;
492  default:
493  THROW_MESSAGE("this works only for TRIs");
494  }
495 }
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:602
RefElement(const boost::shared_ptr< RefEntity > &ref_ent_ptr)

Member Function Documentation

◆ getSideNumberPtr()

const boost::shared_ptr< SideNumber > & MoFEM::RefElement_VERTEX::getSideNumberPtr ( const EntityHandle  ent) const
virtual

Reimplemented from MoFEM::RefElement.

Definition at line 497 of file FEMultiIndices.cpp.

497  {
498  moab::Interface &moab = getRefEntityPtr()->basicDataPtr->moab;
499  SideNumber_multiIndex::iterator miit = side_number_table.find(ent);
500  if (miit != side_number_table.end())
501  return *miit;
502  if (sPtr->ent == ent) {
503  miit =
505  .insert(boost::shared_ptr<SideNumber>(new SideNumber(ent, 0, 0, 0)))
506  .first;
507  return *miit;
508  }
509  if (moab.type_from_handle(ent) == MBENTITYSET) {
510  miit =
512  .insert(boost::shared_ptr<SideNumber>(new SideNumber(ent, 0, 0, 0)))
513  .first;
514  return *miit;
515  }
516  THROW_MESSAGE("no side entity for vertex if its is not an vertex itself");
517  return nullSideNumber;
518 }
boost::shared_ptr< RefEntity > sPtr
SideNumber_multiIndex side_number_table
multi_index_container< boost::shared_ptr< SideNumber >, indexed_by< hashed_unique< member< SideNumber, EntityHandle, &SideNumber::ent > >, ordered_non_unique< composite_key< SideNumber, const_mem_fun< SideNumber, EntityType, &SideNumber::getEntType >, member< SideNumber, char, &SideNumber::side_number > > >, ordered_non_unique< const_mem_fun< SideNumber, EntityType, &SideNumber::getEntType > > > > SideNumber_multiIndex
SideNumber_multiIndex for SideNumber.
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:602
boost::shared_ptr< RefEntity > & getRefEntityPtr() const
Get pointer to RefEntity.
static const boost::shared_ptr< SideNumber > nullSideNumber

Friends And Related Function Documentation

◆ operator<<

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

Definition at line 519 of file FEMultiIndices.cpp.

519  {
520  os << *e.sPtr;
521  return os;
522 }

The documentation for this struct was generated from the following files: