45 MooseEnum wave_speed_formulation(
"einfeldt davis",
"einfeldt");
47 "wave_speed_formulation", wave_speed_formulation,
"Method for computing wave speeds");
50 "scaling_factor_1phase",
51 "Scaling factors for each single phase variable (rhoA, rhouA, rhoEA)");
60 _scaling_factors(getParam<
std::vector<Real>>(
"scaling_factor_1phase"))
65 for (
const auto i : index_range(passives_names))
93 const auto scaling_factor_passives =
98 "'scaling_factor_passives' size must match number of passives.");
104 scaling_factor_passives[i]);
107std::vector<VariableName>
121 const auto & passives_ic_fn_names =
140 const std::string class_name =
"VariableFunctionProductIC";
142 params.
set<VariableName>(
"variable") = var;
144 params.
set<FunctionName>(
"fn") = ic_fn;
145 params.
set<std::vector<VariableName>>(
"var") = {
THM::AREA};
152 const std::string class_name =
"RhoEAFromPressureTemperatureFunctionVelocityIC";
154 params.
set<VariableName>(
"variable") =
RHOEA;
156 params.
set<std::vector<VariableName>>(
"p") = {
PRESSURE};
167 const std::string class_name =
"RhoFromPressureTemperatureIC";
169 params.
set<VariableName>(
"variable") =
DENSITY;
171 params.
set<std::vector<VariableName>>(
"p") = {
PRESSURE};
180 const std::string class_name =
"PressureAux";
182 params.
set<AuxVariableName>(
"variable") =
PRESSURE;
193 const std::string class_name =
"TemperatureAux";
207 const std::string class_name =
"ADFluidProperties3EqnMaterial";
211 params.
set<std::vector<VariableName>>(
"rhoA") = {
RHOA};
212 params.
set<std::vector<VariableName>>(
"rhouA") = {
RHOUA};
213 params.
set<std::vector<VariableName>>(
"rhoEA") = {
RHOEA};
218 const std::string class_name =
"ADDynamicViscosityMaterial";
221 params.
set<UserObjectName>(
"fp_1phase") =
_fp_name;
232 const std::string class_name =
"ADNumericalFlux3EqnHLLC";
235 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
244 const std::string class_name =
"ADRDG3EqnMaterial";
248 params.
set<std::vector<VariableName>>(
"A_elem") = {
AREA};
249 params.
set<std::vector<VariableName>>(
"A_linear") = {
AREA_LINEAR};
250 params.
set<std::vector<VariableName>>(
"rhoA") = {
RHOA};
251 params.
set<std::vector<VariableName>>(
"rhouA") = {
RHOUA};
252 params.
set<std::vector<VariableName>>(
"rhoEA") = {
RHOEA};
254 params.
set<MaterialPropertyName>(
"direction") =
DIRECTION;
255 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
265 const std::string class_name =
"ADNumericalFlux3EqnDGKernel";
267 params.
set<NonlinearVariableName>(
"variable") = var;
269 params.
set<std::vector<VariableName>>(
"A_linear") = {
AREA_LINEAR};
270 params.
set<std::vector<VariableName>>(
"rhoA") = {
RHOA};
271 params.
set<std::vector<VariableName>>(
"rhouA") = {
RHOUA};
272 params.
set<std::vector<VariableName>>(
"rhoEA") = {
RHOEA};
registerMooseObject("ThermalHydraulicsApp", FlowModelSinglePhase)
const ExecFlagType EXEC_INITIAL
const ExecFlagType EXEC_LINEAR
const ExecFlagType EXEC_NONLINEAR
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
virtual std::vector< std::shared_ptr< UserObject > > addUserObject(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters)
virtual void addDGKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
virtual void addAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
InputParameters getValidParams(const std::string &name) const
Base class for a flow model for a single-phase fluid.
virtual void addInitialConditions() override
Add initial conditions.
virtual void addKernels()
Adds the kernels.
const UserObjectName _numerical_flux_name
Numerical flux user object name.
void addTimeDerivativeKernelIfTransient(const VariableName &var_name)
Adds a time derivative kernel for the given variable if problem is transient.
const MooseEnum _rdg_slope_reconstruction
Slope reconstruction type for rDG.
virtual void addVariables() override
Add variables the model uses.
static InputParameters validParams()
Flow model for a single-component, single-phase fluid using the Euler equations.
virtual void addRDGAdvectionDGKernels() override
Adds DG kernels.
static const std::string DENSITY
static const std::string SOUND_SPEED
static const std::string HYDRAULIC_DIAMETER
static const std::string VELOCITY
static InputParameters validParams()
virtual void addVariables() override
Add variables the model uses.
static const std::string HEAT_TRANSFER_COEFFICIENT_WALL
virtual void addRhoEAIC() override
virtual Real getScalingFactorRhoA() const override
virtual void addInitialConditions() override
Add initial conditions.
virtual Real getScalingFactorRhoEA() const override
static const std::string SPECIFIC_HEAT_CONSTANT_VOLUME
std::vector< VariableName > _passives_times_area_names
Names of the passive transport solution variables, if any [amount/m].
static const std::string RHOUA
static const std::string REYNOLDS_NUMBER
static const std::string VELOCITY_Y
static const std::string RHOA
static const std::string VELOCITY_X
FlowModelSinglePhase(const InputParameters ¶ms)
virtual void addTemperatureAux() override
static const std::string DYNAMIC_VISCOSITY
const std::vector< Real > _scaling_factors
Scaling factors for each solution variable (rhoA, rhouA, rhoEA)
virtual void addDensityIC() override
virtual void addFluidPropertiesMaterials() override
Adds materials to compute fluid properties.
virtual void addKernels() override
Adds the kernels.
static const std::string FRICTION_FACTOR_DARCY
static const std::string SPECIFIC_HEAT_CONSTANT_PRESSURE
static const std::string THERMAL_CONDUCTIVITY
virtual void addSlopeReconstructionMaterial() override
Adds slope reconstruction material.
static const std::string SPECIFIC_INTERNAL_ENERGY
void addPassiveTransportIC(const VariableName &var, const FunctionName &ic_fn)
Adds IC for a passive transport variable.
virtual void addPressureAux() override
virtual void addNumericalFluxUserObject() override
Adds numerical flux user object.
static const std::string TEMPERATURE
static const std::string SPECIFIC_VOLUME
static const std::string RHOEA
virtual Real getScalingFactorRhoUA() const override
static const std::string SPECIFIC_TOTAL_ENTHALPY
static const std::string VELOCITY_Z
static const std::string PRESSURE
virtual std::vector< VariableName > solutionVariableNames() const override
Returns the solution variable names for the flow model.
static const std::string DIRECTION
FlowChannelBase & _flow_channel
The flow channel component that built this class.
static const std::string AREA
const FunctionName & getVariableFn(const FunctionName &fn_param_name)
static const std::string AREA_LINEAR
const std::string _comp_name
The component name.
Factory & _factory
The Factory associated with the MooseApp.
const libMesh::FEType & _fe_type
The type of FE used for flow.
const UserObjectName _fp_name
The name of the user object that defines fluid properties.
const InputParameters & parameters() const
bool isParamSetByUser(const std::string &name) const
const T & getParam(const std::string &name) 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.
const bool & getImplicitTimeIntegrationFlag()
Gets the flag indicating whether an implicit time integration scheme is being used.
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.
void addSimInitialCondition(const std::string &type, const std::string &name, InputParameters params)
static const std::string FRICTION_FACTOR_DARCY
static const std::string AREA
static const std::string REYNOLDS_NUMBER
static const std::string RHOEA
static const std::string SPECIFIC_VOLUME
static const std::string VELOCITY_Y
static const std::string TEMPERATURE
static const std::string SOUND_SPEED
static const std::string VELOCITY_X
static const std::string VELOCITY
static const std::string VELOCITY_Z
static const std::string SPECIFIC_INTERNAL_ENERGY
static const std::string HYDRAULIC_DIAMETER
static const std::string SPECIFIC_TOTAL_ENTHALPY
static const std::string SPECIFIC_HEAT_CONSTANT_VOLUME
static const std::string RHOUA
static const std::string THERMAL_CONDUCTIVITY
static const std::string PRESSURE
static const std::string HEAT_TRANSFER_COEFFICIENT_WALL
static const std::string DENSITY
static const std::string SPECIFIC_HEAT_CONSTANT_PRESSURE
static const std::string DYNAMIC_VISCOSITY
static const std::string RHOA