18 params.
addRequiredParam<UserObjectName>(
"numerical_flux",
"Numerical flux user object name");
20 "Slope reconstruction type for rDG");
26 _rdg_slope_reconstruction(params.get<
MooseEnum>(
"rdg_slope_reconstruction")),
27 _numerical_flux_name(params.get<UserObjectName>(
"numerical_flux"))
87 const auto & flow_channel_1phase_base =
90 for (
const auto & param : flow_channel_1phase_base.ICParameters())
99 const FunctionName & function_name)
101 const std::string class_name =
"FunctionIC";
103 params.
set<VariableName>(
"variable") = var_name;
105 params.
set<FunctionName>(
"function") = function_name;
112 const std::string class_name =
"VariableProductIC";
123 const std::string class_name =
"VariableFunctionProductIC";
127 params.
set<std::vector<VariableName>>(
"var") = {
THM::RHOA};
140 const std::string class_name =
"VectorVelocityIC";
142 params.
set<VariableName>(
"variable") = var_name[i];
145 params.
set<
unsigned int>(
"component") = i;
156 const std::string class_name =
"SpecificVolumeIC";
160 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
161 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
168 const std::string class_name =
"SpecificInternalEnergyIC";
172 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
173 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
174 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
181 const std::string class_name =
"SpecificTotalEnthalpyIC";
186 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
187 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
188 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
229 const std::string class_name =
"ADTimeDerivative";
231 params.
set<NonlinearVariableName>(
"variable") = var_name;
240 const std::string class_name =
"ADOneD3EqnMomentumAreaGradient";
253 const std::string class_name =
"ADOneD3EqnMomentumFriction";
257 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
268 const std::string class_name =
"ADOneD3EqnMomentumGravity";
272 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
282 const std::string class_name =
"ADOneD3EqnEnergyGravity";
286 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
304 const std::string class_name =
"HeatConduction3EqnDGKernel";
311 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
335 const std::string class_name =
"ADVectorVelocityComponentAux";
337 params.
set<AuxVariableName>(
"variable") = var_names[i];
339 params.
set<std::vector<VariableName>>(
"arhoA") = {
THM::RHOA};
340 params.
set<std::vector<VariableName>>(
"arhouA") = {
THM::RHOUA};
342 params.
set<
unsigned int>(
"component") = i;
349 const std::string class_name =
"QuotientAux";
353 params.
set<std::vector<VariableName>>(
"numerator") = {
THM::RHOUA};
354 params.
set<std::vector<VariableName>>(
"denominator") = {
THM::RHOA};
363 const std::string class_name =
"QuotientAux";
367 params.
set<std::vector<VariableName>>(
"numerator") = {
THM::RHOA};
368 params.
set<std::vector<VariableName>>(
"denominator") = {
THM::AREA};
376 const std::string class_name =
"THMSpecificVolumeAux";
380 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
381 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
389 const std::string class_name =
"THMSpecificInternalEnergyAux";
393 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
394 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
395 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
403 const std::string class_name =
"SpecificTotalEnthalpyAux";
407 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
408 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
410 params.
set<std::vector<VariableName>>(
"A") = {
THM::AREA};
const ExecFlagType EXEC_TIMESTEP_END
const ExecFlagType EXEC_INITIAL
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
bool problemIsTransient() const
Whether the problem is transient.
virtual void addKernel(const std::string &kernel_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 single-phase flow channels.
virtual void addMooseObjects() override
Add MOOSE objects this model uses.
virtual void addSpecificTotalEnthalpyAux()
virtual void addFunctorMaterials()
Adds the functor materials.
virtual void addRhoEAIC()=0
virtual void addInitialConditions() override
Add initial conditions.
virtual void addTemperatureAux()=0
virtual std::vector< VariableName > solutionVariableNames() const =0
Returns the solution variable names for the flow model.
virtual Real getScalingFactorRhoA() const =0
virtual void addMomentumFrictionKernel()
virtual void addSpecificTotalEnthalpyIC()
virtual void addKernels()
Adds the kernels.
virtual void addMomentumAreaGradientKernel()
virtual void addPressureAux()=0
bool ICParametersAreValid() const
Returns true if all of the IC parameters are valid.
virtual void addSpecificInternalEnergyAux()
virtual void addMomentumGravityKernel()
virtual void addVelocityIC()
FlowModel1PhaseBase(const InputParameters ¶ms)
virtual void addVelocityAux()
virtual Real getScalingFactorRhoEA() const =0
void addTimeDerivativeKernelIfTransient(const VariableName &var_name)
Adds a time derivative kernel for the given variable if problem is transient.
virtual void addSpecificInternalEnergyIC()
virtual void addHeatConductionDGKernel()
virtual Real getScalingFactorRhoUA() const =0
virtual void addPostprocessors()
Adds post-processors.
virtual void addFluidPropertiesMaterials()=0
Adds materials to compute fluid properties.
virtual void addVariables() override
Add variables the model uses.
virtual void addEnergyGravityKernel()
virtual void addDensityAux()
virtual void addRhoUAIC()
virtual void addRDGMooseObjects()
Adds RDG objects.
virtual void addRDGAdvectionDGKernels()=0
Adds DG kernels.
static InputParameters validParams()
virtual void addSpecificVolumeIC()
virtual void addSlopeReconstructionMaterial()=0
Adds slope reconstruction material.
virtual void addAuxKernels()
Adds the aux kernels.
virtual void addNumericalFluxUserObject()=0
Adds numerical flux user object.
virtual void addDGKernels()
Adds the DG kernels.
virtual void addSpecificVolumeAux()
virtual void addDensityIC()=0
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds an IC from a function.
Provides functions to setup the flow model.
FlowChannelBase & _flow_channel
The flow channel component that built this class.
virtual void addCommonVariables()
Adds variables common to any flow model (A, P_hf, ...)
const std::string _comp_name
The component name.
const bool & _output_vector_velocity
True if we output velocity as a vector-value field, false for outputting velocity as a scalar.
std::vector< VariableName > _solution_vars
static InputParameters validParams()
Factory & _factory
The Factory associated with the MooseApp.
const libMesh::FEType & _fe_type
The type of FE used for flow.
virtual void addCommonInitialConditions()
Adds initial conditions common to any flow model.
virtual void addCommonMooseObjects()
Adds common MOOSE objects.
const RealVectorValue & _gravity_vector
Gravitational acceleration vector.
std::vector< VariableName > _derivative_vars
const std::string & name() const
const T & getParam(const std::string &name) const
bool isParamValid(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.
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 constexpr std::size_t dim
static const std::string DIRECTION
static const std::string FRICTION_FACTOR_DARCY
static const std::string AREA
static const std::string RHOEA
static const std::string AREA_LINEAR
static const std::string SPECIFIC_VOLUME
static const std::string VELOCITY_Y
static const std::string TEMPERATURE
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 RHOUA
static const std::string THERMAL_CONDUCTIVITY
static const std::string PRESSURE
static const std::string DENSITY
static const std::string RHOA