12#ifndef BELFEM_CL_FEM_GROUP_HPP
13#define BELFEM_CL_FEM_GROUP_HPP
40 class BoundaryCondition ;
125 const index_t aNumberOfElements,
126 const bool aOwnElements=
true );
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
Hash map (unordered key-value).
Definition cl_Map.hpp:75
Base class for all materials in BELFEM.
Definition cl_Material.hpp:279
Definition cl_FEM_Block.hpp:35
Definition cl_FEM_Calculator.hpp:600
const IntegrationData * integration() const
Definition cl_FEM_Calculator.hpp:2320
abstract interface of the dof manager as seen by the group classes and the IWG; DofManager is its onl...
Definition cl_FEM_DofManagerBase.hpp:44
Definition cl_FEM_Element.hpp:41
bool is_active() const
function telling if values from this group are computed ( default : true ) Returns true for GeometryA...
Definition cl_FEM_Group.hpp:607
const GroupType mType
Definition cl_FEM_Group.hpp:57
const ElementType mElementType
Definition cl_FEM_Group.hpp:59
Matrix< real > mNodeCoords
Definition cl_FEM_Group.hpp:74
DofManagerBase * mParent
Definition cl_FEM_Group.hpp:51
void set_domain_type(const DomainType aType)
Definition cl_FEM_Group.hpp:591
virtual void initialize_lookup_tables(const uint aOrder)
Definition cl_FEM_Group.cpp:234
Vector< real > & field_data(const string &aLabel)
access scal ars from the parent
Definition cl_FEM_Group.cpp:77
virtual const IntegrationData * thinshell_integration() const
Definition cl_FEM_Group.cpp:221
Cell< Element * > & elements()
Definition cl_FEM_Group.hpp:507
void activate(bool aFlag)
set the active flag of the group (backward compatibility) Maps bool to GeometryAndDofs (true) or Inac...
Definition cl_FEM_Group.hpp:631
GroupType type() const
return the type of this group
Definition cl_FEM_Group.hpp:459
const BoundaryCondition * mBoundaryCondition
Definition cl_FEM_Group.hpp:100
Calculator * mCalc
Definition cl_FEM_Group.hpp:54
void delete_pointers()
Definition cl_FEM_Group.cpp:54
bool element_exists(const id_t aID)
Definition cl_FEM_Group.hpp:678
bool has_rhs() const
Definition cl_FEM_Group.hpp:557
virtual ElementType element_type() const
return the element type of this block
Definition cl_FEM_Group.hpp:647
Cell< IntegrationData * > mEnrichmentData
in case for example if bubble functions are used
Definition cl_FEM_Group.hpp:115
const IntegrationData * integration() const
expose the integration data
Definition cl_FEM_Group.hpp:655
uint number_of_faces_per_element() const
Definition cl_FEM_Group.hpp:499
void set_material(Material *aMaterial)
Definition cl_FEM_Group.cpp:85
virtual ElementType master_type() const
returns type of sideset master
Definition cl_FEM_Group.cpp:157
Element * element(const id_t aID)
Definition cl_FEM_Group.hpp:532
Map< id_t, Element * > mElementMap
Definition cl_FEM_Group.hpp:102
bool has_enrichment()
Definition cl_FEM_Group.hpp:670
uint mIntegrationOrder
Definition cl_FEM_Group.hpp:79
virtual IntegrationData * slave_integration(const uint aSideSetIndex)
Definition cl_FEM_Group.cpp:147
Cell< Cell< Matrix< real > > > mBoundaryN
Definition cl_FEM_Group.hpp:89
Group(DofManagerBase *aParent, const GroupType aGroupType, const ElementType aElementType, const id_t aID, const index_t aNumberOfElements, const bool aOwnElements=true)
Definition cl_FEM_Group.cpp:29
virtual ElementType slave_type() const
returns type of sideset slave
Definition cl_FEM_Group.cpp:167
DofManagerBase * parent()
return the field of this block
Definition cl_FEM_Group.hpp:451
Cell< Element * > & aura_elements()
Definition cl_FEM_Group.hpp:515
Calculator * calculator()
expose calculator object
Definition cl_FEM_Group.hpp:639
void create_calculator()
Definition cl_FEM_Group.cpp:122
void set_mesh_id(const id_t &aID)
Definition cl_FEM_Group.hpp:582
virtual IntegrationData * master_integration(const uint aSideSetIndex)
for special purpose integration, sideset only
Definition cl_FEM_Group.cpp:137
GroupActivationMode activation_mode() const
returns the activation mode of this group
Definition cl_FEM_Group.hpp:615
uint mNumberOfNodesPerElement
Definition cl_FEM_Group.hpp:77
void set_activation_mode(const GroupActivationMode aMode)
set the activation mode of the group
Definition cl_FEM_Group.hpp:623
bool mHasRHS
flag telling if block has a right hand side
Definition cl_FEM_Group.hpp:109
const proc_t mCommRank
Definition cl_FEM_Group.hpp:68
const id_t & mesh_id() const
if the sideset or block is empty, ID is zero.
Definition cl_FEM_Group.hpp:574
virtual uint number_of_thin_shell_layers() const
dummy function, throws error unless sideset or shell
Definition cl_FEM_Group.cpp:177
virtual real thin_shell_thickness(const uint aLayerIndex) const
dummy function, throws error unless sideset or shell
Definition cl_FEM_Group.cpp:199
DomainType domain_type() const
Definition cl_FEM_Group.hpp:599
Material * material()
Definition cl_FEM_Group.hpp:540
const id_t mID
Definition cl_FEM_Group.hpp:61
DomainType mDomainType
Definition cl_FEM_Group.hpp:71
Matrix< real > & node_coords()
expose container for node coords
Definition cl_FEM_Group.hpp:523
index_t number_of_elements() const
Definition cl_FEM_Group.hpp:475
void create_element_map()
Definition cl_FEM_Group.cpp:101
const IntegrationData * enrichment_data(const uint aFacet) const
Definition cl_FEM_Group.hpp:663
const bool mOwnElements
Definition cl_FEM_Group.hpp:66
const index_t mNumberOfElements
Definition cl_FEM_Group.hpp:63
uint number_of_edges_per_element() const
Definition cl_FEM_Group.hpp:491
id_t id() const
return the id of the group
Definition cl_FEM_Group.hpp:467
virtual uint number_of_ghost_sidesets() const
dummy function, throws error unless sideset or shell
Definition cl_FEM_Group.cpp:186
GroupActivationMode mActivationMode
activation mode determining how this group is used for computation
Definition cl_FEM_Group.hpp:112
Cell< Element * > mAuraElements
Definition cl_FEM_Group.hpp:94
Material * mMaterial
Definition cl_FEM_Group.hpp:97
void set_rhs_flag(const bool aFlag)
Definition cl_FEM_Group.hpp:566
const InterpolationFunction * interpolation_function() const
id_t mMeshID
Definition cl_FEM_Group.hpp:106
Cell< Element * > mElements
Definition cl_FEM_Group.hpp:92
uint number_of_nodes_per_element() const
Definition cl_FEM_Group.hpp:483
Precomputed bundle of integration points, weights and shape-function values.
Definition cl_IF_IntegrationData.hpp:28
the shape function base class
Definition cl_IF_InterpolationFunction.hpp:24
Definition cl_IFB_LINE3.hpp:21
GroupActivationMode
Defines how a fem::Block or fem::SideSet is activated based on its DomainType.
Definition en_FEM_GroupActivationMode.hpp:26
@ Inactive
Definition en_FEM_GroupActivationMode.hpp:29
@ GeometryAndDofs
Definition en_FEM_GroupActivationMode.hpp:27
unsigned int number_of_edges(const enum ElementType aElementType)
Definition meshtools.cpp:140
unsigned int number_of_faces(const enum ElementType aElementType)
Definition meshtools.cpp:750
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
unsigned int id_t
Definition typedefs.hpp:41
int proc_t
Definition commtypes.hpp:29
ElementType
Element types.
Definition Mesh_Enums.hpp:27
GroupType
Definition Mesh_Enums.hpp:130
uint32_t index_t
Definition typedefs.hpp:52
double real
Definition typedefs.hpp:36
DomainType
Definition en_DomainType.hpp:20
@ Default
Definition en_DomainType.hpp:21
MaterialType
Material classification based on physical behavior.
Definition cl_Material.hpp:107
#define BELFEM_UINT_MAX
Definition typedefs.hpp:80