https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity Class Reference

Material designed to provide the density of the porous medium for the fully-saturated case. More...

#include <PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.h>

Inheritance diagram for PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

void initQpStatefulProperties () override
 
void computeQpProperties () override
 

Protected Attributes

const Real _rho_s
 Solid density.
 
const MaterialProperty< std::vector< Real > > & _rho_f_qp
 Fluid density at qps.
 
const MaterialProperty< Real > & _porosity_qp
 Porosity at qps.
 
const MaterialProperty< std::vector< std::vector< Real > > > & _drho_f_qp_dvar
 d(rho_f)/d(PorousFlow variable)
 
const MaterialProperty< std::vector< Real > > & _dporosity_qp_dvar
 d(porosity)/d(PorousFlow variable)
 
MaterialProperty< Real > & _gravdensity
 Computed density at quadpoints.
 
MaterialProperty< std::vector< Real > > & _dgravdensity_dvar
 d(density)/d(PorousFlow variable)
 
const unsigned int _num_phases
 Number of phases.
 
const unsigned int _num_components
 Number of fluid components.
 
const unsigned int _num_var
 Number of PorousFlow variables.
 

Private Member Functions

bool haveMaterialProperty (const std::string &prop_name)
 
std::vector< VariableName > buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3)
 
void validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing)
 
bool isNotObjectVariable (const VariableName &name)
 

Private Attributes

FEProblemBase_dmi_fe_problem
 

Detailed Description

Material designed to provide the density of the porous medium for the fully-saturated case.

Density is calculated as a weighted average of the fluid and solid densities: density = phi * rho_f + (1 - phi) * rho_s where phi is porosity, rho_f is fluid density and rho_s is solid density (assumed constant).

Definition at line 22 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.h.

Constructor & Destructor Documentation

◆ PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity()

PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity ( const InputParameters parameters)

Definition at line 29 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.C.

33 _rho_s(getParam<Real>("rho_s")),
34 _rho_f_qp(getMaterialProperty<std::vector<Real>>("PorousFlow_fluid_phase_density_qp")),
35 _porosity_qp(getMaterialProperty<Real>("PorousFlow_porosity_qp")),
36 _drho_f_qp_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
37 "dPorousFlow_fluid_phase_density_qp_dvar")),
38 _dporosity_qp_dvar(getMaterialProperty<std::vector<Real>>("dPorousFlow_porosity_qp_dvar"))
39{
40 if (_num_phases != 1)
41 mooseError("The Dictator proclaims that the number of phases is ",
42 _dictator.numPhases(),
43 " whereas PorousFlowThermalConductivityFromPorosity can only be used for 1-phase "
44 "simulations. Be aware that the Dictator has noted your mistake.");
45
46 if (_nodal_material == true)
47 mooseError("PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity is only defined for "
48 "at_nodes = false");
49}
void mooseError(Args &&... args)
const unsigned int _num_phases
Number of phases.
Base class Material designed to provide the density of the porous medium.
const MaterialProperty< std::vector< std::vector< Real > > > & _drho_f_qp_dvar
d(rho_f)/d(PorousFlow variable)
const MaterialProperty< std::vector< Real > > & _dporosity_qp_dvar
d(porosity)/d(PorousFlow variable)

Member Function Documentation

◆ computeQpProperties()

void PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::computeQpProperties ( )
overrideprotected

Definition at line 59 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.C.

60{
61 const unsigned ph = 0;
62 _gravdensity[_qp] = _rho_s * (1.0 - _porosity_qp[_qp]) + _rho_f_qp[_qp][ph] * _porosity_qp[_qp];
63
65 for (unsigned int v = 0; v < _num_var; ++v)
66 {
67 _dgravdensity_dvar[_qp][v] = _dporosity_qp_dvar[_qp][v] * (_rho_f_qp[_qp][ph] - _rho_s) +
68 _drho_f_qp_dvar[_qp][ph][v] * _porosity_qp[_qp];
69 }
70}
const double v
virtual void resize(const std::size_t size) override final
const unsigned int _num_var
Number of PorousFlow variables.
MaterialProperty< std::vector< Real > > & _dgravdensity_dvar
d(density)/d(PorousFlow variable)
MaterialProperty< Real > & _gravdensity
Computed density at quadpoints.

◆ initQpStatefulProperties()

void PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::initQpStatefulProperties ( )
overrideprotected

Definition at line 52 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.C.

53{
54 const unsigned ph = 0;
55 _gravdensity[_qp] = _rho_s * (1.0 - _porosity_qp[_qp]) + _rho_f_qp[_qp][ph] * _porosity_qp[_qp];
56}

◆ validParams()

InputParameters PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::validParams ( )
static

Definition at line 15 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.C.

16{
19 "rho_s", "rho_s >= 0", "The density of the solid matrix");
21 "This Material calculates the porous medium density from the porosity, solid density "
22 "(assumed constant) and fluid density, for the fully-saturated single fluid phase case, "
23 "using a linear weighted average. "
24 "density = phi * rho_f + (1 - phi) * rho_s, where phi is porosity and rho_f, rho_s are "
25 "the densities of the fluid and solid phases.");
26 return params;
27}
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Data Documentation

◆ _dgravdensity_dvar

MaterialProperty<std::vector<Real> >& PorousFlowTotalGravitationalDensityBase::_dgravdensity_dvar
protectedinherited

d(density)/d(PorousFlow variable)

Definition at line 29 of file PorousFlowTotalGravitationalDensityBase.h.

Referenced by computeQpProperties().

◆ _dporosity_qp_dvar

const MaterialProperty<std::vector<Real> >& PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::_dporosity_qp_dvar
protected

d(porosity)/d(PorousFlow variable)

Definition at line 47 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.h.

Referenced by computeQpProperties().

◆ _drho_f_qp_dvar

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::_drho_f_qp_dvar
protected

d(rho_f)/d(PorousFlow variable)

Definition at line 44 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.h.

Referenced by computeQpProperties().

◆ _gravdensity

MaterialProperty<Real>& PorousFlowTotalGravitationalDensityBase::_gravdensity
protectedinherited

Computed density at quadpoints.

Definition at line 26 of file PorousFlowTotalGravitationalDensityBase.h.

Referenced by computeQpProperties(), and initQpStatefulProperties().

◆ _num_components

const unsigned int PorousFlowMaterialVectorBase::_num_components
protectedinherited

◆ _num_phases

const unsigned int PorousFlowMaterialVectorBase::_num_phases
protectedinherited

◆ _num_var

const unsigned int PorousFlowMaterialVectorBase::_num_var
protectedinherited

◆ _porosity_qp

const MaterialProperty<Real>& PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::_porosity_qp
protected

◆ _rho_f_qp

const MaterialProperty<std::vector<Real> >& PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::_rho_f_qp
protected

Fluid density at qps.

Definition at line 38 of file PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity.h.

Referenced by computeQpProperties(), and initQpStatefulProperties().

◆ _rho_s

const Real PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::_rho_s
protected

The documentation for this class was generated from the following files: