22 "Scaling factor for the secondary component mass equation");
24 "Scaling factor for the mixture mass equation");
25 params.
addRequiredParam<Real>(
"scaling_factor_rhouA",
"Scaling factor for the momentum equation");
26 params.
addRequiredParam<Real>(
"scaling_factor_rhoEA",
"Scaling factor for the energy equation");
48 return getParam<Real>(
"scaling_factor_rhoA");
54 return getParam<Real>(
"scaling_factor_rhouA");
60 return getParam<Real>(
"scaling_factor_rhoEA");
63std::vector<VariableName>
85 const std::string class_name =
"VariableProductIC";
96 const std::string class_name =
"FlowModelGasMixIC";
101 params.
set<FunctionName>(
"mass_fraction") =
106 params.
set<std::vector<VariableName>>(
"area") = {
THM::AREA};
107 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
114 const std::string class_name =
"FlowModelGasMixIC";
119 params.
set<FunctionName>(
"mass_fraction") =
124 params.
set<std::vector<VariableName>>(
"area") = {
THM::AREA};
125 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
149 const std::string class_name =
"MassDiffusionSpeciesGasMixDGKernel";
165 const std::string class_name =
"MassDiffusionEnergyGasMixDGKernel";
177 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
192 const std::string class_name =
"FlowModelGasMixAux";
198 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
199 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
200 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
201 params.
set<std::vector<VariableName>>(
"area") = {
THM::AREA};
202 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
210 const std::string class_name =
"FlowModelGasMixAux";
216 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
217 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
218 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
219 params.
set<std::vector<VariableName>>(
"area") = {
THM::AREA};
220 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
228 const std::string class_name =
"QuotientAux";
232 params.
set<std::vector<VariableName>>(
"numerator") = {
THM::XIRHOA};
233 params.
set<std::vector<VariableName>>(
"denominator") = {
THM::RHOA};
241 const std::string class_name =
"FluidPropertiesGasMixMaterial";
245 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
246 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
247 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
248 params.
set<std::vector<VariableName>>(
"area") = {
THM::AREA};
249 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
256 const std::string class_name =
"NumericalFluxGasMixHLLC";
258 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
267 const std::string class_name =
"SlopeReconstructionGasMixMaterial";
271 params.
set<std::vector<VariableName>>(
"A_elem") = {
THM::AREA};
274 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
275 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
276 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
277 params.
set<UserObjectName>(
"fluid_properties") =
_fp_name;
287 for (
const auto & var :
vars)
289 const std::string class_name =
"NumericalFluxGasMixDGKernel";
291 params.
set<NonlinearVariableName>(
"variable") = var;
295 params.
set<std::vector<VariableName>>(
"rhoA") = {
THM::RHOA};
296 params.
set<std::vector<VariableName>>(
"rhouA") = {
THM::RHOUA};
297 params.
set<std::vector<VariableName>>(
"rhoEA") = {
THM::RHOEA};
registerMooseObject("ThermalHydraulicsApp", FlowModelGasMix)
const ExecFlagType EXEC_TIMESTEP_END
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.
bool ICParametersAreValid() const
Returns true if all of the IC parameters are valid.
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()
virtual void addAuxKernels()
Adds the aux kernels.
virtual void addDGKernels()
Adds the DG kernels.
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds an IC from a function.
1D flow model for a binary gas mixture
virtual void addMassDiffusionEnergyDGKernel()
FlowModelGasMix(const InputParameters ¶ms)
virtual void addSlopeReconstructionMaterial() override
Adds slope reconstruction material.
virtual void addMassDiffusionSpeciesDGKernel()
virtual Real getScalingFactorRhoEA() const override
virtual void addDGKernels() override
Adds the DG kernels.
virtual void addFluidPropertiesMaterials() override
Adds materials to compute fluid properties.
virtual void addPressureAux() override
virtual void addRhoEAIC() override
virtual void addNumericalFluxUserObject() override
Adds numerical flux user object.
virtual void addTemperatureAux() override
virtual void addRDGAdvectionDGKernels() override
Adds DG kernels.
virtual Real getScalingFactorRhoUA() const override
virtual void addAuxKernels() override
Adds the aux kernels.
virtual Real getScalingFactorRhoA() const override
virtual void addVariables() override
Add variables the model uses.
virtual void addKernels() override
Adds the kernels.
virtual void addMassFractionAux()
virtual void addDensityIC() override
static InputParameters validParams()
virtual void addInitialConditions() override
Add initial conditions.
virtual void addXiRhoAIC()
virtual std::vector< VariableName > solutionVariableNames() const override
Returns the solution variable names for the flow model.
FlowChannelBase & _flow_channel
The flow channel component that built this class.
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 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 XIRHOA
static const std::string MASS_DIFFUSION_COEFFICIENT
static const std::string DIRECTION
static const std::string AREA
static const std::string MASS_FRACTION
static const std::string RHOEA
static const std::string AREA_LINEAR
static const std::string TEMPERATURE
static const std::string VELOCITY
static const std::string RHOUA
static const std::string PRESSURE
static const std::string DENSITY
static const std::string RHOA