Mimetic method for the pressure equation. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressure.hh>
Mimetic method for the pressure equation.
Provides a mimetic implementation for the evaluation of equations of the form
\[\text{div}\, \boldsymbol{v}_{total} = q.\]
The definition of the total velocity \(\boldsymbol{v}_total\) depends on the kind of pressure chosen. This could be a wetting (w) phase pressure leading to
\[ - \text{div}\, \left[\lambda \boldsymbol{K} \left(\text{grad}\, p_w + f_n \text{grad}\, p_c + \sum f_\alpha \rho_\alpha g \text{grad}\, z\right)\right] = q, \]
a non-wetting (n) phase pressure yielding
\[ - \text{div}\, \left[\lambda \boldsymbol{K} \left(\text{grad}\, p_n - f_w \text{grad}\, p_c + \sum f_\alpha \rho_\alpha g \text{grad}\, z\right)\right] = q, \]
or a global pressure leading to
\[ - \text{div}\, \left[\lambda \boldsymbol{K} \left(\text{grad}\, p_{global} + \sum f_\alpha \rho_\alpha g \text{grad}\, z\right)\right] = q.\]
Here, \(p\) denotes a pressure, \(\boldsymbol{K}\) the absolute permeability, \(\lambda\) the total mobility, possibly depending on the saturation, \(f\) the fractional flow function of a phase, \(\rho\) a phase density, \(g\) the gravity constant and \(q\) the source term. For all cases, \(p = p_D\) on \(\Gamma_{Neumann}\), and \(\boldsymbol{v}_{total} = q_N\) on \(\Gamma_{Dirichlet}\).
TypeTag | The problem Type Tag |
Public Member Functions | |
void | updateMaterialLaws () |
Constitutive functions are initialized and stored in the variables object. More... | |
void | initialize (bool solveTwice=true) |
Initializes the model. More... | |
void | updateVelocity () |
Velocity update. More... | |
void | update () |
template<class MultiWriter > | |
void | addOutputVtkFields (MultiWriter &writer) |
Write data file. More... | |
void | serializeEntity (std::ostream &outstream, const Element &element) |
General method for serialization, output. More... | |
void | deserializeEntity (std::istream &instream, const Element &element) |
General method for deserialization. More... | |
MimeticPressure2P (Problem &problem) | |
Constructs a MimeticPressure2P object. More... | |
|
inline |
Constructs a MimeticPressure2P object.
problem | The Dumux problem |
|
inline |
Write data file.
MultiWriter | Class defining the output writer |
writer | The output writer (usually a VTKMultiWriter object) |
|
inline |
General method for deserialization.
instream | The input stream |
element | The grid element |
|
inline |
Initializes the model.
Function initializes the sparse matrix to solve the global system of equations and sets/calculates the initial pressure.
solveTwice | indicates if more than one iteration is allowed to get an initial pressure solution |
|
inline |
General method for serialization, output.
Function needed for restart option.
outstream | The output stream |
element | The grid element |
|
inline |
void Dumux::MimeticPressure2P< TypeTag >::updateMaterialLaws |
Constitutive functions are initialized and stored in the variables object.
Constitutive functions are updated once if new saturations are calculated and stored in the variables object.
|
inline |
Velocity update.
Reset the velocities in the cellData.