18 params.
addParam<VariableName>(
"temperature_name",
"T",
"Variable name for the temperature");
19 params.
addParam<VariableName>(
"heat_source_var",
"Variable providing the heat source");
20 params.
addParam<std::vector<SubdomainName>>(
"heat_source_blocks",
21 "Block restriction of the heat source");
22 params.
addParam<MooseFunctorName>(
"heat_source_functor",
"Functor providing the heat source");
25 "initial_temperature", 300,
"Initial value of the temperature variable");
28 params.
addParam<std::vector<BoundaryName>>(
29 "heat_flux_boundaries", {},
"Boundaries on which to apply a heat flux");
30 params.
addParam<std::vector<MooseFunctorName>>(
31 "boundary_heat_fluxes",
33 "Functors to compute the heat flux on each boundary in 'heat_flux_boundaries'");
34 params.
addParam<std::vector<BoundaryName>>(
35 "insulated_boundaries", {},
"Boundaries on which to apply a zero heat flux");
36 params.
addParam<std::vector<BoundaryName>>(
37 "fixed_temperature_boundaries", {},
"Boundaries on which to apply a fixed temperature");
38 params.
addParam<std::vector<MooseFunctorName>>(
39 "boundary_temperatures",
41 "Functors to compute the heat flux on each boundary in 'fixed_temperature_boundaries'");
42 params.
addParam<std::vector<BoundaryName>>(
43 "fixed_convection_boundaries",
45 "Boundaries on which to apply convection with a neighboring fluid");
46 params.
addParam<std::vector<MooseFunctorName>>(
47 "fixed_convection_T_fluid",
49 "Temperature of the convecting fluid. The user should note that numerous heat transfer " 50 "coefficient correlation will require this fluid temperature to be the bulk fluid " 51 "temperature / fluid temperature at an infinite distance.");
52 params.
addParam<std::vector<MooseFunctorName>>(
53 "fixed_convection_htc", {},
"Heat transfer coefficient for convection with a fluid");
55 "heat_flux_boundaries insulated_boundaries fixed_temperature_boundaries boundary_heat_fluxes " 56 "boundary_temperatures",
57 "Thermal boundaries");
60 MooseEnum pc_options(
"default defer",
"default");
62 "preconditioning", pc_options,
"Which preconditioning to use for this Physics");
68 :
PhysicsBase(parameters), _temperature_name(getParam<VariableName>(
"temperature_name"))
74 checkVectorParamsSameLength<BoundaryName, MooseFunctorName>(
"heat_flux_boundaries",
75 "boundary_heat_fluxes");
76 checkVectorParamsSameLength<BoundaryName, MooseFunctorName>(
"fixed_temperature_boundaries",
77 "boundary_temperatures");
78 checkVectorParamsNoOverlap<BoundaryName>({
"heat_flux_boundaries",
79 "insulated_boundaries",
80 "fixed_temperature_boundaries",
81 "fixed_convection_boundaries"});
90 if (getParam<bool>(
"initialize_variables_from_mesh_file") &&
93 "Initial temperature should not be set if the variables should be initialized from " 96 if (getParam<bool>(
"initialize_variables_from_mesh_file"))
108 params.
set<FunctionName>(
"function") = getParam<FunctionName>(
"initial_temperature");
120 const auto option_pair1 =
121 std::make_pair<MooseEnumItem, std::string>(
MooseEnumItem(
"-pc_type"),
"hypre");
122 const auto option_pair2 =
123 std::make_pair<MooseEnumItem, std::string>(
MooseEnumItem(
"-pc_hypre_type"),
"boomeramg");
std::string prefix() const
virtual void addPreconditioning() override
void assignBlocks(InputParameters ¶ms, const std::vector< SubdomainName > &blocks) const
void addRequiredPhysicsTask(const std::string &task)
void addPetscPairsToPetscOptions(const std::vector< std::pair< MooseEnumItem, std::string >> &petsc_pair_options)
HeatConductionPhysicsBase(const InputParameters ¶meters)
static InputParameters validParams()
InputParameters getValidParams(const std::string &name) const
const MooseEnum & _preconditioning
bool shouldCreateIC(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool ic_is_default_ic, const bool error_if_already_defined) const
std::vector< SubdomainName > _blocks
virtual void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters ¶meters)
virtual FEProblemBase & getProblem()
void paramError(const std::string ¶m, Args... args) const
static InputParameters validParams()
bool isParamSetByUser(const std::string &nm) const
const VariableName & _temperature_name
Name of the temperature variable.
void saveSolverVariableName(const VariableName &var_name)
virtual void addInitialConditions() override