BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_Maxwell_FieldList.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 BELFEM_CL_MAXWELL_FIELDLIST_HPP
13#define BELFEM_CL_MAXWELL_FIELDLIST_HPP
14
15#include "typedefs.hpp"
16#include "cl_Cell.hpp"
17#include "cl_Map.hpp"
18#include "cl_Vector.hpp"
19#include "en_DomainType.hpp"
20
21namespace belfem
22{
23 namespace fem
24 {
25 class IWG_Maxwell ;
26
27 namespace maxwell
28 {
34 {
35 public:
36//-----------------------------------------------------------------------------
37 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
38 // these fields actually belong to the parent IWG.
39 // we relink them here fore better code readability
40 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
41
44
47
50
53
56
59
60 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
61 // main dofs, set by child IWG
62 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
63
66
69
72
75
78
82
85
86 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
87 // interface dofs, set by child IWG
88 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
89
92
95
97
99
100 // Cell< string > InterfaceThinShell ;
101
105
109
113
114 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
115 // non-dof Fields
116 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
117
120
123
126
127
130
131//-----------------------------------------------------------------------------
132 private:
133//-----------------------------------------------------------------------------
134
135
136//-----------------------------------------------------------------------------
137 public:
138//-----------------------------------------------------------------------------
139
140 FieldList(
141 Map < string, uint > & aDofMap,
142 Cell< string > & aDofs,
143 Cell< string > & aNonDof,
144 Cell< string > & aHidden,
145 Cell< string > & aAll );
146
147 ~FieldList() = default ;
148
149//-----------------------------------------------------------------------------
150
154 void
155 initialize( IWG_Maxwell * aIWG );
156
157//-----------------------------------------------------------------------------
158
166 void
167 collect_block_dofs( const Vector< id_t > & aBlockIDs,
168 const Map< id_t, DomainType > & aBlockTypeMap,
169 Cell< Vector< index_t > > & aBlockDofs );
170
171//-----------------------------------------------------------------------------
172
173 void
175 const Vector< id_t > & aSideSetIDs,
176 const Map< id_t, DomainType > & aSideSetTypeMap,
177 Cell< Vector< index_t > > & aSideSetDofs );
178
179//-----------------------------------------------------------------------------
180
181 uint
182 doftype( const string & aLabel ) const ;
183
184//-----------------------------------------------------------------------------
185 private:
186//-----------------------------------------------------------------------------
187
193 void
194 create_doftable( const Cell< string > & aDofList, Vector< index_t > & aDofTable );
195
196 };
197 } /* end namespace maxwell */
198 } /* end namespace fem */
199} /* end namespace belfem */
200
201#endif //BELFEM_CL_MAXWELL_FIELDLIST_HPP
Main electromagnetic integral weak form (h-phi formulation).
Definition cl_IWG_Maxwell.hpp:31
Cell< string > SymmetryAir
Definition cl_Maxwell_FieldList.hpp:102
Cell< string > MagneticFieldDensity
magnetic field density
Definition cl_Maxwell_FieldList.hpp:119
Cell< string > Ferro
dofs per iron block
Definition cl_Maxwell_FieldList.hpp:71
Cell< string > InterfaceFmFm
Definition cl_Maxwell_FieldList.hpp:96
Cell< string > CurrentBC
current bc for cut
Definition cl_Maxwell_FieldList.hpp:125
Cell< string > Labels
special list for printout
Definition cl_Maxwell_FieldList.hpp:129
Cell< string > ThinShell
Definition cl_Maxwell_FieldList.hpp:81
Cell< string > BoundaryAir
Definition cl_Maxwell_FieldList.hpp:110
Cell< string > AntiSymmetryAir
Definition cl_Maxwell_FieldList.hpp:106
Cell< string > InterfaceCondFm
dofs along superconductor-ferro-interface
Definition cl_Maxwell_FieldList.hpp:94
Cell< string > Lambda
langrange multiplicators
Definition cl_Maxwell_FieldList.hpp:58
Cell< string > BoundaryFerro
Definition cl_Maxwell_FieldList.hpp:111
Map< string, uint > & mDofMap
this map associates unique numbers with the dofs
Definition cl_Maxwell_FieldList.hpp:43
void collect_sideset_dofs(const Vector< id_t > &aSideSetIDs, const Map< id_t, DomainType > &aSideSetTypeMap, Cell< Vector< index_t > > &aSideSetDofs)
Definition cl_Maxwell_FieldList.cpp:301
Cell< string > & Hidden
fields that are hidden from exodus
Definition cl_Maxwell_FieldList.hpp:52
Cell< string > BoundaryConductor
Definition cl_Maxwell_FieldList.hpp:112
Cell< string > Cut
dofs along Cut-Interface
Definition cl_Maxwell_FieldList.hpp:77
Cell< string > SymmetryConductor
Definition cl_Maxwell_FieldList.hpp:104
Cell< string > AntiSymmetryConductor
Definition cl_Maxwell_FieldList.hpp:108
FieldList(Map< string, uint > &aDofMap, Cell< string > &aDofs, Cell< string > &aNonDof, Cell< string > &aHidden, Cell< string > &aAll)
Definition cl_Maxwell_FieldList.cpp:26
void initialize(IWG_Maxwell *aIWG)
This subroutine is called by the initialize function of the IWG.
Definition cl_Maxwell_FieldList.cpp:44
Cell< string > & NonDof
non dof fields
Definition cl_Maxwell_FieldList.hpp:49
Cell< string > InterfaceCondAir
dofs along air-superconductor-interface
Definition cl_Maxwell_FieldList.hpp:91
void collect_block_dofs(const Vector< id_t > &aBlockIDs, const Map< id_t, DomainType > &aBlockTypeMap, Cell< Vector< index_t > > &aBlockDofs)
This subroutine is called by the initialize function of the IWG It assigns the block-specific dofs ba...
Definition cl_Maxwell_FieldList.cpp:237
Cell< string > Conductor
dofs per conducting block
Definition cl_Maxwell_FieldList.hpp:65
Cell< string > Air
dofs per air
Definition cl_Maxwell_FieldList.hpp:74
Cell< string > Ghost
dofs on Ghost Elements
Definition cl_Maxwell_FieldList.hpp:84
Cell< string > InterfaceFmAir
Definition cl_Maxwell_FieldList.hpp:98
uint doftype(const string &aLabel) const
Definition cl_Maxwell_FieldList.cpp:439
Cell< string > CurrentDensity
current density
Definition cl_Maxwell_FieldList.hpp:122
Cell< string > SymmetryFerro
Definition cl_Maxwell_FieldList.hpp:103
Cell< string > & All
all fields
Definition cl_Maxwell_FieldList.hpp:55
Cell< string > Coil
dofs per coil
Definition cl_Maxwell_FieldList.hpp:68
Cell< string > & Dofs
all dofs, points to mDofFields of parent IWG
Definition cl_Maxwell_FieldList.hpp:46
Cell< string > AntiSymmetryFerro
Definition cl_Maxwell_FieldList.hpp:107
Definition cl_EF_PENTA6TS.hpp:23
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30