3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual > Class Template Reference

Class used to calculate fluxes over surfaces. This only works for the staggered grid discretization. More...

#include <dumux/freeflow/navierstokes/staggered/fluxoversurface.hh>

Description

template<class GridVariables, class SolutionVector, class ModelTraits, class LocalResidual>
class Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >

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...
 

Member Typedef Documentation

◆ SurfaceList

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
using Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::SurfaceList = std::vector<SurfaceGeometryType>

Constructor & Destructor Documentation

◆ FluxOverSurface()

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
template<class Sol >
Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::FluxOverSurface ( const GridVariables &  gridVariables,
const Sol &  sol 
)
inline

The constructor.

Member Function Documentation

◆ addSurface() [1/3]

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
void Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::addSurface ( const std::string &  name,
const GlobalPosition &  p0,
const GlobalPosition &  p1 
)
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.

Parameters
nameThe name of the surface
p0The first corner
p1The second corner

◆ addSurface() [2/3]

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
void Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::addSurface ( const std::string &  name,
const GlobalPosition &  p0,
const GlobalPosition &  p1,
const GlobalPosition &  p2,
const GlobalPosition &  p3 
)
inline

Add a surface under a given name, specifying the surface's corner points. This is a specialization for 3D.

Parameters
nameThe name of the surface
p0The first corner
p1The second corner
p2The third corner
p3The fourth corner

◆ addSurface() [3/3]

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
void Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::addSurface ( const std::string &  name,
SurfaceList &&  surfaces 
)
inline

Add a collection of sub surfaces under a given name.

Parameters
nameThe name of the surface
surfacesThe list of sub surfaces

◆ calculateFluxes()

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
template<class FluxType >
void Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::calculateFluxes ( const FluxType &  fluxType)
inline

Calculate the fluxes over all surfaces for a given flux type.

Parameters
fluxTypeThe 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 ... ; }

◆ calculateMassOrMoleFluxes()

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
void Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::calculateMassOrMoleFluxes ( )
inline

Calculate the mass or mole fluxes over all surfaces.

◆ calculateVolumeFluxes()

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
void Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::calculateVolumeFluxes ( )
inline

Calculate the volume fluxes over all surfaces.

◆ makeSurface() [1/2]

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
static SurfaceGeometryType Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::makeSurface ( const std::vector< Dune::FieldVector< Scalar, 2 > > &  corners)
inlinestatic

Creates a geometrical surface object for (2D).

Parameters
cornersThe vector storing the surface's corners

◆ makeSurface() [2/2]

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
static SurfaceGeometryType Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::makeSurface ( const std::vector< Dune::FieldVector< Scalar, 3 > > &  corners)
inlinestatic

Creates a geometrical surface object for (3D).

Parameters
cornersThe vector storing the surface's corners

◆ netFlux()

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
auto Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::netFlux ( const std::string &  name) const
inline

Return the cumulative net fluxes of a surface of a given name.

Parameters
nameThe name of the surface

◆ values()

template<class GridVariables , class SolutionVector , class ModelTraits , class LocalResidual >
auto & Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >::values ( const std::string &  name) const
inline

Return the fluxes of the individual sub surface of a given name.

Parameters
nameThe name of the surface

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