https://mooseframework.inl.gov
FlowModel1PhaseBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "FlowModel.h"
13 
18 {
19 public:
21 
22  FlowModel1PhaseBase(const InputParameters & params);
23 
24  virtual void addVariables() override;
25  virtual void addInitialConditions() override;
26  virtual void addMooseObjects() override;
27 
28 protected:
29  // Methods to get scaling factors for rhoA, rhouA, and rhoEA
30  virtual Real getScalingFactorRhoA() const = 0;
31  virtual Real getScalingFactorRhoUA() const = 0;
32  virtual Real getScalingFactorRhoEA() const = 0;
33 
35  virtual std::vector<VariableName> solutionVariableNames() const = 0;
36 
38  bool ICParametersAreValid() const;
40  void addFunctionIC(const VariableName & var_name, const FunctionName & function_name);
41  // various ICs
42  virtual void addRhoAIC();
43  virtual void addRhoUAIC();
44  virtual void addRhoEAIC() = 0;
45  virtual void addVelocityIC();
46  virtual void addDensityIC() = 0;
47  virtual void addSpecificVolumeIC();
48  virtual void addSpecificInternalEnergyIC();
49  virtual void addSpecificTotalEnthalpyIC();
50 
52  virtual void addKernels();
54  void addTimeDerivativeKernelIfTransient(const VariableName & var_name);
55  // various kernels
56  virtual void addMomentumAreaGradientKernel();
57  virtual void addMomentumFrictionKernel();
58  virtual void addMomentumGravityKernel();
59  virtual void addEnergyGravityKernel();
60 
62  virtual void addDGKernels();
63 
65  virtual void addAuxKernels();
66  // various aux kernels
67  virtual void addPressureAux() = 0;
68  virtual void addTemperatureAux() = 0;
69  virtual void addVelocityAux();
70  virtual void addDensityAux();
71  virtual void addSpecificVolumeAux();
72  virtual void addSpecificInternalEnergyAux();
73  virtual void addSpecificTotalEnthalpyAux();
74 
76  virtual void addFluidPropertiesMaterials() = 0;
77 
79  virtual void addNumericalFluxUserObject() = 0;
81  virtual void addRDGMooseObjects();
83  virtual void addSlopeReconstructionMaterial() = 0;
85  virtual void addRDGAdvectionDGKernels() = 0;
86 
89 
91  const UserObjectName _numerical_flux_name;
92 };
virtual Real getScalingFactorRhoEA() const =0
virtual void addRDGAdvectionDGKernels()=0
Adds DG kernels.
virtual void addInitialConditions() override
Add initial conditions.
virtual void addDGKernels()
Adds the DG kernels.
virtual void addMomentumFrictionKernel()
static InputParameters validParams()
virtual void addSpecificInternalEnergyIC()
virtual void addAuxKernels()
Adds the aux kernels.
virtual void addSpecificTotalEnthalpyIC()
virtual std::vector< VariableName > solutionVariableNames() const =0
Returns the solution variable names for the flow model.
virtual void addMooseObjects() override
Add MOOSE objects this model uses.
virtual void addRDGMooseObjects()
Adds RDG objects.
Provides functions to setup the flow model.
Definition: FlowModel.h:27
virtual void addFluidPropertiesMaterials()=0
Adds materials to compute fluid properties.
bool ICParametersAreValid() const
Returns true if all of the IC parameters are valid.
virtual void addSpecificInternalEnergyAux()
virtual void addNumericalFluxUserObject()=0
Adds numerical flux user object.
virtual Real getScalingFactorRhoA() const =0
virtual void addMomentumAreaGradientKernel()
virtual void addEnergyGravityKernel()
virtual void addPressureAux()=0
const UserObjectName _numerical_flux_name
Numerical flux user object name.
FlowModel1PhaseBase(const InputParameters &params)
virtual void addRhoEAIC()=0
const MooseEnum _rdg_slope_reconstruction
Slope reconstruction type for rDG.
virtual void addSlopeReconstructionMaterial()=0
Adds slope reconstruction material.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void addDensityIC()=0
virtual void addVelocityIC()
void addTimeDerivativeKernelIfTransient(const VariableName &var_name)
Adds a time derivative kernel for the given variable if problem is transient.
virtual void addVariables() override
Add variables the model uses.
virtual void addDensityAux()
virtual void addKernels()
Adds the kernels.
virtual Real getScalingFactorRhoUA() const =0
virtual void addSpecificTotalEnthalpyAux()
virtual void addSpecificVolumeAux()
Base class for a flow model for a single-phase fluid.
virtual void addMomentumGravityKernel()
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds an IC from a function.
virtual void addVelocityAux()
virtual void addSpecificVolumeIC()
virtual void addTemperatureAux()=0