https://mooseframework.inl.gov
RichardsSUPG.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 
21 {
22 public:
24 
26 
27  void initialize();
28  void execute();
29  void finalize();
30 
40  RealVectorValue gradp,
41  Real density,
42  RealVectorValue gravity) const = 0;
43 
48  virtual RealTensorValue dvelSUPG_dgradp(RealTensorValue perm) const = 0;
49 
56  virtual RealVectorValue
57  dvelSUPG_dp(RealTensorValue perm, Real density_prime, RealVectorValue gravity) const = 0;
58 
68  int dimen,
69  RealVectorValue xi_prime,
70  RealVectorValue eta_prime,
71  RealVectorValue zeta_prime) const = 0;
72 
82  RealTensorValue dvel_dgradp,
83  RealVectorValue xi_prime,
84  RealVectorValue eta_prime,
85  RealVectorValue zeta_prime) const = 0;
86 
95  virtual Real dbb2_dp(RealVectorValue vel,
96  RealVectorValue dvel_dp,
97  RealVectorValue xi_prime,
98  RealVectorValue eta_prime,
99  RealVectorValue zeta_prime) const = 0;
100 
108  virtual Real tauSUPG(RealVectorValue vel, Real traceperm, RealVectorValue b) const = 0;
109 
119  RealTensorValue dvel_dgradp,
120  Real traceperm,
122  RealVectorValue db2_dgradp) const = 0;
123 
132  virtual Real dtauSUPG_dp(RealVectorValue vel,
133  RealVectorValue dvel_dp,
134  Real traceperm,
136  Real db2_dp) const = 0;
137 
143  virtual bool SUPG_trivial() const = 0;
144 };
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)
virtual bool SUPG_trivial() const =0
Returns true if SUPG is trivial.
static InputParameters validParams()
Definition: RichardsSUPG.C:15
virtual RealVectorValue bb(RealVectorValue vel, int dimen, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const =0
|bb| ~ 2*velocity/element_length
virtual Real tauSUPG(RealVectorValue vel, Real traceperm, RealVectorValue b) const =0
The SUPG tau parameter.
static const std::string density
Definition: NS.h:33
RichardsSUPG(const InputParameters &parameters)
Definition: RichardsSUPG.C:22
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
void finalize()
Definition: RichardsSUPG.C:35
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
TensorValue< Real > RealTensorValue
void initialize()
Definition: RichardsSUPG.C:25
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:20
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
virtual RealTensorValue dvelSUPG_dgradp(RealTensorValue perm) const =0
derivative of SUPG velocity wrt gradient of porepressure
void execute()
Definition: RichardsSUPG.C:30
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
virtual RealVectorValue velSUPG(RealTensorValue perm, RealVectorValue gradp, Real density, RealVectorValue gravity) const =0
SUPG velocity This points in direction of information propagation.