BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_ThermalFactory.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_THERMALFACTORY_HPP
13
#define BELFEM_CL_THERMALFACTORY_HPP
14
15
#include "
typedefs.hpp
"
16
#include "
cl_Map.hpp
"
17
#include "
cl_Mesh.hpp
"
18
#include "
en_DomainType.hpp
"
19
#include "
cl_Vector.hpp
"
20
#include "
cl_FEM_Kernel.hpp
"
21
#include "
cl_IWG_MaxwellThermal.hpp
"
22
#include "
cl_ThermalBoundaryConditionFactory.hpp
"
23
#include "
cl_InputFile.hpp
"
24
#include "
cl_FEM_Domain.hpp
"
25
26
namespace
belfem
27
{
28
namespace
fem
29
{
36
class
ThermalFactory
37
{
38
const
proc_t
mCommRank ;
39
40
const
InputFile
* mInputFile ;
41
42
ThermalBoundaryConditionFactory
* mBoundaryConditionFactory ;
43
44
// deleted by kernel
45
bool
mOwnKernelParameters = true ;
46
KernelParameters
* mKernelParameters = nullptr ;
47
48
Mesh
* mMesh = nullptr ;
49
50
ModelDimensionality
mDimensionality =
ModelDimensionality::UNDEFINED
;
51
52
std::shared_ptr< Kernel > mThermalKernel = nullptr ;
53
54
IWG_MaxwellThermal
* mThermalEquation = nullptr ;
55
bool
mOwnThermalEquation = true ;
56
57
DofManager
* mThermalField = nullptr ;
58
59
Cell< Domain * >
mDomains ;
60
61
62
63
64
//------------------------------------------------------------------------------
65
public
:
66
//------------------------------------------------------------------------------
67
68
ThermalFactory
(
const
string
& aInputFile,
Mesh
* aMesh );
69
70
ThermalFactory
(
const
string
& aInputFile,
Kernel
* aMagneticKernel );
71
72
// owns raw pointers ( input file, BC factory, parameters until the
73
// kernel claims them ); a copy would double-delete them
74
ThermalFactory
(
const
ThermalFactory
& ) = delete ;
75
ThermalFactory
&
operator=
(
const
ThermalFactory
& ) = delete ;
76
ThermalFactory
(
ThermalFactory
&& ) = delete ;
77
ThermalFactory
&
operator=
(
ThermalFactory
&& ) = delete ;
78
79
~ThermalFactory
();
80
81
//------------------------------------------------------------------------------
82
83
std::shared_ptr< Kernel >
84
create_thermal_kernel
();
85
86
//------------------------------------------------------------------------------
87
88
// the block domain types that carry a thermal kernel; the
89
// selection in create_thermal_kernel() and the dispatch over
90
// the selected blocks both read this, so they cannot disagree
91
static
bool
92
block_is_supported
(
const
DomainType
aType );
93
94
//------------------------------------------------------------------------------
95
private
:
96
//------------------------------------------------------------------------------
97
98
void
99
configure_solver(
const
input::Section
* aSection,
DofManager
* aField );
100
101
ThermalBoundaryConditionFactory
*
102
create_bc_factory();
103
104
//------------------------------------------------------------------------------
105
106
};
107
108
}
109
}
110
111
#endif
//BELFEM_CL_THERMALFACTORY_HPP
cl_FEM_Domain.hpp
cl_FEM_Kernel.hpp
cl_IWG_MaxwellThermal.hpp
cl_InputFile.hpp
cl_Map.hpp
cl_Mesh.hpp
cl_ThermalBoundaryConditionFactory.hpp
cl_Vector.hpp
belfem::Cell
A bounds-checked wrapper around std::vector.
Definition
cl_Cell.hpp:45
belfem::InputFile
Parser for the input.conf configuration format.
Definition
cl_InputFile.hpp:30
belfem::Mesh
Top-level container for all mesh entities.
Definition
cl_Mesh.hpp:60
belfem::fem::DofManager
Main workhorse: DOF management, assembly coordination and the solver interface.
Definition
cl_FEM_DofManager.hpp:52
belfem::fem::IWG_MaxwellThermal
Transient heat conduction coupled to the Maxwell solution.
Definition
cl_IWG_MaxwellThermal.hpp:28
belfem::fem::Kernel
Top-level orchestrator.
Definition
cl_FEM_Kernel.hpp:56
belfem::fem::KernelParameters
Definition
cl_FEM_KernelParameters.hpp:29
belfem::fem::ThermalBoundaryConditionFactory
Builds the thermal boundary conditions from the input deck.
Definition
cl_ThermalBoundaryConditionFactory.hpp:32
belfem::fem::ThermalFactory::ThermalFactory
ThermalFactory(const ThermalFactory &)=delete
belfem::fem::ThermalFactory::ThermalFactory
ThermalFactory(ThermalFactory &&)=delete
belfem::fem::ThermalFactory::operator=
ThermalFactory & operator=(ThermalFactory &&)=delete
belfem::fem::ThermalFactory::create_thermal_kernel
std::shared_ptr< Kernel > create_thermal_kernel()
Definition
cl_ThermalFactory.cpp:92
belfem::fem::ThermalFactory::block_is_supported
static bool block_is_supported(const DomainType aType)
Definition
cl_ThermalFactory.cpp:71
belfem::fem::ThermalFactory::operator=
ThermalFactory & operator=(const ThermalFactory &)=delete
belfem::fem::ThermalFactory::ThermalFactory
ThermalFactory(const string &aInputFile, Mesh *aMesh)
Definition
cl_ThermalFactory.cpp:24
belfem::input::Section
One hierarchical section of a configuration file.
Definition
cl_Input_Section.hpp:34
en_DomainType.hpp
belfem::fem
Definition
cl_IFB_LINE3.hpp:21
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::ModelDimensionality
ModelDimensionality
Definition
en_IWGs.hpp:20
belfem::ModelDimensionality::UNDEFINED
@ UNDEFINED
Definition
en_IWGs.hpp:25
belfem::proc_t
int proc_t
Definition
commtypes.hpp:29
belfem::DomainType
DomainType
Definition
en_DomainType.hpp:20
typedefs.hpp
src
fem
thermal
cl_ThermalFactory.hpp
Generated by
1.18.0