https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Static Private Member Functions | Private Attributes | Friends | List of all members
HeatConductionModel Class Reference

Provides functions to setup the heat conduction model. More...

#include <HeatConductionModel.h>

Inheritance diagram for HeatConductionModel:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 HeatConductionModel (const InputParameters &params)
 
virtual void addVariables ()
 Add field variables used by this model.
 
virtual void addInitialConditions ()
 Add initial conditions.
 
virtual void addMaterials ()
 Add materials used by this model.
 
virtual void addHeatEquationXYZ ()
 Add heat conduction equation for cartesian coordinate system.
 
virtual void addHeatEquationRZ ()
 Add heat conduction equation for RZ coordinate system.
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string genName (const std::string &prefix, unsigned int id, const std::string &suffix="") const
 Build a name from a prefix, number and possible suffix.
 
std::string genName (const std::string &prefix, unsigned int i, unsigned int j, const std::string &suffix="") const
 Build a name from a prefix, 2 numbers and possible suffix.
 
std::string genName (const std::string &prefix, const std::string &name, unsigned int i) const
 Build a name from 2 strings and a number.
 
std::string genName (const std::string &prefix, const std::string &middle, const std::string &suffix="") const
 Build a name from strings.
 
std::string genSafeName (const std::string &prefix, const std::string &middle, const std::string &suffix="") const
 Build a name from strings that is safe to use in input files (i.e.
 

Static Public Member Functions

static const libMesh::FETypefeType ()
 Get the FE type used for heat conduction.
 
static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string DENSITY = "density"
 
static const std::string TEMPERATURE = "T_solid"
 
static const std::string THERMAL_CONDUCTIVITY = "thermal_conductivity"
 
static const std::string SPECIFIC_HEAT_CONSTANT_PRESSURE = "specific_heat"
 
static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 

Protected Member Functions

void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 

Protected Attributes

THMProblem_sim
 
Factory_factory
 The Factory associated with the MooseApp.
 
HeatStructureInterface_hs_interface
 The heat structure interface that built this class.
 
GeometricalComponent_geometrical_component
 The geometrical component that built this class.
 
const std::string _comp_name
 Name of the component.
 
const bool & _enabled
 
MooseApp_app
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const Parallel::Communicator & _communicator
 

Static Protected Attributes

static libMesh::FEType _fe_type
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 

Friends

class Simulation
 

Detailed Description

Provides functions to setup the heat conduction model.

This is a proxy class for the MOOSE Modules' heat conduction model

Definition at line 27 of file HeatConductionModel.h.

Constructor & Destructor Documentation

◆ HeatConductionModel()

HeatConductionModel::HeatConductionModel ( const InputParameters params)

Definition at line 41 of file HeatConductionModel.C.

42 : MooseObject(params),
43 _sim(*params.getCheckedPointerParam<THMProblem *>("_thm_problem")),
47 dynamic_cast<GeometricalComponent &>(_hs_interface)), // TODO: do something safer
49{
50}
Intermediate class for components that have mesh.
Factory & _factory
The Factory associated with the MooseApp.
const std::string _comp_name
Name of the component.
GeometricalComponent & _geometrical_component
The geometrical component that built this class.
HeatStructureInterface & _hs_interface
The heat structure interface that built this class.
Interface class for heat structure components.
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Factory & getFactory()
const std::string & name() const
MooseApp & _app
Specialization of FEProblem to run with component subsystem.
Definition THMProblem.h:19

Member Function Documentation

◆ addHeatEquationRZ()

void HeatConductionModel::addHeatEquationRZ ( )
virtual

Add heat conduction equation for RZ coordinate system.

Definition at line 98 of file HeatConductionModel.C.

99{
102
103 const auto & blocks = hs_cyl.getSubdomainNames();
104 const auto & position = hs_cyl.getPosition();
105 const auto & direction = hs_cyl.getDirection();
106
107 // add transient term
109 {
110 std::string class_name = "ADHeatConductionTimeDerivativeRZ";
111 InputParameters pars = _factory.getValidParams(class_name);
112 pars.set<NonlinearVariableName>("variable") = TEMPERATURE;
113 pars.set<std::vector<SubdomainName>>("block") = blocks;
114 pars.set<MaterialPropertyName>("specific_heat") = SPECIFIC_HEAT_CONSTANT_PRESSURE;
115 pars.set<MaterialPropertyName>("density_name") = DENSITY;
116 pars.set<bool>("use_displaced_mesh") = false;
117 pars.set<Point>("axis_point") = position;
118 pars.set<RealVectorValue>("axis_dir") = direction;
119 _sim.addKernel(class_name, genName(_comp_name, "td"), pars);
120 }
121 // add diffusion term
122 {
123 std::string class_name = "ADHeatConductionRZ";
124 InputParameters pars = _factory.getValidParams(class_name);
125 pars.set<NonlinearVariableName>("variable") = TEMPERATURE;
126 pars.set<std::vector<SubdomainName>>("block") = blocks;
127 pars.set<MaterialPropertyName>("thermal_conductivity") = THERMAL_CONDUCTIVITY;
128 pars.set<bool>("use_displaced_mesh") = false;
129 pars.set<Point>("axis_point") = position;
130 pars.set<RealVectorValue>("axis_dir") = direction;
131 _sim.addKernel(class_name, genName(_comp_name, "hc"), pars);
132 }
133}
char ** blocks
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
Definition Component.C:345
bool problemIsTransient() const
Whether the problem is transient.
Definition Component.h:264
virtual RealVectorValue getDirection() const
virtual void addKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
static const std::string THERMAL_CONDUCTIVITY
static const std::string TEMPERATURE
static const std::string SPECIFIC_HEAT_CONSTANT_PRESSURE
static const std::string DENSITY
Base class for cylindrical heat structure components.
T & set(const std::string &name, bool quiet_mode=false)
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.

◆ addHeatEquationXYZ()

void HeatConductionModel::addHeatEquationXYZ ( )
virtual

Add heat conduction equation for cartesian coordinate system.

Definition at line 69 of file HeatConductionModel.C.

70{
72
73 // add transient term
75 {
76 std::string class_name = "ADHeatConductionTimeDerivative";
77 InputParameters pars = _factory.getValidParams(class_name);
78 pars.set<NonlinearVariableName>("variable") = TEMPERATURE;
79 pars.set<std::vector<SubdomainName>>("block") = blocks;
80 pars.set<MaterialPropertyName>("specific_heat") = SPECIFIC_HEAT_CONSTANT_PRESSURE;
81 pars.set<MaterialPropertyName>("density_name") = DENSITY;
82 pars.set<bool>("use_displaced_mesh") = false;
83 _sim.addKernel(class_name, genName(_comp_name, "td"), pars);
84 }
85 // add diffusion term
86 {
87 std::string class_name = "ADHeatConduction";
88 InputParameters pars = _factory.getValidParams(class_name);
89 pars.set<NonlinearVariableName>("variable") = TEMPERATURE;
90 pars.set<std::vector<SubdomainName>>("block") = blocks;
91 pars.set<MaterialPropertyName>("thermal_conductivity") = THERMAL_CONDUCTIVITY;
92 pars.set<bool>("use_displaced_mesh") = false;
93 _sim.addKernel(class_name, genName(_comp_name, "hc"), pars);
94 }
95}

◆ addInitialConditions()

void HeatConductionModel::addInitialConditions ( )
virtual

Add initial conditions.

Definition at line 62 of file HeatConductionModel.C.

63{
64 const auto & subdomain_names = _geometrical_component.getSubdomainNames();
66}
FunctionName getInitialT() const
Gets the initial temperature function name.
void addFunctionIC(const VariableName &var_name, const std::string &func_name, const std::vector< SubdomainName > &block_names)
Definition Simulation.C:532

◆ addMaterials()

virtual void HeatConductionModel::addMaterials ( )
inlinevirtual

Add materials used by this model.

Definition at line 45 of file HeatConductionModel.h.

45{}

◆ addVariables()

void HeatConductionModel::addVariables ( )
virtual

Add field variables used by this model.

Definition at line 53 of file HeatConductionModel.C.

54{
55 const auto & subdomain_names = _geometrical_component.getSubdomainNames();
56 const Real & scaling_factor = getParam<Real>("scaling_factor_temperature");
57
58 _sim.addSimVariable(true, TEMPERATURE, _fe_type, subdomain_names, scaling_factor);
59}
static libMesh::FEType _fe_type
void addSimVariable(bool nl, const VariableName &name, libMesh::FEType fe_type, Real scaling_factor=1.0)
Queues a variable of type MooseVariableScalar to be added to the nonlinear or aux system.
Definition Simulation.C:271
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ feType()

static const libMesh::FEType & HeatConductionModel::feType ( )
inlinestatic

◆ genName() [1/4]

std::string NamingInterface::genName ( const std::string &  prefix,
const std::string &  middle,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from strings.

Definition at line 66 of file NamingInterface.h.

69 {
70 std::stringstream ss;
71 ss << prefix << ":" << middle;
72 if (!suffix.empty())
73 ss << ":" << suffix;
74 return ss.str();
75 }

◆ genName() [2/4]

std::string NamingInterface::genName ( const std::string &  prefix,
const std::string &  name,
unsigned int  i 
) const
inlineinherited

Build a name from 2 strings and a number.

Definition at line 56 of file NamingInterface.h.

57 {
58 std::stringstream ss;
59 ss << prefix << ":" << name << ":" << i;
60 return ss.str();
61 }
const std::string name
Definition Setup.h:21

◆ genName() [3/4]

std::string NamingInterface::genName ( const std::string &  prefix,
unsigned int  i,
unsigned int  j,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from a prefix, 2 numbers and possible suffix.

Definition at line 41 of file NamingInterface.h.

45 {
46 std::stringstream ss;
47 ss << prefix << ":" << i << ":" << j;
48 if (!suffix.empty())
49 ss << ":" << suffix;
50 return ss.str();
51 }

◆ genName() [4/4]

std::string NamingInterface::genName ( const std::string &  prefix,
unsigned int  id,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from a prefix, number and possible suffix.

Definition at line 29 of file NamingInterface.h.

30 {
31 std::stringstream ss;
32 ss << prefix << ":" << id;
33 if (!suffix.empty())
34 ss << ":" << suffix;
35 return ss.str();
36 }

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), FlowModel::addCommonInitialConditions(), FlowModel::addCommonMooseObjects(), FlowChannelBase::addCommonObjects(), Simulation::addComponentScalarIC(), HeatStructureBase::addConstantDensitySolidPropertiesMaterial(), Simulation::addConstantIC(), Simulation::addConstantScalarIC(), FlowModel1PhaseBase::addDensityAux(), FlowModelGasMix::addDensityIC(), FlowModelSinglePhase::addDensityIC(), FlowModel1PhaseBase::addEnergyGravityKernel(), FlowChannel1Phase::addFlowChannel1PhaseFunctorMaterial(), FlowModelGasMix::addFluidPropertiesMaterials(), FlowModelSinglePhase::addFluidPropertiesMaterials(), VolumeJunctionCoupledFlux1Phase::addFluxTransfer(), FlowModel1PhaseBase::addFunctionIC(), Simulation::addFunctionIC(), FlowModel1PhaseBase::addHeatConductionDGKernel(), HeatTransferBase::addHeatedPerimeter(), addHeatEquationRZ(), addHeatEquationXYZ(), HeatTransferFromTemperature1Phase::addHeatTransferKernels(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), FlowModelGasMix::addMassDiffusionEnergyDGKernel(), FlowModelGasMix::addMassDiffusionSpeciesDGKernel(), FlowModelGasMix::addMassFractionAux(), FlowModel1PhaseBase::addMomentumAreaGradientKernel(), FlowModel1PhaseBase::addMomentumFrictionKernel(), FlowModel1PhaseBase::addMomentumGravityKernel(), FlowChannel1Phase::addMooseObjects(), FlowChannelBase::addMooseObjects(), FormLoss1PhaseBase::addMooseObjects(), FormLossFromExternalApp1Phase::addMooseObjects(), FormLossFromFunction1Phase::addMooseObjects(), GateValve1Phase::addMooseObjects(), HeatSourceFromPowerDensity::addMooseObjects(), HeatSourceFromTotalPower::addMooseObjects(), HeatSourceVolumetric1Phase::addMooseObjects(), HeatStructure2DCoupler::addMooseObjects(), HeatStructure2DRadiationCouplerRZ::addMooseObjects(), HeatTransferBase::addMooseObjects(), HeatTransferFromExternalAppHeatFlux1Phase::addMooseObjects(), HeatTransferFromHeatFlux1Phase::addMooseObjects(), HeatTransferFromHeatStructure1Phase::addMooseObjects(), HeatTransferFromHeatStructure3D1Phase::addMooseObjects(), HeatTransferFromSpecifiedTemperature1Phase::addMooseObjects(), HSBoundaryAmbientConvection::addMooseObjects(), HSBoundaryExternalAppConvection::addMooseObjects(), HSBoundaryExternalAppHeatFlux::addMooseObjects(), HSBoundaryExternalAppTemperature::addMooseObjects(), HSBoundaryHeatFlux::addMooseObjects(), HSBoundaryRadiation::addMooseObjects(), HSBoundarySpecifiedTemperature::addMooseObjects(), HSCoupler2D2DRadiation::addMooseObjects(), HSCoupler2D3D::addMooseObjects(), InletVelocityTemperature1Phase::addMooseObjects(), JunctionOneToOne1Phase::addMooseObjects(), Shaft::addMooseObjects(), ShaftConnectedCompressor1Phase::addMooseObjects(), ShaftConnectedPump1Phase::addMooseObjects(), ShaftConnectedTurbine1Phase::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), TotalPower::addMooseObjects(), VolumeJunction1Phase::addMooseObjects(), FunctorClosures::addMooseObjectsFlowChannel(), Closures1PhaseSimple::addMooseObjectsHeatTransfer(), Component::addNonlinearStepFunctorMaterial(), FlowChannel1Phase::addNormalized1PhaseResidualNorm(), FlowModelSinglePhase::addPassiveTransportIC(), FlowModelGasMix::addPressureAux(), FlowModelSinglePhase::addPressureAux(), VolumeJunctionCoupledFlux1Phase::addPropertyTransfer(), FlowModelGasMix::addRDGAdvectionDGKernels(), FlowModelSinglePhase::addRDGAdvectionDGKernels(), FlowModel1PhaseBase::addRhoAIC(), FlowModelGasMix::addRhoEAIC(), FlowModelSinglePhase::addRhoEAIC(), FlowModel1PhaseBase::addRhoUAIC(), FlowModelGasMix::addSlopeReconstructionMaterial(), FlowModelSinglePhase::addSlopeReconstructionMaterial(), FlowModel1PhaseBase::addSpecificInternalEnergyAux(), FlowModel1PhaseBase::addSpecificInternalEnergyIC(), FlowModel1PhaseBase::addSpecificTotalEnthalpyAux(), FlowModel1PhaseBase::addSpecificTotalEnthalpyIC(), FlowModel1PhaseBase::addSpecificVolumeAux(), FlowModel1PhaseBase::addSpecificVolumeIC(), FlowModelGasMix::addTemperatureAux(), FlowModelSinglePhase::addTemperatureAux(), FlowModel1PhaseBase::addTimeDerivativeKernelIfTransient(), FlowChannelBase::addVariables(), FlowModel1PhaseBase::addVelocityAux(), FlowModel1PhaseBase::addVelocityIC(), VolumeJunction1Phase::addVolumeJunctionIC(), VolumeJunctionCoupledFlux1Phase::addVolumeJunctionKernel(), Closures1PhaseTHM::addWallFFMaterial(), Closures1PhaseBase::addWallFrictionFunctionMaterial(), Closures1PhaseTHM::addWallHTCMaterial(), ClosuresBase::addWallTemperatureFromAuxMaterial(), Closures1PhaseSimple::addWallTemperatureFromHeatFluxMaterial(), FlowBoundary1Phase::addWeakBCs(), FlowBoundaryGasMix::addWeakBCs(), ClosuresBase::addWeightedAverageMaterial(), FlowModelGasMix::addXiRhoAIC(), ClosuresBase::addZeroMaterial(), FileMeshComponent::buildMesh(), Component1D::buildMesh(), Component2D::buildMesh(), HeatSourceBase::HeatSourceBase(), Component::nonlinearConvergenceName(), and Simulation::setupInitialConditionsFromFile().

◆ genSafeName()

std::string NamingInterface::genSafeName ( const std::string &  prefix,
const std::string &  middle,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from strings that is safe to use in input files (i.e.

can be exposed to users)

Definition at line 80 of file NamingInterface.h.

83 {
84 std::stringstream ss;
85 ss << prefix << "_" << middle;
86 if (!suffix.empty())
87 ss << "_" << suffix;
88 return ss.str();
89 }

Referenced by HSBoundaryAmbientConvection::addMooseObjects(), HSBoundaryExternalAppConvection::addMooseObjects(), HSBoundaryExternalAppHeatFlux::addMooseObjects(), HSBoundaryHeatFlux::addMooseObjects(), and HSBoundaryRadiation::addMooseObjects().

◆ validParams()

InputParameters HeatConductionModel::validParams ( )
static

Definition at line 21 of file HeatConductionModel.C.

22{
24 params.addPrivateParam<THMProblem *>("_thm_problem");
26 params.addRequiredParam<Real>("scaling_factor_temperature",
27 "Scaling factor for solid temperature variable.");
28 params.registerBase("THM:heat_conduction_model");
29 return params;
30}
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addPrivateParam(const std::string &name, const T &value)
void registerBase(const std::string &value)
static InputParameters validParams()

Friends And Related Symbol Documentation

◆ Simulation

friend class Simulation
friend

Definition at line 87 of file HeatConductionModel.h.

Member Data Documentation

◆ _comp_name

const std::string HeatConductionModel::_comp_name
protected

Name of the component.

Definition at line 72 of file HeatConductionModel.h.

Referenced by addHeatEquationRZ(), and addHeatEquationXYZ().

◆ _factory

Factory& HeatConductionModel::_factory
protected

The Factory associated with the MooseApp.

Definition at line 66 of file HeatConductionModel.h.

Referenced by addHeatEquationRZ(), and addHeatEquationXYZ().

◆ _fe_type

FEType HeatConductionModel::_fe_type
staticprotected

Definition at line 85 of file HeatConductionModel.h.

Referenced by addVariables(), feType(), and Simulation::Simulation().

◆ _geometrical_component

GeometricalComponent& HeatConductionModel::_geometrical_component
protected

The geometrical component that built this class.

Definition at line 70 of file HeatConductionModel.h.

Referenced by addHeatEquationRZ(), addHeatEquationXYZ(), addInitialConditions(), and addVariables().

◆ _hs_interface

HeatStructureInterface& HeatConductionModel::_hs_interface
protected

The heat structure interface that built this class.

Definition at line 68 of file HeatConductionModel.h.

Referenced by addInitialConditions().

◆ _sim

THMProblem& HeatConductionModel::_sim
protected

◆ DENSITY

const std::string HeatConductionModel::DENSITY = "density"
static

Definition at line 76 of file HeatConductionModel.h.

Referenced by addHeatEquationRZ(), and addHeatEquationXYZ().

◆ SPECIFIC_HEAT_CONSTANT_PRESSURE

const std::string HeatConductionModel::SPECIFIC_HEAT_CONSTANT_PRESSURE = "specific_heat"
static

Definition at line 79 of file HeatConductionModel.h.

Referenced by addHeatEquationRZ(), and addHeatEquationXYZ().

◆ TEMPERATURE

const std::string HeatConductionModel::TEMPERATURE = "T_solid"
static

◆ THERMAL_CONDUCTIVITY

const std::string HeatConductionModel::THERMAL_CONDUCTIVITY = "thermal_conductivity"
static

Definition at line 78 of file HeatConductionModel.h.

Referenced by addHeatEquationRZ(), and addHeatEquationXYZ().


The documentation for this class was generated from the following files: