Class used to calculate fluxes over surfaces. This only works for the staggered grid discretization. More...
#include <dumux/freeflow/navierstokes/staggered/fluxoversurface.hh>
Class used to calculate fluxes over surfaces. This only works for the staggered grid discretization.
Public Types | |
using | SurfaceList = std::vector< SurfaceGeometryType > |
Public Member Functions | |
template<class Sol > | |
FluxOverSurface (const GridVariables &gridVariables, const Sol &sol) | |
The constructor. More... | |
void | addSurface (const std::string &name, SurfaceList &&surfaces) |
Add a collection of sub surfaces under a given name. More... | |
void | addSurface (const std::string &name, const GlobalPosition &p0, const GlobalPosition &p1) |
Add a surface under a given name, specifying the surface's corner points. This is a specialization for 2D, therefore the surface is actually a line. More... | |
void | addSurface (const std::string &name, const GlobalPosition &p0, const GlobalPosition &p1, const GlobalPosition &p2, const GlobalPosition &p3) |
Add a surface under a given name, specifying the surface's corner points. This is a specialization for 3D. More... | |
void | calculateMassOrMoleFluxes () |
Calculate the mass or mole fluxes over all surfaces. More... | |
void | calculateVolumeFluxes () |
Calculate the volume fluxes over all surfaces. More... | |
template<class FluxType > | |
void | calculateFluxes (const FluxType &fluxType) |
Calculate the fluxes over all surfaces for a given flux type. More... | |
auto & | values (const std::string &name) const |
Return the fluxes of the individual sub surface of a given name. More... | |
auto | netFlux (const std::string &name) const |
Return the cumulative net fluxes of a surface of a given name. More... | |
Static Public Member Functions | |
static SurfaceGeometryType | makeSurface (const std::vector< Dune::FieldVector< Scalar, 2 > > &corners) |
Creates a geometrical surface object for (2D). More... | |
static SurfaceGeometryType | makeSurface (const std::vector< Dune::FieldVector< Scalar, 3 > > &corners) |
Creates a geometrical surface object for (3D). More... | |
using Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::SurfaceList = std::vector<SurfaceGeometryType> |
|
inline |
The constructor.
|
inline |
Add a surface under a given name, specifying the surface's corner points. This is a specialization for 2D, therefore the surface is actually a line.
name | The name of the surface |
p0 | The first corner |
p1 | The second corner |
|
inline |
Add a surface under a given name, specifying the surface's corner points. This is a specialization for 3D.
name | The name of the surface |
p0 | The first corner |
p1 | The second corner |
p2 | The third corner |
p3 | The fourth corner |
|
inline |
Add a collection of sub surfaces under a given name.
name | The name of the surface |
surfaces | The list of sub surfaces |
|
inline |
Calculate the fluxes over all surfaces for a given flux type.
fluxType | The flux type. This can be a lambda of the following form: [](const auto& element, const auto& fvGeometry, const auto& elemVolVars, const auto& elemFaceVars, const auto& scvf, const auto& elemFluxVarsCache) { return ... ; } |
|
inline |
Calculate the mass or mole fluxes over all surfaces.
|
inline |
Calculate the volume fluxes over all surfaces.
|
inlinestatic |
Creates a geometrical surface object for (2D).
corners | The vector storing the surface's corners |
|
inlinestatic |
Creates a geometrical surface object for (3D).
corners | The vector storing the surface's corners |
|
inline |
Return the cumulative net fluxes of a surface of a given name.
name | The name of the surface |
|
inline |
Return the fluxes of the individual sub surface of a given name.
name | The name of the surface |