BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_IWG_StaticHeatConduction.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_IWG_STATICHEATCONDUCTION_HPP
13
#define BELFEM_CL_IWG_STATICHEATCONDUCTION_HPP
14
15
#include "
cl_IWG_Timestep.hpp
"
16
namespace
belfem
17
{
18
namespace
fem
19
{
20
class
IWG_StaticHeatConduction
:
public
IWG_Timestep
21
{
22
23
// link to function
24
void
25
(
IWG_StaticHeatConduction
::*mFunComputeJacobian )
26
(
Element
* aElement,
27
Matrix< real >
& aJacobian,
28
Vector< real >
& aRHS );
29
30
protected
:
31
32
// matrix for thermal conductivity
33
Matrix< real >
mLambda
;
34
35
//------------------------------------------------------------------------------
36
public
:
37
//------------------------------------------------------------------------------
38
47
IWG_StaticHeatConduction
(
48
const
ModelDimensionality
aModelDimensionality,
49
const
IwgType
aType=
IwgType::StaticHeatConduction
);
50
51
//------------------------------------------------------------------------------
52
53
~IWG_StaticHeatConduction
()
override
=
default
;
54
55
//------------------------------------------------------------------------------
56
// Functions called by Field during assembly
57
//------------------------------------------------------------------------------
58
59
void
60
compute_jacobian_and_rhs
(
61
Element
* aElement,
62
Matrix< real >
& aJacobian,
63
Vector< real >
& aRHS )
override
;
64
65
//------------------------------------------------------------------------------
66
67
void
68
link_to_group
(
Group
* aGroup )
override
;
69
70
//------------------------------------------------------------------------------
71
private
:
72
//------------------------------------------------------------------------------
73
74
void
75
compute_conduction(
76
Element
* aElement,
77
Matrix< real >
& aK,
78
Vector< real >
& aQ );
79
80
void
81
compute_convection(
82
Element
* aElement,
83
Vector< real >
& aConvection )
override
;
84
85
//------------------------------------------------------------------------------
86
87
void
88
compute_alpha_boundary_condition(
89
Element
* aElement,
90
Matrix< real >
& aJacobian,
91
Vector< real >
& aRHS )
override
;
92
93
//------------------------------------------------------------------------------
94
};
95
//------------------------------------------------------------------------------
96
97
inline
void
98
IWG_StaticHeatConduction::compute_jacobian_and_rhs
(
99
Element
* aElement,
100
Matrix< real >
& aJacobian,
101
Vector< real >
& aRHS )
102
{
103
( this->*mFunComputeJacobian )( aElement, aJacobian, aRHS );
104
}
105
106
//------------------------------------------------------------------------------
107
}
/* end namespace fem */
108
}
/* end namespace belfem */
109
110
#endif
//BELFEM_CL_IWG_STATICHEATCONDUCTION_HPP
cl_IWG_Timestep.hpp
belfem::Matrix< real >
belfem::Vector< real >
belfem::fem::Element
Definition
cl_FEM_Element.hpp:41
belfem::fem::Group
Definition
cl_FEM_Group.hpp:45
belfem::fem::IWG_StaticHeatConduction::link_to_group
void link_to_group(Group *aGroup) override
Definition
cl_IWG_StaticHeatConduction.cpp:199
belfem::fem::IWG_StaticHeatConduction::IWG_StaticHeatConduction
IWG_StaticHeatConduction(const ModelDimensionality aModelDimensionality, const IwgType aType=IwgType::StaticHeatConduction)
Definition
cl_IWG_StaticHeatConduction.cpp:27
belfem::fem::IWG_StaticHeatConduction::compute_jacobian_and_rhs
void compute_jacobian_and_rhs(Element *aElement, Matrix< real > &aJacobian, Vector< real > &aRHS) override
Definition
cl_IWG_StaticHeatConduction.hpp:98
belfem::fem::IWG_StaticHeatConduction::mLambda
Matrix< real > mLambda
Definition
cl_IWG_StaticHeatConduction.hpp:33
belfem::fem::IWG_StaticHeatConduction::~IWG_StaticHeatConduction
~IWG_StaticHeatConduction() override=default
belfem::fem::IWG_Timestep::IWG_Timestep
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
belfem::fem
Definition
cl_IFB_LINE3.hpp:21
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::IwgType
IwgType
Definition
en_IWGs.hpp:64
belfem::IwgType::StaticHeatConduction
@ StaticHeatConduction
Definition
en_IWGs.hpp:66
belfem::ModelDimensionality
ModelDimensionality
Definition
en_IWGs.hpp:20
src
fem
iwg
cl_IWG_StaticHeatConduction.hpp
Generated by
1.18.0