#include <RichardsMaterial.h>
Public Member Functions | |
RichardsMaterial (const InputParameters ¶meters) | |
Protected Member Functions | |
virtual void | computeProperties () |
void | computePandSeff () |
computes the quadpoint values of the porepressure(s) and effective saturation(s), and their derivatives wrt the variables in the system. More... | |
void | computeDerivedQuantities (unsigned int qp) |
Computes the "derived" quantities — those that depend on porepressure(s) and effective saturation(s) — such as density, relative permeability, mass, flux, etc. More... | |
void | compute2ndDerivedQuantities (unsigned int qp) |
Computes 2nd derivatives of the flux. More... | |
void | zeroSUPG (unsigned int qp) |
Assigns and zeroes the MaterialProperties associated with SUPG. More... | |
void | computeSUPG () |
Computes the tauvel_SUPG and its derivatives. More... | |
Protected Attributes | |
Real | _material_por |
porosity as entered by the user More... | |
const VariableValue & | _por_change |
porosity changes. if not entered they default to zero More... | |
const VariableValue & | _por_change_old |
RealTensorValue | _material_perm |
permeability as entered by the user More... | |
RealVectorValue | _material_gravity |
gravity as entered by user More... | |
MaterialProperty< Real > & | _porosity_old |
material properties More... | |
MaterialProperty< Real > & | _porosity |
MaterialProperty< RealTensorValue > & | _permeability |
MaterialProperty< RealVectorValue > & | _gravity |
const RichardsVarNames & | _richards_name_UO |
The variable names userobject for the Richards variables. More... | |
unsigned int | _num_p |
std::vector< const RichardsRelPerm * > | _material_relperm_UO |
std::vector< const RichardsSeff * > | _material_seff_UO |
std::vector< const RichardsSat * > | _material_sat_UO |
std::vector< const RichardsDensity * > | _material_density_UO |
std::vector< const RichardsSUPG * > | _material_SUPG_UO |
std::vector< const VariableValue * > | _perm_change |
Private Member Functions | |
void | zero2ndDerivedQuantities (unsigned int qp) |
Zeroes 2nd derivatives of the flux. More... | |
Private Attributes | |
Real | _trace_perm |
trace of permeability tensor More... | |
std::vector< Real > | _material_viscosity |
MaterialProperty< std::vector< Real > > & | _pp_old |
old values of porepressure(s) More... | |
MaterialProperty< std::vector< Real > > & | _pp |
porepressure(s) More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _dpp_dv |
d(porepressure_i)/d(variable_j) More... | |
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & | _d2pp_dv |
d^2(porepressure_i)/d(variable_j)/d(variable_k) More... | |
MaterialProperty< std::vector< Real > > & | _viscosity |
fluid viscosity (or viscosities in the multiphase case) More... | |
MaterialProperty< std::vector< Real > > & | _density_old |
old fluid density (or densities for multiphase problems) More... | |
MaterialProperty< std::vector< Real > > & | _density |
fluid density (or densities for multiphase problems) More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _ddensity_dv |
d(density_i)/d(variable_j) More... | |
MaterialProperty< std::vector< Real > > & | _seff_old |
old effective saturation More... | |
MaterialProperty< std::vector< Real > > & | _seff |
effective saturation (vector of effective saturations in case of multiphase) More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _dseff_dv |
d(Seff_i)/d(variable_j) More... | |
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & | _d2seff_dv |
d^2(Seff_i)/d(variable_j)/d(variable_k) More... | |
MaterialProperty< std::vector< Real > > & | _sat_old |
old saturation More... | |
MaterialProperty< std::vector< Real > > & | _sat |
saturation (vector of saturations in case of multiphase) More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _dsat_dv |
d(saturation_i)/d(variable_j) More... | |
MaterialProperty< std::vector< Real > > & | _rel_perm |
relative permeability (vector of relative permeabilities in case of multiphase) More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _drel_perm_dv |
d(relperm_i)/d(variable_j) More... | |
MaterialProperty< std::vector< Real > > & | _mass_old |
old value of fluid mass (a vector of masses for multicomponent) More... | |
MaterialProperty< std::vector< Real > > & | _mass |
fluid mass (a vector of masses for multicomponent) More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _dmass |
d(fluid mass_i)/dP_j (a vector of masses for multicomponent) More... | |
MaterialProperty< std::vector< RealVectorValue > > & | _flux_no_mob |
permeability*(grad(P) - density*gravity) (a vector of these for multicomponent) More... | |
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & | _dflux_no_mob_dv |
d(_flux_no_mob_i)/d(variable_j) More... | |
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & | _dflux_no_mob_dgradv |
d(_flux_no_mob_i)/d(grad(variable_j)) More... | |
MaterialProperty< std::vector< RealVectorValue > > & | _flux |
fluid flux (a vector of fluxes for multicomponent) More... | |
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & | _dflux_dv |
d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue More... | |
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & | _dflux_dgradv |
d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorValue More... | |
MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & | _d2flux_dvdv |
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue More... | |
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & | _d2flux_dgradvdv |
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue More... | |
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & | _d2flux_dvdgradv |
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU. More... | |
MaterialProperty< std::vector< RealVectorValue > > & | _tauvel_SUPG |
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & | _dtauvel_SUPG_dgradp |
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & | _dtauvel_SUPG_dp |
std::vector< std::vector< std::vector< Real > > > | _d2density |
d^2(density)/dp_j/dP_k - used in various derivative calculations More... | |
std::vector< std::vector< std::vector< Real > > > | _d2rel_perm_dv |
d^2(relperm_i)/dP_j/dP_k - used in various derivative calculations More... | |
std::vector< const VariableValue * > | _pressure_vals |
std::vector< const VariableValue * > | _pressure_old_vals |
std::vector< const VariableGradient * > | _grad_p |
Definition at line 27 of file RichardsMaterial.h.
RichardsMaterial::RichardsMaterial | ( | const InputParameters & | parameters | ) |
Definition at line 67 of file RichardsMaterial.C.
|
protected |
Computes 2nd derivatives of the flux.
These are needed by kernels if doing SUPG
qp | The quadpoint to evaluate the quantites at |
Definition at line 392 of file RichardsMaterial.C.
Referenced by computeProperties().
|
protected |
Computes the "derived" quantities — those that depend on porepressure(s) and effective saturation(s) — such as density, relative permeability, mass, flux, etc.
qp | The quadpoint to evaluate the quantites at |
Definition at line 270 of file RichardsMaterial.C.
Referenced by computeProperties().
|
protected |
computes the quadpoint values of the porepressure(s) and effective saturation(s), and their derivatives wrt the variables in the system.
These are then used in computeProperties to compute relative permeability, density, and so on
Definition at line 211 of file RichardsMaterial.C.
Referenced by computeProperties().
|
protectedvirtual |
Definition at line 575 of file RichardsMaterial.C.
|
protected |
Computes the tauvel_SUPG and its derivatives.
Definition at line 481 of file RichardsMaterial.C.
Referenced by computeProperties().
|
private |
Zeroes 2nd derivatives of the flux.
The values are only calculated in compute2ndDerivedQuantites if the SUPG UserObject says they are need. This is for computational efficiency as these are very expensive to calculate
qp | The quadpoint to evaluate the quantites at |
Definition at line 371 of file RichardsMaterial.C.
Referenced by compute2ndDerivedQuantities().
|
protected |
Assigns and zeroes the MaterialProperties associated with SUPG.
qp | The quadpoint to assign+zero at |
Definition at line 468 of file RichardsMaterial.C.
Referenced by computeProperties().
|
private |
d^2(density)/dp_j/dP_k - used in various derivative calculations
Definition at line 200 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and RichardsMaterial().
|
private |
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue
Definition at line 188 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and zero2ndDerivedQuantities().
|
private |
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU.
Definition at line 191 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and zero2ndDerivedQuantities().
|
private |
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue
Definition at line 185 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and zero2ndDerivedQuantities().
|
private |
d^2(porepressure_i)/d(variable_j)/d(variable_k)
Definition at line 116 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and computePandSeff().
|
private |
d^2(relperm_i)/dP_j/dP_k - used in various derivative calculations
Definition at line 203 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and RichardsMaterial().
|
private |
d^2(Seff_i)/d(variable_j)/d(variable_k)
Definition at line 140 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and computePandSeff().
|
private |
d(density_i)/d(variable_j)
Definition at line 128 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computeSUPG().
|
private |
fluid density (or densities for multiphase problems)
Definition at line 125 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computeSUPG().
|
private |
old fluid density (or densities for multiphase problems)
Definition at line 122 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorValue
Definition at line 182 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue
Definition at line 179 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(_flux_no_mob_i)/d(grad(variable_j))
Definition at line 173 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(_flux_no_mob_i)/d(variable_j)
Definition at line 170 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(fluid mass_i)/dP_j (a vector of masses for multicomponent)
Definition at line 164 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(porepressure_i)/d(variable_j)
Definition at line 113 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), computePandSeff(), and computeSUPG().
|
private |
d(relperm_i)/d(variable_j)
Definition at line 155 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and computeDerivedQuantities().
|
private |
d(saturation_i)/d(variable_j)
Definition at line 149 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
d(Seff_i)/d(variable_j)
Definition at line 137 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computePandSeff().
|
private |
Definition at line 195 of file RichardsMaterial.h.
Referenced by computeSUPG(), and zeroSUPG().
|
private |
Definition at line 197 of file RichardsMaterial.h.
Referenced by computeSUPG(), and zeroSUPG().
|
private |
fluid flux (a vector of fluxes for multicomponent)
Definition at line 176 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
permeability*(grad(P) - density*gravity) (a vector of these for multicomponent)
Definition at line 167 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
Definition at line 207 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), computePandSeff(), computeSUPG(), and RichardsMaterial().
|
protected |
Definition at line 50 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), computeProperties(), and computeSUPG().
|
private |
fluid mass (a vector of masses for multicomponent)
Definition at line 161 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
old value of fluid mass (a vector of masses for multicomponent)
Definition at line 158 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
protected |
Definition at line 59 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and RichardsMaterial().
|
protected |
gravity as entered by user
Definition at line 44 of file RichardsMaterial.h.
Referenced by computeProperties().
|
protected |
permeability as entered by the user
Definition at line 41 of file RichardsMaterial.h.
Referenced by computeProperties().
|
protected |
porosity as entered by the user
Definition at line 34 of file RichardsMaterial.h.
Referenced by computeProperties(), and RichardsMaterial().
|
protected |
Definition at line 56 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and RichardsMaterial().
|
protected |
Definition at line 58 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities(), and RichardsMaterial().
|
protected |
Definition at line 57 of file RichardsMaterial.h.
Referenced by computePandSeff(), and RichardsMaterial().
|
protected |
Definition at line 60 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeProperties(), computeSUPG(), and RichardsMaterial().
|
private |
Definition at line 104 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities(), and RichardsMaterial().
|
protected |
Definition at line 54 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), computePandSeff(), computeProperties(), computeSUPG(), RichardsMaterial(), zero2ndDerivedQuantities(), and zeroSUPG().
|
protected |
Definition at line 62 of file RichardsMaterial.h.
Referenced by computeProperties(), and RichardsMaterial().
|
protected |
Definition at line 49 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), computeProperties(), and computeSUPG().
|
protected |
porosity changes. if not entered they default to zero
Definition at line 37 of file RichardsMaterial.h.
Referenced by computeProperties().
|
protected |
Definition at line 38 of file RichardsMaterial.h.
Referenced by computeProperties().
|
protected |
Definition at line 48 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities(), and computeProperties().
|
protected |
material properties
Definition at line 47 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities(), and computeProperties().
|
private |
porepressure(s)
Definition at line 110 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computePandSeff().
|
private |
old values of porepressure(s)
Definition at line 107 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities(), and computePandSeff().
|
private |
Definition at line 206 of file RichardsMaterial.h.
Referenced by computePandSeff(), and RichardsMaterial().
|
private |
Definition at line 205 of file RichardsMaterial.h.
Referenced by computePandSeff(), and RichardsMaterial().
|
private |
relative permeability (vector of relative permeabilities in case of multiphase)
Definition at line 152 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and computeDerivedQuantities().
|
protected |
The variable names userobject for the Richards variables.
Definition at line 53 of file RichardsMaterial.h.
Referenced by computePandSeff(), and RichardsMaterial().
|
private |
saturation (vector of saturations in case of multiphase)
Definition at line 146 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
old saturation
Definition at line 143 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities().
|
private |
effective saturation (vector of effective saturations in case of multiphase)
Definition at line 134 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computePandSeff().
|
private |
old effective saturation
Definition at line 131 of file RichardsMaterial.h.
Referenced by computeDerivedQuantities(), and computePandSeff().
|
private |
Definition at line 193 of file RichardsMaterial.h.
Referenced by computeSUPG(), and zeroSUPG().
|
private |
trace of permeability tensor
Definition at line 102 of file RichardsMaterial.h.
Referenced by computeSUPG().
|
private |
fluid viscosity (or viscosities in the multiphase case)
Definition at line 119 of file RichardsMaterial.h.
Referenced by compute2ndDerivedQuantities(), and computeDerivedQuantities().