www.mooseframework.org
RichardsLumpedMassChange.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #ifndef RICHARDSLUMPEDMASSCHANGE
9 #define RICHARDSLUMPEDMASSCHANGE
10 
11 #include "TimeKernel.h"
12 #include "Material.h"
13 #include "RichardsVarNames.h"
14 #include "RichardsDensity.h"
15 #include "RichardsSeff.h"
16 #include "RichardsSat.h"
17 
18 // Forward Declarations
20 
21 template <>
23 
30 class RichardsLumpedMassChange : public TimeKernel
31 {
32 public:
33  RichardsLumpedMassChange(const InputParameters & parameters);
34 
35 protected:
36  virtual Real computeQpResidual();
37 
38  virtual Real computeQpJacobian();
39 
40  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
41 
47 
49  unsigned int _num_p;
50 
58  unsigned int _pvar;
59 
61  const MaterialProperty<Real> & _porosity;
62 
64  const MaterialProperty<Real> & _porosity_old;
65 
68 
71 
74 
81  std::vector<const VariableValue *> _ps_at_nodes;
82 
84  std::vector<const VariableValue *> _ps_old_at_nodes;
85 
87  std::vector<Real> _dseff;
88 };
89 
90 #endif // RICHARDSLUMPEDMASSCHANGE
Saturation of a phase as a function of effective saturation of that phase, and its derivatives wrt ef...
Definition: RichardsSat.h:23
Base class for effective saturation as a function of porepressure(s) The functions seff...
Definition: RichardsSeff.h:22
std::vector< const VariableValue * > _ps_old_at_nodes
Holds the nodal values of pressures at timestep_begin, in same way as _ps_at_nodes.
const RichardsSat * _sat_UO
The userobject that computes saturation (as a function of effective saturation) for this variable...
const MaterialProperty< Real > & _porosity_old
value of the porosity at the start of the timestep
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels...
RichardsLumpedMassChange(const InputParameters &parameters)
const RichardsDensity * _density_UO
The userobject that computes fluid density (as a function of the porepressure)
const RichardsSeff * _seff_UO
The userobject that computes effective saturation (as a function of porepressure(s)) for this variabl...
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
d(fluid mass in porespace)/dt with the fluid mass being lumped to the nodes.
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
unsigned int _num_p
number of richards variables
InputParameters validParams< RichardsLumpedMassChange >()
Base class for fluid density as a function of porepressure The functions density, ddensity and d2dens...
std::vector< const VariableValue * > _ps_at_nodes
Holds the values of pressures at all the nodes of the element Eg: _ps_at_nodes[_pvar] is a pointer to...
std::vector< Real > _dseff
holds nodal values of d(Seff)/dP_i
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
const MaterialProperty< Real > & _porosity
current value of the porosity