BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_FEM_Domain.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
12#ifndef CL_FEM_DOMAIN_HPP
13#define CL_FEM_DOMAIN_HPP
14
15#include "typedefs.hpp"
16#include "cl_Input_Section.hpp"
17#include "cl_Vector.hpp"
18#include "en_DomainType.hpp"
19
20namespace belfem
21{
22 namespace fem
23 {
24 class Domain
25 {
26 DomainType mType ;
27
28 Vector< id_t > mGroupIDs ;
29
30 // if the group ids are used as terminal to
31 // a thin shell, the next string is not empty. Otherwise it is
32 string mThinShellLabel ;
33
34 string mLabel ;
35
36 string mMaterialLabel ;
37
38 bool mIsBlock = true ;
39 bool mIsSideSet = false ;
40
41 public:
42
43 Domain( const input::Section * aSection );
44
45 ~Domain() = default;
46
47 bool
48 is_block() const ;
49
50 bool
51 is_sideset() const ;
52
54 type() const ;
55
56 const Vector< id_t > &
57 group_ids() const ;
58
59 const string &
60 material() const ;
61
62 private:
63
70 void
71 read_groups( const input::Section * aSection,
72 bool aUseBlocks = true,
73 bool aAllowSigns = false );
74
75 };
76
77 inline DomainType
79 {
80 return mType ;
81 }
82
83 inline bool
85 {
86 return mIsBlock ;
87 }
88
89 inline bool
91 {
92 return mIsSideSet ;
93 }
94
95 inline const Vector< id_t > &
97 {
98 return mGroupIDs ;
99 }
100
101 inline const string &
103 {
104 return mMaterialLabel ;
105 }
106
107
108 }
109}
110#endif //CL_FEM_DOMAIN_HPP
bool is_sideset() const
Definition cl_FEM_Domain.hpp:90
const string & material() const
Definition cl_FEM_Domain.hpp:102
DomainType type() const
Definition cl_FEM_Domain.hpp:78
bool is_block() const
Definition cl_FEM_Domain.hpp:84
const Vector< id_t > & group_ids() const
Definition cl_FEM_Domain.hpp:96
Domain(const input::Section *aSection)
Definition cl_FEM_Domain.cpp:22
One hierarchical section of a configuration file.
Definition cl_Input_Section.hpp:34
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
DomainType
Definition en_DomainType.hpp:20