v0.9.1
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
MixTransport::MaterialVanGenuchten Struct Reference

#include <users_modules/basic_finite_elements/mix_transport/src/MaterialUnsaturatedFlow.hpp>

Inheritance diagram for MixTransport::MaterialVanGenuchten:
[legend]
Collaboration diagram for MixTransport::MaterialVanGenuchten:
[legend]

Public Member Functions

 MaterialVanGenuchten (const CommonMaterialData &data)
 
template<typename TYPE >
TYPE funTheta (TYPE &h, const double m)
 
template<typename TYPE >
TYPE funFunSeStar (TYPE &SeStar, const double m)
 
adouble funKr (adouble &ah)
 
virtual void recordTheta ()
 
virtual void recordKr ()
 
void printTheta (const double b, const double e, double s, const std::string &prefix)
 
void printKappa (const double b, const double e, double s, const std::string &prefix)
 
void printC (const double b, const double e, double s, const std::string &prefix)
 
- Public Member Functions inherited from MixTransport::MaterialWithAutomaticDifferentiation
 MaterialWithAutomaticDifferentiation (const CommonMaterialData &data)
 
template<typename TYPE >
TYPE funSe (TYPE &theta)
 
MoFEMErrorCode calK ()
 
MoFEMErrorCode calDiffK ()
 
MoFEMErrorCode calC ()
 
MoFEMErrorCode calDiffC ()
 
MoFEMErrorCode calTheta ()
 
MoFEMErrorCode calSe ()
 
- Public Member Functions inherited from MixTransport::CommonMaterialData
 CommonMaterialData ()
 
double initialPcEval () const
 Initialize head. More...
 
void addOptions (po::options_description &o, const std::string &prefix)
 
void printMatParameters (const int id, const std::string &prefix) const
 
- Public Member Functions inherited from MixTransport::GenericMaterial
virtual ~GenericMaterial ()
 

Static Public Member Functions

static boost::shared_ptr< CommonMaterialDatacreateMatPtr (const CommonMaterialData &data)
 

Public Attributes

adouble ah
 
adouble aTheta
 
adouble aKr
 
adouble aSe
 
adouble aSeStar
 
- Public Attributes inherited from MixTransport::MaterialWithAutomaticDifferentiation
double Kr
 
double diffKr
 
- Public Attributes inherited from MixTransport::CommonMaterialData
int blockId
 Block Id. More...
 
std::string matName
 material name More...
 
double Ks
 Saturated hydraulic conductivity [m/day]. More...
 
double hS
 minimum capillary height [m] More...
 
double thetaS
 saturated water content More...
 
double thetaR
 residual water contents More...
 
double thetaM
 model parameter More...
 
double alpha
 model parameter More...
 
double n
 model parameter More...
 
double Ah
 Initial hydraulic head coefficient. More...
 
double AhZ
 Initial hydraulic head coefficient. More...
 
double AhZZ
 Initial hydraulic head coefficient. More...
 
- Public Attributes inherited from MixTransport::GenericMaterial
double sCale
 Scale time dependent eq. More...
 
double h
 hydraulic head More...
 
double h_t
 rate of hydraulic head More...
 
double K
 Hydraulic conductivity [L/s]. More...
 
double diffK
 Derivative of hydraulic conductivity [L/s * L^2/F]. More...
 
double C
 Capacity [S^2/L^2]. More...
 
double diffC
 Derivative of capacity [S^2/L^2 * L^2/F ]. More...
 
double tHeta
 Water content. More...
 
double Se
 Effective saturation. More...
 
Range tEts
 Elements with this material. More...
 
double x
 
double y
 
double z
 in meters (L) More...
 

Additional Inherited Members

- Public Types inherited from MixTransport::CommonMaterialData
typedef boost::function< boost::shared_ptr< CommonMaterialData > const CommonMaterialData &data)> RegisterHook
 
- Static Public Attributes inherited from MixTransport::GenericMaterial
static double ePsilon0 = 0
 Regularization parameter. More...
 
static double ePsilon1 = 0
 Regularization parameter. More...
 
static double scaleZ = 1
 Scale z direction. More...
 

Detailed Description

Examples
unsaturated_transport.cpp.

Definition at line 254 of file MaterialUnsaturatedFlow.hpp.

Constructor & Destructor Documentation

◆ MaterialVanGenuchten()

MixTransport::MaterialVanGenuchten::MaterialVanGenuchten ( const CommonMaterialData data)

Member Function Documentation

◆ createMatPtr()

static boost::shared_ptr<CommonMaterialData> MixTransport::MaterialVanGenuchten::createMatPtr ( const CommonMaterialData data)
static

Definition at line 257 of file MaterialUnsaturatedFlow.hpp.

257  {
258  return boost::shared_ptr<CommonMaterialData>(
259  new MaterialVanGenuchten(data));
260  }
MaterialVanGenuchten(const CommonMaterialData &data)

◆ funFunSeStar()

template<typename TYPE >
TYPE MixTransport::MaterialVanGenuchten::funFunSeStar ( TYPE &  SeStar,
const double  m 
)

Definition at line 279 of file MaterialUnsaturatedFlow.hpp.

279  {
280  return pow(1 - pow(SeStar, 1 / m), m);
281  }
FTensor::Index< 'm', 2 > m
Definition: PlasticOps.hpp:67

◆ funKr()

adouble MixTransport::MaterialVanGenuchten::funKr ( adouble ah)

Definition at line 283 of file MaterialUnsaturatedFlow.hpp.

283  {
284  const double m = 1 - 1 / n;
285  aTheta = funTheta(ah, m);
286  aSe = funSe(aTheta);
287  aSeStar = aSe * (thetaS - thetaR) / (thetaM - thetaR);
288  double one = 1;
289  const double c = funFunSeStar<double>(one, m);
290  return sqrt(aSe) *
291  pow((1 - funFunSeStar<adouble>(aSeStar, m)) / (1 - c), 2);
292  }
double thetaS
saturated water content
FTensor::Index< 'm', 2 > m
Definition: PlasticOps.hpp:67
TYPE funTheta(TYPE &h, const double m)
double thetaR
residual water contents

◆ funTheta()

template<typename TYPE >
TYPE MixTransport::MaterialVanGenuchten::funTheta ( TYPE &  h,
const double  m 
)

Definition at line 274 of file MaterialUnsaturatedFlow.hpp.

274  {
275  return thetaR + (thetaM - thetaR) / pow(1 + pow(-alpha * h, n), m);
276  }
FTensor::Index< 'm', 2 > m
Definition: PlasticOps.hpp:67
double thetaR
residual water contents

◆ printC()

void MixTransport::MaterialVanGenuchten::printC ( const double  b,
const double  e,
double  s,
const std::string &  prefix 
)
Examples
unsaturated_transport.cpp.

Definition at line 339 of file MaterialUnsaturatedFlow.hpp.

340  {
341  h = b;
342  for (; h >= e; h += s) {
343  s = -pow(-s, 0.9);
344  calC();
345  PetscPrintf(PETSC_COMM_SELF, "%s %6.4e %6.4e\n", prefix.c_str(), h, C);
346  }
347  }
double C
Capacity [S^2/L^2].

◆ printKappa()

void MixTransport::MaterialVanGenuchten::printKappa ( const double  b,
const double  e,
double  s,
const std::string &  prefix 
)
Examples
unsaturated_transport.cpp.

Definition at line 328 of file MaterialUnsaturatedFlow.hpp.

329  {
330  h = b;
331  for (; h >= e; h += s) {
332  s = -pow(-s, 0.9);
333  calK();
334  PetscPrintf(PETSC_COMM_SELF, "%s %6.4e %6.4e %6.4e\n", prefix.c_str(), h,
335  Kr, K);
336  }
337  }
double K
Hydraulic conductivity [L/s].

◆ printTheta()

void MixTransport::MaterialVanGenuchten::printTheta ( const double  b,
const double  e,
double  s,
const std::string &  prefix 
)
Examples
unsaturated_transport.cpp.

Definition at line 315 of file MaterialUnsaturatedFlow.hpp.

316  {
317  const double m = 1 - 1 / n;
318  h = b;
319  for (; h >= e; h += s) {
320  s = -pow(-s, 0.9);
321  double theta = funTheta(h, m);
322  double Se = (theta - thetaR) / (thetaS - thetaR);
323  PetscPrintf(PETSC_COMM_SELF, "%s %6.4e %6.4e %6.4e\n", prefix.c_str(), h,
324  theta, Se);
325  }
326  }
double thetaS
saturated water content
FTensor::Index< 'm', 2 > m
Definition: PlasticOps.hpp:67
double Se
Effective saturation.
TYPE funTheta(TYPE &h, const double m)
double thetaR
residual water contents

◆ recordKr()

virtual void MixTransport::MaterialVanGenuchten::recordKr ( )
virtual

Implements MixTransport::MaterialWithAutomaticDifferentiation.

Definition at line 305 of file MaterialUnsaturatedFlow.hpp.

305  {
306  h = -1 - hS;
307  trace_on(2 * blockId + 1, true);
308  ah <<= h;
309  aKr = funKr(ah);
310  double r_Kr;
311  aKr >>= r_Kr;
312  trace_off();
313  }
double hS
minimum capillary height [m]

◆ recordTheta()

virtual void MixTransport::MaterialVanGenuchten::recordTheta ( )
virtual

Implements MixTransport::MaterialWithAutomaticDifferentiation.

Definition at line 294 of file MaterialUnsaturatedFlow.hpp.

294  {
295  h = -1 - hS;
296  trace_on(2 * blockId + 0, true);
297  ah <<= h;
298  const double m = 1 - 1 / n;
299  aTheta = funTheta(ah, m);
300  double r_theta;
301  aTheta >>= r_theta;
302  trace_off();
303  }
double hS
minimum capillary height [m]
FTensor::Index< 'm', 2 > m
Definition: PlasticOps.hpp:67
TYPE funTheta(TYPE &h, const double m)

Member Data Documentation

◆ ah

adouble MixTransport::MaterialVanGenuchten::ah

Definition at line 268 of file MaterialUnsaturatedFlow.hpp.

◆ aKr

adouble MixTransport::MaterialVanGenuchten::aKr

Definition at line 270 of file MaterialUnsaturatedFlow.hpp.

◆ aSe

adouble MixTransport::MaterialVanGenuchten::aSe

Definition at line 271 of file MaterialUnsaturatedFlow.hpp.

◆ aSeStar

adouble MixTransport::MaterialVanGenuchten::aSeStar

Definition at line 272 of file MaterialUnsaturatedFlow.hpp.

◆ aTheta

adouble MixTransport::MaterialVanGenuchten::aTheta

Definition at line 269 of file MaterialUnsaturatedFlow.hpp.


The documentation for this struct was generated from the following file: