BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::fem::Group Class Reference

#include <cl_FEM_Group.hpp>

Inheritance diagram for belfem::fem::Group:
[legend]
Collaboration diagram for belfem::fem::Group:
[legend]

Public Member Functions

 Group (DofManagerBase *aParent, const GroupType aGroupType, const ElementType aElementType, const id_t aID, const index_t aNumberOfElements, const bool aOwnElements=true)
virtual ~Group ()=default
GroupType type () const
 return the type of this group
id_t id () const
 return the id of the group
virtual ElementType element_type () const
 return the element type of this block
DofManagerBaseparent ()
 return the field of this block
index_t number_of_elements () const
uint number_of_nodes_per_element () const
uint number_of_edges_per_element () const
uint number_of_faces_per_element () const
const IntegrationDataintegration () const
 expose the integration data
const IntegrationDataenrichment_data (const uint aFacet) const
virtual const IntegrationDatathinshell_integration () const
Cell< Element * > & elements ()
Cell< Element * > & aura_elements ()
bool element_exists (const id_t aID)
Calculatorcalculator ()
 expose calculator object
Matrix< real > & node_coords ()
 expose container for node coords
Vector< real > & field_data (const string &aLabel)
 access scal ars from the parent
void set_material (Material *aMaterial)
void set_material (const string &aLabel)
Materialmaterial ()
const Materialmaterial () const
void create_element_map ()
Elementelement (const id_t aID)
bool has_rhs () const
void set_rhs_flag (const bool aFlag)
const id_tmesh_id () const
 if the sideset or block is empty, ID is zero.
void set_mesh_id (const id_t &aID)
virtual IntegrationDatamaster_integration (const uint aSideSetIndex)
 for special purpose integration, sideset only
virtual IntegrationDataslave_integration (const uint aSideSetIndex)
void delete_pointers ()
const InterpolationFunctioninterpolation_function () const
void set_domain_type (const DomainType aType)
DomainType domain_type () const
virtual ElementType master_type () const
 returns type of sideset master
virtual ElementType slave_type () const
 returns type of sideset slave
virtual uint number_of_thin_shell_layers () const
 dummy function, throws error unless sideset or shell
virtual uint number_of_ghost_sidesets () const
 dummy function, throws error unless sideset or shell
virtual real thin_shell_thickness (const uint aLayerIndex) const
 dummy function, throws error unless sideset or shell
virtual real thin_shell_thickness () const
 dummy function, throws error unless sideset or shell
bool is_active () const
 function telling if values from this group are computed ( default : true ) Returns true for GeometryAndDofs, false otherwise
GroupActivationMode activation_mode () const
 returns the activation mode of this group
void set_activation_mode (const GroupActivationMode aMode)
 set the activation mode of the group
void activate (bool aFlag)
 set the active flag of the group (backward compatibility) Maps bool to GeometryAndDofs (true) or Inactive (false)
virtual void initialize_lookup_tables (const uint aOrder)
bool has_enrichment ()

Protected Member Functions

void create_calculator ()

Protected Attributes

DofManagerBasemParent
CalculatormCalc = nullptr
const GroupType mType
const ElementType mElementType
const id_t mID
const index_t mNumberOfElements
const bool mOwnElements
const proc_t mCommRank
DomainType mDomainType = DomainType::Default
Matrix< realmNodeCoords
uint mNumberOfNodesPerElement = BELFEM_UINT_MAX
uint mIntegrationOrder = 0
Cell< Cell< Matrix< real > > > mBoundaryN
Cell< Element * > mElements
Cell< Element * > mAuraElements
MaterialmMaterial = nullptr
const BoundaryCondition * mBoundaryCondition = nullptr
Map< id_t, Element * > mElementMap
id_t mMeshID
bool mHasRHS = true
 flag telling if block has a right hand side
GroupActivationMode mActivationMode = GroupActivationMode::GeometryAndDofs
 activation mode determining how this group is used for computation
Cell< IntegrationData * > mEnrichmentData
 in case for example if bubble functions are used

Constructor & Destructor Documentation

◆ Group()

belfem::fem::Group::Group ( DofManagerBase * aParent,
const GroupType aGroupType,
const ElementType aElementType,
const id_t aID,
const index_t aNumberOfElements,
const bool aOwnElements = true )

◆ ~Group()

virtual belfem::fem::Group::~Group ( )
virtualdefault

Member Function Documentation

◆ activate()

void belfem::fem::Group::activate ( bool aFlag)
inline

set the active flag of the group (backward compatibility) Maps bool to GeometryAndDofs (true) or Inactive (false)

◆ activation_mode()

GroupActivationMode belfem::fem::Group::activation_mode ( ) const
inline

returns the activation mode of this group

◆ aura_elements()

Cell< Element * > & belfem::fem::Group::aura_elements ( )
inline

◆ calculator()

Calculator * belfem::fem::Group::calculator ( )
inline

expose calculator object

◆ create_calculator()

void belfem::fem::Group::create_calculator ( )
protected

◆ create_element_map()

void belfem::fem::Group::create_element_map ( )

◆ delete_pointers()

void belfem::fem::Group::delete_pointers ( )

◆ domain_type()

DomainType belfem::fem::Group::domain_type ( ) const
inline

◆ element()

Element * belfem::fem::Group::element ( const id_t aID)
inline

◆ element_exists()

bool belfem::fem::Group::element_exists ( const id_t aID)
inline

◆ element_type()

ElementType belfem::fem::Group::element_type ( ) const
inlinevirtual

return the element type of this block

◆ elements()

Cell< Element * > & belfem::fem::Group::elements ( )
inline

◆ enrichment_data()

const IntegrationData * belfem::fem::Group::enrichment_data ( const uint aFacet) const
inline

◆ field_data()

Vector< real > & belfem::fem::Group::field_data ( const string & aLabel)

access scal ars from the parent

◆ has_enrichment()

bool belfem::fem::Group::has_enrichment ( )
inline

◆ has_rhs()

bool belfem::fem::Group::has_rhs ( ) const
inline

◆ id()

id_t belfem::fem::Group::id ( ) const
inline

return the id of the group

◆ initialize_lookup_tables()

void belfem::fem::Group::initialize_lookup_tables ( const uint aOrder)
virtual

Reimplemented in belfem::fem::Block, and belfem::fem::SideSet.

◆ integration()

const IntegrationData * belfem::fem::Group::integration ( ) const
inline

expose the integration data

◆ interpolation_function()

const InterpolationFunction * belfem::fem::Group::interpolation_function ( ) const

◆ is_active()

bool belfem::fem::Group::is_active ( ) const
inline

function telling if values from this group are computed ( default : true ) Returns true for GeometryAndDofs, false otherwise

◆ master_integration()

IntegrationData * belfem::fem::Group::master_integration ( const uint aSideSetIndex)
virtual

for special purpose integration, sideset only

Reimplemented in belfem::fem::SideSet.

◆ master_type()

ElementType belfem::fem::Group::master_type ( ) const
virtual

returns type of sideset master

Reimplemented in belfem::fem::SideSet.

◆ material() [1/2]

Material * belfem::fem::Group::material ( )
inline

◆ material() [2/2]

const Material * belfem::fem::Group::material ( ) const
inline

◆ mesh_id()

const id_t & belfem::fem::Group::mesh_id ( ) const
inline

if the sideset or block is empty, ID is zero.

use mesh_id if you really need the ID of the corresponding mesh object

Returns
the ID of the corresponding mesh object

◆ node_coords()

Matrix< real > & belfem::fem::Group::node_coords ( )
inline

expose container for node coords

◆ number_of_edges_per_element()

uint belfem::fem::Group::number_of_edges_per_element ( ) const
inline

◆ number_of_elements()

index_t belfem::fem::Group::number_of_elements ( ) const
inline

◆ number_of_faces_per_element()

uint belfem::fem::Group::number_of_faces_per_element ( ) const
inline

◆ number_of_ghost_sidesets()

uint belfem::fem::Group::number_of_ghost_sidesets ( ) const
virtual

dummy function, throws error unless sideset or shell

Returns

◆ number_of_nodes_per_element()

uint belfem::fem::Group::number_of_nodes_per_element ( ) const
inline

◆ number_of_thin_shell_layers()

uint belfem::fem::Group::number_of_thin_shell_layers ( ) const
virtual

dummy function, throws error unless sideset or shell

Returns

◆ parent()

DofManagerBase * belfem::fem::Group::parent ( )
inline

return the field of this block

◆ set_activation_mode()

void belfem::fem::Group::set_activation_mode ( const GroupActivationMode aMode)
inline

set the activation mode of the group

◆ set_domain_type()

void belfem::fem::Group::set_domain_type ( const DomainType aType)
inline

◆ set_material() [1/2]

void belfem::fem::Group::set_material ( const string & aLabel)

◆ set_material() [2/2]

void belfem::fem::Group::set_material ( Material * aMaterial)

◆ set_mesh_id()

void belfem::fem::Group::set_mesh_id ( const id_t & aID)
inline

◆ set_rhs_flag()

void belfem::fem::Group::set_rhs_flag ( const bool aFlag)
inline

◆ slave_integration()

IntegrationData * belfem::fem::Group::slave_integration ( const uint aSideSetIndex)
virtual

Reimplemented in belfem::fem::SideSet.

◆ slave_type()

ElementType belfem::fem::Group::slave_type ( ) const
virtual

returns type of sideset slave

Reimplemented in belfem::fem::SideSet.

◆ thin_shell_thickness() [1/2]

real belfem::fem::Group::thin_shell_thickness ( ) const
virtual

dummy function, throws error unless sideset or shell

Returns

◆ thin_shell_thickness() [2/2]

real belfem::fem::Group::thin_shell_thickness ( const uint aLayerIndex) const
virtual

dummy function, throws error unless sideset or shell

Returns

◆ thinshell_integration()

const IntegrationData * belfem::fem::Group::thinshell_integration ( ) const
virtual

◆ type()

GroupType belfem::fem::Group::type ( ) const
inline

return the type of this group

Member Data Documentation

◆ mActivationMode

GroupActivationMode belfem::fem::Group::mActivationMode = GroupActivationMode::GeometryAndDofs
protected

activation mode determining how this group is used for computation

◆ mAuraElements

Cell< Element * > belfem::fem::Group::mAuraElements
protected

◆ mBoundaryCondition

const BoundaryCondition* belfem::fem::Group::mBoundaryCondition = nullptr
protected

◆ mBoundaryN

Cell< Cell< Matrix < real > > > belfem::fem::Group::mBoundaryN
protected

◆ mCalc

Calculator* belfem::fem::Group::mCalc = nullptr
protected

◆ mCommRank

const proc_t belfem::fem::Group::mCommRank
protected

◆ mDomainType

DomainType belfem::fem::Group::mDomainType = DomainType::Default
protected

◆ mElementMap

Map< id_t, Element * > belfem::fem::Group::mElementMap
protected

◆ mElements

Cell< Element * > belfem::fem::Group::mElements
protected

◆ mElementType

const ElementType belfem::fem::Group::mElementType
protected

◆ mEnrichmentData

Cell< IntegrationData * > belfem::fem::Group::mEnrichmentData
protected

in case for example if bubble functions are used

◆ mHasRHS

bool belfem::fem::Group::mHasRHS = true
protected

flag telling if block has a right hand side

◆ mID

const id_t belfem::fem::Group::mID
protected

◆ mIntegrationOrder

uint belfem::fem::Group::mIntegrationOrder = 0
protected

◆ mMaterial

Material* belfem::fem::Group::mMaterial = nullptr
protected

◆ mMeshID

id_t belfem::fem::Group::mMeshID
protected

◆ mNodeCoords

Matrix< real > belfem::fem::Group::mNodeCoords
protected

◆ mNumberOfElements

const index_t belfem::fem::Group::mNumberOfElements
protected

◆ mNumberOfNodesPerElement

uint belfem::fem::Group::mNumberOfNodesPerElement = BELFEM_UINT_MAX
protected

◆ mOwnElements

const bool belfem::fem::Group::mOwnElements
protected

◆ mParent

DofManagerBase* belfem::fem::Group::mParent
protected

◆ mType

const GroupType belfem::fem::Group::mType
protected

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