https://mooseframework.inl.gov
RichardsSUPGstandard.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 
12 #include "RichardsSUPG.h"
13 
23 {
24 public:
26 
28 
39 
45 
53  dvelSUPG_dp(RealTensorValue perm, Real density_prime, RealVectorValue gravity) const;
54 
64  int dimen,
65  RealVectorValue xi_prime,
66  RealVectorValue eta_prime,
67  RealVectorValue zeta_prime) const;
68 
78  RealTensorValue dvel_dgradp,
79  RealVectorValue xi_prime,
80  RealVectorValue eta_prime,
81  RealVectorValue zeta_prime) const;
82 
92  RealVectorValue dvel_dp,
93  RealVectorValue xi_prime,
94  RealVectorValue eta_prime,
95  RealVectorValue zeta_prime) const;
96 
104  Real tauSUPG(RealVectorValue vel, Real traceperm, RealVectorValue b) const;
105 
115  RealTensorValue dvel_dgradp,
116  Real traceperm,
118  RealVectorValue db2_dgradp) const;
119 
129  RealVectorValue dvel_dp,
130  Real traceperm,
132  Real db2_dp) const;
133 
135  bool SUPG_trivial() const;
136 
137 protected:
145 
146 private:
148  Real cosh_relation(Real alpha) const;
149 
151  Real cosh_relation_prime(Real alpha) const;
152 };
RichardsSUPGstandard(const InputParameters &parameters)
static InputParameters validParams()
Real _p_SUPG
the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SU...
static const std::string density
Definition: NS.h:33
Real tauSUPG(RealVectorValue vel, Real traceperm, RealVectorValue b) const
The SUPG tau parameter.
RealVectorValue velSUPG(RealTensorValue perm, RealVectorValue gradp, Real density, RealVectorValue gravity) const
SUPG velocity = -perm*(gradp - density*gravity) This points in direction of information propagation...
bool SUPG_trivial() const
returns false in this case since everything is trivial
TensorValue< Real > RealTensorValue
Real dtauSUPG_dp(RealVectorValue vel, RealVectorValue dvel_dp, Real traceperm, RealVectorValue b, Real db2_dp) const
derivative of tau wrt porepressure (keeping gradp fixed)
RealVectorValue bb(RealVectorValue vel, int dimen, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const
|bb| ~ 2*velocity/element_length
base class for SUPG of the Richards equation You must override all the functions below with your spec...
Definition: RichardsSUPG.h:20
Real cosh_relation_prime(Real alpha) const
derivative of cosh_relation wrt alpha
standard SUPG relationships valid for the Richards equation.
RealVectorValue dvelSUPG_dp(RealTensorValue perm, Real density_prime, RealVectorValue gravity) const
derivative of SUPG velocity wrt porepressure (keeping gradp fixed)
RealVectorValue dbb2_dgradp(RealVectorValue vel, RealTensorValue dvel_dgradp, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const
derivative of bb*bb wrt gradient of porepressure
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Definition: NS.h:134
const InputParameters & parameters() const
RealTensorValue dvelSUPG_dgradp(RealTensorValue perm) const
derivative of SUPG velocity wrt gradient of porepressure
Real dbb2_dp(RealVectorValue vel, RealVectorValue dvel_dp, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const
derivative of bb*bb wrt porepressure
RealVectorValue dtauSUPG_dgradp(RealVectorValue vel, RealTensorValue dvel_dgradp, Real traceperm, RealVectorValue b, RealVectorValue db2_dgradp) const
derivative of tau wrt gradient of porepressure
Real cosh_relation(Real alpha) const
cosh(alpha)/sinh(alpha) - 1/alpha, modified at extreme values of alpha to prevent overflows ...