dune-pdelab 2.7-git
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Parameters< Number, LType > Class Template Reference

Public Types

using value_type = Number
 

Public Member Functions

 Parameters (const LType &L_)
 
void setTime (Number t_)
 
Number getTime () const
 
Number getT () const
 
Number getTimeStep () const
 
Number getWidth () const
 
Number getHeight () const
 
void setTimeStep (Number dt_)
 
void adjustTimeStep (Number coef)
 
void setOtherTime (Number t_)
 
Number getOtherTime () const
 
Number Sw (const Number &pw_) const
 
Number K (const Number &Sw_) const
 
Number k_relative (const Number &eSw) const
 
Number getphi () const
 
Number getrho () const
 
Number getgrav () const
 
Number getD0 (const Number &Sw_) const
 
Number getD1 (const Number &Sw_) const
 
template<typename E , typename X >
Number g (const E &e, const X &x) const
 
template<typename E , typename X >
Number g_C0 (const E &e, const X &x) const
 
template<typename E , typename X >
Number g_C1 (const E &e, const X &x) const
 
Number harg (Number a, Number b)
 
template<typename I , typename X >
bool b (const I &i, const X &x)
 
template<typename I , typename X >
bool bC0 (const I &i, const X &x)
 
template<typename I , typename X >
bool bC1 (const I &i, const X &x)
 
template<typename I , typename X >
Number inflow (const I &i, const X &x)
 
template<typename I , typename X >
Number inflowC0 (const I &i, const X &x)
 
template<typename I , typename X >
Number inflowC1 (const I &i, const X &x)
 

Detailed Description

template<typename Number, typename LType>
class Parameters< Number, LType >

Program solving water flow and contaminant transport in porous medium. One phase unsaturated water flow is driven by Richards equation, variable is hydraulic head and uses van Genuchten-Mualem model for water retention curve and hydraulic permeability. Contaminant part has two components C0, C1 representing concentrations. They are transported via advection and diffusion (no dispersion).

Whole system is split into two parts: water flow and contaminant transport. Water flow does not depend on contaminants and can be solved separately. The contaminant system is split by operator splitting technique into two parts: advection and diffusion. Second order (in time) symmetric Strang splitting is implemented. Firstly we take half step of convection, then full diffusion step follower by second convection half step. Operator splitting is iterative and we stop iterating when the correction size is small.

All three parts use finite volume elements on a regular 2D axiparallel grid. Time stepping scheme is implicit Euler.

Examples
recipe-operator-splitting.cc.

Member Typedef Documentation

◆ value_type

template<typename Number , typename LType >
using Parameters< Number, LType >::value_type = Number

Constructor & Destructor Documentation

◆ Parameters()

template<typename Number , typename LType >
Parameters< Number, LType >::Parameters ( const LType &  L_)
inline

Member Function Documentation

◆ adjustTimeStep()

template<typename Number , typename LType >
void Parameters< Number, LType >::adjustTimeStep ( Number  coef)
inline

◆ b()

template<typename Number , typename LType >
template<typename I , typename X >
bool Parameters< Number, LType >::b ( const I &  i,
const X &  x 
)
inline

◆ bC0()

template<typename Number , typename LType >
template<typename I , typename X >
bool Parameters< Number, LType >::bC0 ( const I &  i,
const X &  x 
)
inline

◆ bC1()

template<typename Number , typename LType >
template<typename I , typename X >
bool Parameters< Number, LType >::bC1 ( const I &  i,
const X &  x 
)
inline

◆ g()

template<typename Number , typename LType >
template<typename E , typename X >
Number Parameters< Number, LType >::g ( const E &  e,
const X &  x 
) const
inline

◆ g_C0()

template<typename Number , typename LType >
template<typename E , typename X >
Number Parameters< Number, LType >::g_C0 ( const E &  e,
const X &  x 
) const
inline

◆ g_C1()

template<typename Number , typename LType >
template<typename E , typename X >
Number Parameters< Number, LType >::g_C1 ( const E &  e,
const X &  x 
) const
inline

◆ getD0()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getD0 ( const Number &  Sw_) const
inline

◆ getD1()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getD1 ( const Number &  Sw_) const
inline

◆ getgrav()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getgrav ( ) const
inline

◆ getHeight()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getHeight ( ) const
inline

◆ getOtherTime()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getOtherTime ( ) const
inline

◆ getphi()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getphi ( ) const
inline

◆ getrho()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getrho ( ) const
inline

◆ getT()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getT ( ) const
inline

◆ getTime()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getTime ( ) const
inline

◆ getTimeStep()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getTimeStep ( ) const
inline

◆ getWidth()

template<typename Number , typename LType >
Number Parameters< Number, LType >::getWidth ( ) const
inline

◆ harg()

template<typename Number , typename LType >
Number Parameters< Number, LType >::harg ( Number  a,
Number  b 
)
inline

◆ inflow()

template<typename Number , typename LType >
template<typename I , typename X >
Number Parameters< Number, LType >::inflow ( const I &  i,
const X &  x 
)
inline

◆ inflowC0()

template<typename Number , typename LType >
template<typename I , typename X >
Number Parameters< Number, LType >::inflowC0 ( const I &  i,
const X &  x 
)
inline

◆ inflowC1()

template<typename Number , typename LType >
template<typename I , typename X >
Number Parameters< Number, LType >::inflowC1 ( const I &  i,
const X &  x 
)
inline

◆ K()

template<typename Number , typename LType >
Number Parameters< Number, LType >::K ( const Number &  Sw_) const
inline

◆ k_relative()

template<typename Number , typename LType >
Number Parameters< Number, LType >::k_relative ( const Number &  eSw) const
inline

◆ setOtherTime()

template<typename Number , typename LType >
void Parameters< Number, LType >::setOtherTime ( Number  t_)
inline

◆ setTime()

template<typename Number , typename LType >
void Parameters< Number, LType >::setTime ( Number  t_)
inline

◆ setTimeStep()

template<typename Number , typename LType >
void Parameters< Number, LType >::setTimeStep ( Number  dt_)
inline

◆ Sw()

template<typename Number , typename LType >
Number Parameters< Number, LType >::Sw ( const Number &  pw_) const
inline

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