BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_FEM_Block.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11#ifndef BELFEM_CL_FEM_BLOCK_HPP
12#define BELFEM_CL_FEM_BLOCK_HPP
13
14#include "cl_Mesh.hpp"
15#include "cl_Block.hpp"
16#include "cl_Cell.hpp"
17#include "cl_FEM_Dof.hpp"
19#include "cl_Cell.hpp"
20
21#include "cl_Vector.hpp"
22#include "cl_Matrix.hpp"
23
24
25#include "cl_FEM_Element.hpp"
26#include "cl_FEM_Group.hpp"
27
28namespace belfem
29{
30//------------------------------------------------------------------------------
31
32 namespace fem
33 {
34 class Block : public Group
35 {
36 // block on mesh
37 mesh::Block * mBlock = nullptr ;
38
39
40//------------------------------------------------------------------------------
41 public:
42//------------------------------------------------------------------------------
43
44 // creates an empty block
45 Block( DofManagerBase * aParent, const ElementType aType = ElementType::EMPTY );
46
47//------------------------------------------------------------------------------
48
49 Block( DofManagerBase * aParent,
50 mesh::Block * aBlock,
51 const Vector< index_t > & aOwnedElementIndices,
52 const Vector< index_t > & aAuraElementIndices );
53
54//------------------------------------------------------------------------------
55
56 ~Block() override;
57
58//------------------------------------------------------------------------------
59
64 block();
65
66//------------------------------------------------------------------------------
67
68 void
69 set_integration_order( const uint aOrder );
70
71//------------------------------------------------------------------------------
72
73 void
74 initialize_lookup_tables( const uint aIntegrationOrder ) override;
75
76//------------------------------------------------------------------------------
77 };
78
79//------------------------------------------------------------------------------
80
81 inline mesh::Block *
83 {
84 return mBlock;
85 }
86
87//------------------------------------------------------------------------------
88 }
89}
90
91#endif //BELFEM_CL_FEM_BLOCK_HPP
Block(DofManagerBase *aParent, const ElementType aType=ElementType::EMPTY)
Definition cl_FEM_Block.cpp:30
void set_integration_order(const uint aOrder)
Definition cl_FEM_Block.cpp:99
mesh::Block * block()
expose block object on mesh
Definition cl_FEM_Block.hpp:82
void initialize_lookup_tables(const uint aIntegrationOrder) override
Definition cl_FEM_Block.cpp:116
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
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
Definition cl_Block.hpp:27
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
ElementType
Element types.
Definition Mesh_Enums.hpp:27
@ EMPTY
Definition Mesh_Enums.hpp:28