https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
19public:
21
23
24 virtual void addVariables() override;
25 virtual void addInitialConditions() override;
26 virtual void addMooseObjects() override;
27
29 virtual std::vector<VariableName> solutionVariableNames() const = 0;
30
31protected:
32 // Methods to get scaling factors for rhoA, rhouA, and rhoEA
33 virtual Real getScalingFactorRhoA() const = 0;
34 virtual Real getScalingFactorRhoUA() const = 0;
35 virtual Real getScalingFactorRhoEA() 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 virtual void addHeatConductionDGKernel();
64
66 virtual void addAuxKernels();
67 // various aux kernels
68 virtual void addPressureAux() = 0;
69 virtual void addTemperatureAux() = 0;
70 virtual void addVelocityAux();
71 virtual void addDensityAux();
72 virtual void addSpecificVolumeAux();
73 virtual void addSpecificInternalEnergyAux();
74 virtual void addSpecificTotalEnthalpyAux();
75
77 virtual void addFunctorMaterials() {}
78
80 virtual void addFluidPropertiesMaterials() = 0;
81
83 virtual void addNumericalFluxUserObject() = 0;
85 virtual void addRDGMooseObjects();
89 virtual void addRDGAdvectionDGKernels() = 0;
90
92 virtual void addPostprocessors() {}
93
96
98 const UserObjectName _numerical_flux_name;
99};
Base class for a flow model for a single-phase fluid.
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()
const UserObjectName _numerical_flux_name
Numerical flux user object name.
virtual void addMomentumGravityKernel()
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.
const MooseEnum _rdg_slope_reconstruction
Slope reconstruction type for rDG.
virtual void addVariables() override
Add variables the model uses.
virtual void addEnergyGravityKernel()
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.
Definition FlowModel.h:28