stokesmodel.hh File Reference

A model for the Navier-Stokes equations. More...

#include "stokesproperties.hh"
#include "stokeslocalresidual.hh"
#include "stokesproblem.hh"
#include "stokesindices.hh"
#include "stokesmodel.hh"
#include "stokesintensivequantities.hh"
#include "stokesextensivequantities.hh"
#include "stokesboundaryratevector.hh"
#include <opm/material/fluidsystems/GasPhase.hpp>
#include <opm/material/fluidsystems/LiquidPhase.hpp>
#include <opm/material/components/NullComponent.hpp>
#include <opm/material/heatconduction/FluidConduction.hpp>
#include <opm/material/fluidsystems/SinglePhaseFluidSystem.hpp>
#include <opm/material/fluidstates/CompositionalFluidState.hpp>
#include <ewoms/linear/superlubackend.hh>
#include <dune/common/fvector.hh>
#include <dune/istl/bvector.hh>
#include <sstream>
#include <string>
Include dependency graph for stokesmodel.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Ewoms::StokesModel< TypeTag >
 A model for the Navier-Stokes equations. More...
 
class  Ewoms::StokesModel< TypeTag >
 A model for the Navier-Stokes equations. More...
 

Namespaces

 Ewoms
 
 Ewoms::Properties
 

Functions

 Ewoms::Properties::NEW_TYPE_TAG (StokesModel, INHERITS_FROM(VcfvDiscretization))
 The type tag for the problems using the Stokes equations. More...
 
 Ewoms::Properties::NEW_TYPE_TAG (NavierStokesModel, INHERITS_FROM(StokesModel))
 The type tag for the problems using the Navier-Stokes equations. More...
 
 Ewoms::Properties::SET_PROP (StokesModel, NumEq)
 set the number of equations More...
 
 Ewoms::Properties::SET_INT_PROP (StokesModel, NumPhases, 1)
 the number of phases More...
 
 Ewoms::Properties::SET_INT_PROP (StokesModel, NumComponents, 1)
 the number of components More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, LocalResidual, Ewoms::StokesLocalResidual< TypeTag >)
 Use the Stokes local residual function for the Stokes model. More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, BaseProblem, Ewoms::StokesProblem< TypeTag >)
 Use the Stokes local residual function for the Stokes model. More...
 
 Ewoms::Properties::SET_SCALAR_PROP (StokesModel, NewtonRawTolerance, 1e-7)
 Increase the raw tolerance of the newton method to 10^-7. More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, Model, Ewoms::StokesModel< TypeTag >)
 the Model property More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, IntensiveQuantities, Ewoms::StokesIntensiveQuantities< TypeTag >)
 the IntensiveQuantities property More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, ExtensiveQuantities, Ewoms::StokesExtensiveQuantities< TypeTag >)
 the ExtensiveQuantities property More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, BoundaryRateVector, Ewoms::StokesBoundaryRateVector< TypeTag >)
 the BoundaryRateVector property More...
 
 Ewoms::Properties::SET_PROP (StokesModel, FluidSystem)
 The fluid system to use by default. More...
 
 Ewoms::Properties::SET_PROP (StokesModel, Fluid)
 The fluid that is used in the single-phase fluidsystem. More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, Indices, Ewoms::StokesIndices< TypeTag, 0 >)
 
 Ewoms::Properties::SET_PROP (StokesModel, FluidState)
 Choose the type of the employed fluid state. More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, HeatConductionLaw, Opm::FluidHeatConduction< typename GET_PROP_TYPE(TypeTag, FluidSystem), typename GET_PROP_TYPE(TypeTag, Scalar), GET_PROP_VALUE(TypeTag, StokesPhaseIndex)>)
 set the heat conduction law to a dummy one by default More...
 
 Ewoms::Properties::SET_TYPE_PROP (StokesModel, HeatConductionLawParams, typename GET_PROP_TYPE(TypeTag, HeatConductionLaw)::Params)
 
 Ewoms::Properties::SET_INT_PROP (StokesModel, StokesPhaseIndex, 0)
 Set the phaseIndex per default to zero (important for two-phase fluidsystems). More...
 
 Ewoms::Properties::SET_BOOL_PROP (StokesModel, EnableEnergy, false)
 Disable the energy equation by default. More...
 
 Ewoms::Properties::SET_BOOL_PROP (StokesModel, EnableNavierTerm, false)
 Disable the inertial term for the Stokes model by default. More...
 
 Ewoms::Properties::SET_BOOL_PROP (StokesModel, RequireScvCenterGradients, true)
 
 Ewoms::Properties::SET_BOOL_PROP (NavierStokesModel, EnableNavierTerm, true)
 Enable the inertial term for the Navier-Stokes model. More...
 

Detailed Description

A model for the Navier-Stokes equations.

This model implements Navier-Stokes flow of a single fluid. By default, it solves the momentum balance of the time-dependent Stokes equations, i.e.

\[ \frac{\partial \left(\varrho\,\mathbf{v}\right)} {\partial t} + \boldsymbol{\nabla} p - \nabla \cdot \left( \mu \left(\boldsymbol{\nabla} \mathbf{v} + \boldsymbol{\nabla} *\mathbf{v}^T\right) \right) - \varrho\,\mathbf{g} = 0\;, \]

and the mass balance equation

\[ \frac{\partial \varrho}{\partial t} + \nabla \cdot\left(\varrho\,\mathbf{v}\right) - q = 0 \;. \]

If the property EnableNavierStokes is set to true, an additional convective momentum flux term (Navier term) gets included into the momentum conservation equations which allows to capture turbolent flow regimes. This additional term is given by

\[ \varrho \left(\mathbf{v} \cdot \boldsymbol{\nabla} \right) \mathbf{v} \;. \]

These equations are discretized by a fully-coupled vertex-centered finite volume scheme in space and using the implicit Euler method in time. Be aware, that this discretization scheme is quite unstable for the Navier-Stokes equations and quickly leads to unphysical oscillations in the calculated solution. We intend to use a more appropriate discretization scheme in the future, though.