|
| std::vector< FieldState > | getStateFields () const |
| | Get the list of all state fields (temperature_solve_state, temperature). More...
|
| |
| std::vector< FieldState > | getOutputFieldStates () const |
| | Get the list of physical, non-solve state fields. More...
|
| |
| std::vector< ReactionInfo > | getReactionInfos () const |
| | Get information about reaction fields for this system. More...
|
| |
| std::unique_ptr< DifferentiablePhysics > | createDifferentiablePhysics (std::string physics_name) |
| | Create a DifferentiablePhysics object for this system. More...
|
| |
| template<typename MaterialType > |
| void | setMaterial (const MaterialType &material, const std::string &domain_name) |
| | Set the thermal material model for a domain. More...
|
| |
| template<int... active_parameters, typename HeatSourceType > |
| void | addHeatSource (DependsOn< active_parameters... > depends_on, const std::string &domain_name, HeatSourceType source_function) |
| | Add a body heat source to the thermal system (with DependsOn). More...
|
| |
| template<typename HeatSourceType > |
| void | addHeatSource (const std::string &domain_name, HeatSourceType source_function) |
| | Add a body heat source that depends on all state and parameter fields. More...
|
| |
| template<int... active_parameters, typename HeatFluxType > |
| void | addHeatFlux (DependsOn< active_parameters... > depends_on, const std::string &boundary_name, HeatFluxType flux_function) |
| | Add a boundary heat flux to the thermal system (with DependsOn). More...
|
| |
| template<typename HeatFluxType > |
| void | addHeatFlux (const std::string &boundary_name, HeatFluxType flux_function) |
| | Add a boundary heat flux that depends on all state and parameter fields. More...
|
| |
| const std::vector< FieldState > & | getParameterFields () const |
| | Get the list of all parameter fields. More...
|
| |
| std::string | prefix (const std::string &name) const |
| | Helper function to prepend the physics name to a string. More...
|
| |
|
std::vector< ReactionInfo > | getReactionInfos () const |
| | Metadata for dual outputs exported by this system.
|
| |
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
struct smith::ThermalSystem< dim, temp_order, TemperatureTimeRule, parameter_space >
Container for a thermal system with configurable time integration.
Always uses a 2-state field layout (temperature_solve_state, temperature). Use QuasiStaticFirstOrderTimeIntegrationRule for steady-state problems, or BackwardEulerFirstOrderTimeIntegrationRule for transient problems.
- Template Parameters
-
| dim | Spatial dimension. |
| temp_order | Order of the temperature basis. |
| TemperatureTimeRule | Time integration rule type (must have num_states == 2). |
| parameter_space | Finite element spaces for optional parameters. |
Definition at line 40 of file thermal_system.hpp.
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename HeatFluxType >
| void smith::ThermalSystem< dim, temp_order, TemperatureTimeRule, parameter_space >::addHeatFlux |
( |
const std::string & |
boundary_name, |
|
|
HeatFluxType |
flux_function |
|
) |
| |
|
inline |
Add a boundary heat flux that depends on all state and parameter fields.
- Parameters
-
| boundary_name | The name of the boundary where the heat flux is applied. |
| flux_function | (t, X, n, T, params...) -> heat_flux. |
Definition at line 170 of file thermal_system.hpp.
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename HeatFluxType >
| void smith::ThermalSystem< dim, temp_order, TemperatureTimeRule, parameter_space >::addHeatFlux |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
boundary_name, |
|
|
HeatFluxType |
flux_function |
|
) |
| |
|
inline |
Add a boundary heat flux to the thermal system (with DependsOn).
- Parameters
-
| depends_on | Selects which primal and parameter fields the contribution depends on. |
| boundary_name | The name of the boundary where the heat flux is applied. |
| flux_function | (t, X, n, T, params...) -> heat_flux. |
Definition at line 151 of file thermal_system.hpp.
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename HeatSourceType >
| void smith::ThermalSystem< dim, temp_order, TemperatureTimeRule, parameter_space >::addHeatSource |
( |
const std::string & |
domain_name, |
|
|
HeatSourceType |
source_function |
|
) |
| |
|
inline |
Add a body heat source that depends on all state and parameter fields.
- Parameters
-
| domain_name | The name of the domain where the heat source is applied. |
| source_function | (t, X, T, params...) -> heat_source. |
Definition at line 139 of file thermal_system.hpp.
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename HeatSourceType >
| void smith::ThermalSystem< dim, temp_order, TemperatureTimeRule, parameter_space >::addHeatSource |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
domain_name, |
|
|
HeatSourceType |
source_function |
|
) |
| |
|
inline |
Add a body heat source to the thermal system (with DependsOn).
- Parameters
-
| depends_on | Selects which primal and parameter fields the contribution depends on. |
| domain_name | The name of the domain where the heat source is applied. |
| source_function | (t, X, T, params...) -> heat_source. |
Definition at line 121 of file thermal_system.hpp.
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
Get the list of all state fields (temperature_solve_state, temperature).
- Returns
- std::vector<FieldState> List of state fields.
Definition at line 56 of file thermal_system.hpp.
template<int dim, int temp_order, typename TemperatureTimeRule = QuasiStaticFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename MaterialType >
| void smith::ThermalSystem< dim, temp_order, TemperatureTimeRule, parameter_space >::setMaterial |
( |
const MaterialType & |
material, |
|
|
const std::string & |
domain_name |
|
) |
| |
|
inline |
Set the thermal material model for a domain.
Material is called as material(x, temperature, grad_temperature, params...) and must return smith::tuple{heat_capacity, heat_flux}. Consistent with heat_transfer.hpp convention.
The system forms the residual as: heat_capacity * dT/dt for the source term, and -heat_flux for the flux term.
- Template Parameters
-
| MaterialType | The thermal material type. |
- Parameters
-
| material | The material model instance. |
| domain_name | The name of the domain to apply the material to. |
Definition at line 102 of file thermal_system.hpp.