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
21 
22 template <>
24 
31 class RichardsLumpedMassChange : public TimeKernel
32 {
33 public:
34  RichardsLumpedMassChange(const InputParameters & parameters);
35 
36 protected:
37  virtual Real computeQpResidual();
38 
39  virtual Real computeQpJacobian();
40 
41  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
42 
48 
50  unsigned int _num_p;
51 
59  unsigned int _pvar;
60 
62  const MaterialProperty<Real> & _porosity;
63 
65  const MaterialProperty<Real> & _porosity_old;
66 
69 
72 
75 
82  std::vector<const VariableValue *> _ps_at_nodes;
83 
85  std::vector<const VariableValue *> _ps_old_at_nodes;
86 
88  std::vector<Real> _dseff;
89 };
RichardsLumpedMassChange::RichardsLumpedMassChange
RichardsLumpedMassChange(const InputParameters &parameters)
Definition: RichardsLumpedMassChange.C:43
RichardsLumpedMassChange::computeQpResidual
virtual Real computeQpResidual()
Definition: RichardsLumpedMassChange.C:75
RichardsLumpedMassChange::_dseff
std::vector< Real > _dseff
holds nodal values of d(Seff)/dP_i
Definition: RichardsLumpedMassChange.h:88
RichardsLumpedMassChange::_porosity
const MaterialProperty< Real > & _porosity
current value of the porosity
Definition: RichardsLumpedMassChange.h:62
RichardsLumpedMassChange::_density_UO
const RichardsDensity * _density_UO
The userobject that computes fluid density (as a function of the porepressure)
Definition: RichardsLumpedMassChange.h:74
RichardsVarNames
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels,...
Definition: RichardsVarNames.h:25
RichardsSeff
Base class for effective saturation as a function of porepressure(s) The functions seff,...
Definition: RichardsSeff.h:23
RichardsSat.h
RichardsLumpedMassChange::computeQpJacobian
virtual Real computeQpJacobian()
Definition: RichardsLumpedMassChange.C:93
validParams< RichardsLumpedMassChange >
InputParameters validParams< RichardsLumpedMassChange >()
Definition: RichardsLumpedMassChange.C:22
RichardsVarNames.h
RichardsSat
Saturation of a phase as a function of effective saturation of that phase, and its derivatives wrt ef...
Definition: RichardsSat.h:24
RichardsLumpedMassChange::_sat_UO
const RichardsSat * _sat_UO
The userobject that computes saturation (as a function of effective saturation) for this variable.
Definition: RichardsLumpedMassChange.h:71
RichardsLumpedMassChange::_porosity_old
const MaterialProperty< Real > & _porosity_old
value of the porosity at the start of the timestep
Definition: RichardsLumpedMassChange.h:65
RichardsLumpedMassChange::_num_p
unsigned int _num_p
number of richards variables
Definition: RichardsLumpedMassChange.h:50
RichardsSeff.h
RichardsDensity
Base class for fluid density as a function of porepressure The functions density, ddensity and d2dens...
Definition: RichardsDensity.h:24
RichardsLumpedMassChange::_seff_UO
const RichardsSeff * _seff_UO
The userobject that computes effective saturation (as a function of porepressure(s)) for this variabl...
Definition: RichardsLumpedMassChange.h:68
RichardsLumpedMassChange
d(fluid mass in porespace)/dt with the fluid mass being lumped to the nodes.
Definition: RichardsLumpedMassChange.h:31
RichardsLumpedMassChange::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: RichardsLumpedMassChange.C:113
RichardsLumpedMassChange::_ps_at_nodes
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...
Definition: RichardsLumpedMassChange.h:82
RichardsLumpedMassChange::_pvar
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
Definition: RichardsLumpedMassChange.h:59
RichardsDensity.h
RichardsLumpedMassChange::_richards_name_UO
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
Definition: RichardsLumpedMassChange.h:47
RichardsLumpedMassChange::_ps_old_at_nodes
std::vector< const VariableValue * > _ps_old_at_nodes
Holds the nodal values of pressures at timestep_begin, in same way as _ps_at_nodes.
Definition: RichardsLumpedMassChange.h:85