www.mooseframework.org
RichardsSUPG.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 // Base class for Richards SUPG
9 //
10 #ifndef RICHARDSSUPG_H
11 #define RICHARDSSUPG_H
12 
13 #include "GeneralUserObject.h"
14 
15 class RichardsSUPG;
16 
17 template <>
18 InputParameters validParams<RichardsSUPG>();
19 
24 class RichardsSUPG : public GeneralUserObject
25 {
26 public:
27  RichardsSUPG(const InputParameters & parameters);
28 
29  void initialize();
30  void execute();
31  void finalize();
32 
41  virtual RealVectorValue velSUPG(RealTensorValue perm,
42  RealVectorValue gradp,
43  Real density,
44  RealVectorValue gravity) const = 0;
45 
50  virtual RealTensorValue dvelSUPG_dgradp(RealTensorValue perm) const = 0;
51 
58  virtual RealVectorValue
59  dvelSUPG_dp(RealTensorValue perm, Real density_prime, RealVectorValue gravity) const = 0;
60 
69  virtual RealVectorValue bb(RealVectorValue vel,
70  int dimen,
71  RealVectorValue xi_prime,
72  RealVectorValue eta_prime,
73  RealVectorValue zeta_prime) const = 0;
74 
83  virtual RealVectorValue dbb2_dgradp(RealVectorValue vel,
84  RealTensorValue dvel_dgradp,
85  RealVectorValue xi_prime,
86  RealVectorValue eta_prime,
87  RealVectorValue zeta_prime) const = 0;
88 
97  virtual Real dbb2_dp(RealVectorValue vel,
98  RealVectorValue dvel_dp,
99  RealVectorValue xi_prime,
100  RealVectorValue eta_prime,
101  RealVectorValue zeta_prime) const = 0;
102 
110  virtual Real tauSUPG(RealVectorValue vel, Real traceperm, RealVectorValue b) const = 0;
111 
120  virtual RealVectorValue dtauSUPG_dgradp(RealVectorValue vel,
121  RealTensorValue dvel_dgradp,
122  Real traceperm,
123  RealVectorValue b,
124  RealVectorValue db2_dgradp) const = 0;
125 
134  virtual Real dtauSUPG_dp(RealVectorValue vel,
135  RealVectorValue dvel_dp,
136  Real traceperm,
137  RealVectorValue b,
138  Real db2_dp) const = 0;
139 
145  virtual bool SUPG_trivial() const = 0;
146 };
147 
148 #endif // RICHARDSSUPG_H
virtual Real tauSUPG(RealVectorValue vel, Real traceperm, RealVectorValue b) const =0
The SUPG tau parameter.
virtual RealVectorValue dtauSUPG_dgradp(RealVectorValue vel, RealTensorValue dvel_dgradp, Real traceperm, RealVectorValue b, RealVectorValue db2_dgradp) const =0
derivative of tau wrt gradient of porepressure
const std::string density
Definition: NS.h:15
RichardsSUPG(const InputParameters &parameters)
Definition: RichardsSUPG.C:21
virtual RealTensorValue dvelSUPG_dgradp(RealTensorValue perm) const =0
derivative of SUPG velocity wrt gradient of porepressure
virtual Real dbb2_dp(RealVectorValue vel, RealVectorValue dvel_dp, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const =0
derivative of bb*bb wrt porepressure
void finalize()
Definition: RichardsSUPG.C:34
virtual bool SUPG_trivial() const =0
Returns true if SUPG is trivial.
void initialize()
Definition: RichardsSUPG.C:24
virtual RealVectorValue dvelSUPG_dp(RealTensorValue perm, Real density_prime, RealVectorValue gravity) const =0
derivative of SUPG velocity wrt porepressure (keeping gradp fixed)
base class for SUPG of the Richards equation You must override all the functions below with your spec...
Definition: RichardsSUPG.h:24
virtual RealVectorValue bb(RealVectorValue vel, int dimen, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const =0
|bb| ~ 2*velocity/element_length
virtual RealVectorValue dbb2_dgradp(RealVectorValue vel, RealTensorValue dvel_dgradp, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const =0
derivative of bb*bb wrt gradient of porepressure
InputParameters validParams< RichardsSUPG >()
Definition: RichardsSUPG.C:14
virtual Real dtauSUPG_dp(RealVectorValue vel, RealVectorValue dvel_dp, Real traceperm, RealVectorValue b, Real db2_dp) const =0
derivative of tau wrt porepressure (keeping gradp fixed)
void execute()
Definition: RichardsSUPG.C:29
virtual RealVectorValue velSUPG(RealTensorValue perm, RealVectorValue gradp, Real density, RealVectorValue gravity) const =0
SUPG velocity This points in direction of information propagation.