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