v0.9.1
Public Member Functions | Friends | List of all members
MoFEM::RefElement_EDGE Struct Reference

keeps data about abstract EDGE finite element More...

#include <src/multi_indices/FEMultiIndices.hpp>

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

Public Member Functions

 RefElement_EDGE (const boost::shared_ptr< RefEntity > &ref_ents_ptr)
 
virtual ~RefElement_EDGE ()=default
 
const boost::shared_ptr< SideNumber > & getSideNumberPtr (const EntityHandle ent) const
 
- Public Member Functions inherited from MoFEM::RefElement
 RefElement (const boost::shared_ptr< RefEntity > &ref_ents_ptr)
 
virtual ~RefElement ()=default
 
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 ()=default
 
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
 
int & getOwnerProc ()
 
int getPartProc () const
 
int & getPartProc ()
 
unsigned char getPStatus () const
 
int * getSharingProcsPtr () const
 
EntityHandlegetSharingHandlersPtr () const
 
boost::shared_ptr< RefEntity > & getRefEntityPtr () const
 

Friends

std::ostream & operator<< (std::ostream &os, const RefElement_EDGE &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 EDGE finite element

Definition at line 125 of file FEMultiIndices.hpp.

Constructor & Destructor Documentation

◆ RefElement_EDGE()

MoFEM::RefElement_EDGE::RefElement_EDGE ( const boost::shared_ptr< RefEntity > &  ref_ents_ptr)

Definition at line 424 of file FEMultiIndices.cpp.

426  : RefElement(ref_ents_ptr) {
427  switch (ref_ents_ptr->getEntType()) {
428  case MBEDGE:
429  break;
430  default:
431  THROW_MESSAGE("this work only for TRIs");
432  }
433 }
RefElement(const boost::shared_ptr< RefEntity > &ref_ents_ptr)
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:626

◆ ~RefElement_EDGE()

virtual MoFEM::RefElement_EDGE::~RefElement_EDGE ( )
virtualdefault

Member Function Documentation

◆ getSideNumberPtr()

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

Reimplemented from MoFEM::RefElement.

Definition at line 435 of file FEMultiIndices.cpp.

435  {
436  moab::Interface &moab = getRefEntityPtr()->basicDataPtr->moab;
437  SideNumber_multiIndex::iterator miit = side_number_table.find(ent);
438  if (miit != side_number_table.end())
439  return *miit;
440  if (sPtr->ent == ent) {
441  miit =
442  const_cast<SideNumber_multiIndex &>(side_number_table)
443  .insert(boost::shared_ptr<SideNumber>(new SideNumber(ent, 0, 0, 0)))
444  .first;
445  return *miit;
446  }
447  if (moab.type_from_handle(ent) == MBENTITYSET) {
448  miit =
449  const_cast<SideNumber_multiIndex &>(side_number_table)
450  .insert(boost::shared_ptr<SideNumber>(new SideNumber(ent, 0, 0, 0)))
451  .first;
452  return *miit;
453  }
454  int side_number, sense, offset;
455  rval = moab.side_number(sPtr->ent, ent, side_number, sense, offset);
456  MOAB_THROW(rval);
457  miit = const_cast<SideNumber_multiIndex &>(side_number_table)
458  .insert(boost::shared_ptr<SideNumber>(
459  new SideNumber(ent, side_number, sense, offset)))
460  .first;
461  // std::cerr << side_number << " " << sense << " " << offset << std::endl;
462  return *miit;
463 }
boost::shared_ptr< RefEntity > sPtr
SideNumber_multiIndex side_number_table
#define MOAB_THROW(a)
Check error code of MoAB function and throw MoFEM exception.
Definition: definitions.h:608
static MoFEMErrorCodeGeneric< moab::ErrorCode > rval
Definition: Exceptions.hpp:85
boost::shared_ptr< RefEntity > & getRefEntityPtr() const
Get pointer to RefEntity.
DeprecatedCoreInterface Interface
Definition: Interface.hpp:1879

Friends And Related Function Documentation

◆ operator<<

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

Definition at line 464 of file FEMultiIndices.cpp.

464  {
465  os << *e.sPtr;
466  return os;
467 }

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