www.mooseframework.org
RichardsLumpedMassChange.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "TimeKernel.h"
13 #include "Material.h"
14 #include "RichardsVarNames.h"
15 #include "RichardsDensity.h"
16 #include "RichardsSeff.h"
17 #include "RichardsSat.h"
18 
19 // Forward Declarations
20 
28 {
29 public:
31 
33 
34 protected:
35  virtual Real computeQpResidual();
36 
37  virtual Real computeQpJacobian();
38 
39  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
40 
46 
48  unsigned int _num_p;
49 
57  unsigned int _pvar;
58 
61 
64 
67 
70 
73 
80  std::vector<const VariableValue *> _ps_at_nodes;
81 
83  std::vector<const VariableValue *> _ps_old_at_nodes;
84 
86  std::vector<Real> _dseff;
87 };
const RichardsDensity & _density_UO
The userobject that computes fluid density (as a function of the porepressure)
const RichardsSat & _sat_UO
The userobject that computes saturation (as a function of effective saturation) for this variable...
Saturation of a phase as a function of effective saturation of that phase, and its derivatives wrt ef...
Definition: RichardsSat.h:19
Base class for effective saturation as a function of porepressure(s) The functions seff...
Definition: RichardsSeff.h:18
static InputParameters validParams()
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 RichardsSeff & _seff_UO
The userobject that computes effective saturation (as a function of porepressure(s)) for this variabl...
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)
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...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _num_p
number of richards variables
const InputParameters & parameters() const
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