BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_IWG_Maxwell.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_IWG_MAXWELL_HPP
13#define CL_IWG_MAXWELL_HPP
14
15#include "cl_IWG_Timestep.hpp"
17#include "cl_FEM_Dof.hpp"
19
20namespace belfem
21{
22 namespace fem
23 {
31 {
32 // defines which formulation we have
33 const maxwell::Formulation mFormulation ;
34
36 const uint mNumberOfDimensions;
37
38 const bool mHigherOrder ;
39
40 const bool mUseEnrichment ;
41
42 bool mUseEdges = false ;
43
45 maxwell::FieldList mFields ;
46
47 // link to function
48 void
49 ( *mFunMKF )
50 ( Calculator * aCalc,
51 TimestepMatrices * aMatrices) = nullptr ;
52
53 bool mHaveThermal = false ;
54
55//------------------------------------------------------------------------------
56 public:
57//------------------------------------------------------------------------------
58
60 const maxwell::Formulation aFormulation,
61 const ModelDimensionality aDimensionality,
62 const bool aHigherOrder = false,
63 const bool aUseEnrichment = false );
64
65 ~IWG_Maxwell() override = default;
66
67 void
69
70 void
71 initialize() override ;
72
73 void
74 link_to_group( Group * aGroup ) override ;
75
76//------------------------------------------------------------------------------
77
78 bool
79 has_edge_dofs() const override ;
80
81 void
83
84 void
85 custom_postprocess() override;
86
87 void
89
90 bool
91 have_thermal() const ;
92
93//------------------------------------------------------------------------------
94 protected :
95//------------------------------------------------------------------------------
96
97 void
98 init_activation_maps() override;
99
100 void
101 compute_mkf( Element * aElement ) override ;
102
103 };
104
105 inline bool
107 {
108 return mUseEdges ;
109 }
110
111 inline bool
113 {
114 return mHaveThermal ;
115 }
116
117
118 }
119}
120#endif // CL_IWG_MAXWELL_HPP
Definition cl_FEM_Calculator.hpp:600
Definition cl_FEM_Element.hpp:41
Definition cl_FEM_Group.hpp:45
void link_to_group(Group *aGroup) override
Definition cl_IWG_Maxwell.cpp:257
void create_custom_vectors_and_matrices(Calculator *aCalc) override
Definition cl_IWG_Maxwell.cpp:453
void collect_abstract_node_dofs() override
Definition cl_IWG_Maxwell.cpp:647
void compute_mkf(Element *aElement) override
Definition cl_IWG_Maxwell.cpp:242
void set_currents(Vector< real > &aI)
Definition cl_IWG_Maxwell.cpp:96
bool have_thermal() const
Definition cl_IWG_Maxwell.hpp:112
void init_activation_maps() override
populates the activation mode maps for blocks and sidesets based on domain types.
Definition cl_IWG_Maxwell.cpp:127
~IWG_Maxwell() override=default
void initialize() override
Definition cl_IWG_Maxwell.cpp:141
IWG_Maxwell(const maxwell::Formulation aFormulation, const ModelDimensionality aDimensionality, const bool aHigherOrder=false, const bool aUseEnrichment=false)
Definition cl_IWG_Maxwell.cpp:30
bool has_edge_dofs() const override
flag telling if the IWG has edge dofs
Definition cl_IWG_Maxwell.hpp:106
void custom_postprocess() override
Definition cl_IWG_Maxwell.cpp:586
IWG_Timestep(const IwgType aType, const ModelDimensionality aDimensionality, const IwgMode aMode=IwgMode::Iterative, const SymmetryMode aSymmetryMode=SymmetryMode::Unsymmetric, const DofMode aDofMode=DofMode::AllBlocksEqual, const SideSetDofLinkMode aSideSetDofLinkMode=SideSetDofLinkMode::FacetOnly)
Definition cl_IWG_Timestep.cpp:32
Container for element-level DENSE matrices in transient nonlinear FEM.
Definition cl_TimestepMatrices.hpp:71
the dof list is a struct that contains the dof lists for blocks, sidesets and interfaces
Definition cl_Maxwell_FieldList.hpp:34
Formulation
Definition en_Maxwell_Formulations.hpp:23
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
ModelDimensionality
Definition en_IWGs.hpp:20