www.mooseframework.org
RichardsFlux.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 RICHARDSFLUX
9 #define RICHARDSFLUX
10 
11 #include "Kernel.h"
12 #include "RichardsVarNames.h"
13 
14 // Forward Declarations
15 class RichardsFlux;
16 
17 template <>
18 InputParameters validParams<RichardsFlux>();
19 
24 class RichardsFlux : public Kernel
25 {
26 public:
27  RichardsFlux(const InputParameters & parameters);
28 
29 protected:
30  virtual Real computeQpResidual();
31 
32  virtual Real computeQpJacobian();
33 
34  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
35 
41 
49  unsigned int _pvar;
50 
52  const MaterialProperty<std::vector<RealVectorValue>> & _flux;
53 
55  const MaterialProperty<std::vector<std::vector<RealVectorValue>>> & _dflux_dv;
56 
58  const MaterialProperty<std::vector<std::vector<RealTensorValue>>> & _dflux_dgradv;
59 
61  const MaterialProperty<std::vector<std::vector<std::vector<RealVectorValue>>>> & _d2flux_dvdv;
62 
64  const MaterialProperty<std::vector<std::vector<std::vector<RealTensorValue>>>> & _d2flux_dgradvdv;
65 
67  const MaterialProperty<std::vector<std::vector<std::vector<RealTensorValue>>>> & _d2flux_dvdgradv;
68 
70  const VariableSecond & _second_u;
71 
73  const VariablePhiSecond & _second_phi;
74 
76  const MaterialProperty<std::vector<RealVectorValue>> & _tauvel_SUPG;
77 
79  const MaterialProperty<std::vector<std::vector<RealTensorValue>>> & _dtauvel_SUPG_dgradv;
80 
82  const MaterialProperty<std::vector<std::vector<RealVectorValue>>> & _dtauvel_SUPG_dv;
83 
90  Real computeQpJac(unsigned int wrt_num);
91 };
92 
93 #endif // RICHARDSFLUX
const 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 Rea...
Definition: RichardsFlux.h:61
Kernel = grad(permeability*relativepermeability/viscosity * (grad(pressure) - density*gravity)) This ...
Definition: RichardsFlux.h:24
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
Definition: RichardsFlux.h:49
const MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
SUPGtau*SUPGvel (a vector of these if multiphase)
Definition: RichardsFlux.h:76
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
Definition: RichardsFlux.h:40
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: RichardsFlux.C:122
const 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 RealVectorVal...
Definition: RichardsFlux.h:58
RichardsFlux(const InputParameters &parameters)
Definition: RichardsFlux.C:31
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradv
derivative of SUPGtau*SUPGvel_i wrt grad(variable_j)
Definition: RichardsFlux.h:79
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels...
const VariablePhiSecond & _second_phi
interpolation function for the _second_u
Definition: RichardsFlux.h:73
Real computeQpJac(unsigned int wrt_num)
Computes diagonal and off-diagonal jacobian entries.
Definition: RichardsFlux.C:83
const MaterialProperty< std::vector< RealVectorValue > > & _flux
Richards flux.
Definition: RichardsFlux.h:52
InputParameters validParams< RichardsFlux >()
Definition: RichardsFlux.C:19
const 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 ...
Definition: RichardsFlux.h:55
virtual Real computeQpJacobian()
Definition: RichardsFlux.C:116
const VariableSecond & _second_u
grad_i grad_j porepressure. This is used in SUPG
Definition: RichardsFlux.h:70
const MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dv
derivative of SUPGtau*SUPGvel_i wrt variable_j
Definition: RichardsFlux.h:82
const 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
Definition: RichardsFlux.h:67
const 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
Definition: RichardsFlux.h:64
virtual Real computeQpResidual()
Definition: RichardsFlux.C:61