BELFEM 0.9.3
Berkeley Lab Finite Element Framework
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"
23#include "cl_InputFile.hpp"
24#include "cl_FEM_Domain.hpp"
25
26namespace belfem
27{
28 namespace fem
29 {
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
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 ;
78
80
81//------------------------------------------------------------------------------
82
83 std::shared_ptr< 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
102 create_bc_factory();
103
104//------------------------------------------------------------------------------
105
106 };
107
108 }
109}
110
111#endif //BELFEM_CL_THERMALFACTORY_HPP
A bounds-checked wrapper around std::vector.
Definition cl_Cell.hpp:45
Parser for the input.conf configuration format.
Definition cl_InputFile.hpp:30
Top-level container for all mesh entities.
Definition cl_Mesh.hpp:60
Main workhorse: DOF management, assembly coordination and the solver interface.
Definition cl_FEM_DofManager.hpp:52
Transient heat conduction coupled to the Maxwell solution.
Definition cl_IWG_MaxwellThermal.hpp:28
Top-level orchestrator.
Definition cl_FEM_Kernel.hpp:56
Definition cl_FEM_KernelParameters.hpp:29
Builds the thermal boundary conditions from the input deck.
Definition cl_ThermalBoundaryConditionFactory.hpp:32
ThermalFactory(const ThermalFactory &)=delete
ThermalFactory(ThermalFactory &&)=delete
ThermalFactory & operator=(ThermalFactory &&)=delete
std::shared_ptr< Kernel > create_thermal_kernel()
Definition cl_ThermalFactory.cpp:92
static bool block_is_supported(const DomainType aType)
Definition cl_ThermalFactory.cpp:71
ThermalFactory & operator=(const ThermalFactory &)=delete
ThermalFactory(const string &aInputFile, Mesh *aMesh)
Definition cl_ThermalFactory.cpp:24
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
ModelDimensionality
Definition en_IWGs.hpp:20
@ UNDEFINED
Definition en_IWGs.hpp:25
int proc_t
Definition commtypes.hpp:29
DomainType
Definition en_DomainType.hpp:20