version 3.10-dev
Dumux::WallDistance< GridGeometry, DistanceField > Class Template Reference

Class to calculate the wall distance at every element or vertex of a grid. More...

#include <dumux/discretization/walldistance.hh>

Description

template<class GridGeometry, template< class > class DistanceField = AABBDistanceField>
class Dumux::WallDistance< GridGeometry, DistanceField >
Template Parameters
GridGeometryThe grid geometry.
DistanceFieldThe type of distance field to use (parameterized with the geometry type)

Public Types

using WallData = WallDataImpl
 

Public Member Functions

template<class LocationTag , class ScvfSelectionFunctor >
 WallDistance (std::shared_ptr< const GridGeometry > gridGeometry, LocationTag tag, const ScvfSelectionFunctor &select)
 Constructs a new wall distance object. More...
 
template<class LocationTag >
 WallDistance (std::shared_ptr< const GridGeometry > gridGeometry, LocationTag tag)
 Constructs a new wall distance object. More...
 
template<class LocationTag , class ScvfSelectionFunctor >
 WallDistance (const GridGeometry &gridGeometry, LocationTag tag, const ScvfSelectionFunctor &select)
 caller has to make sure the lifetime of grid geometry exceeds the lifetime of wall distance More...
 
template<class LocationTag >
 WallDistance (const GridGeometry &gridGeometry, LocationTag tag)
 caller has to make sure the lifetime of grid geometry exceeds the lifetime of wall distance More...
 
const std::vector< Scalar > & wallDistance () const
 Returns a vector storing the distance from each DOF location to the nearest wall. For the atElementCenter policy, this is the distance from the element center to the nearest wall. For the atVertexCenter policy, this is the distance from the vertex to the nearest wall. More...
 
const std::vector< WallData > & wallData () const
 Returns a vector storing additional information about the nearest scvf on the wall (element index and scvf index). For the atElementCenter policy, this information is given for each element For the atVertexCenter policy, this information is given for each vertex. More...
 

Static Public Attributes

static constexpr auto atElementCenters = Utility::Tag<ElementCenters>{}
 
static constexpr auto atVertexCenters = Utility::Tag<VertexCenters>{}
 

Member Typedef Documentation

◆ WallData

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
using Dumux::WallDistance< GridGeometry, DistanceField >::WallData = WallDataImpl

Constructor & Destructor Documentation

◆ WallDistance() [1/4]

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
template<class LocationTag , class ScvfSelectionFunctor >
Dumux::WallDistance< GridGeometry, DistanceField >::WallDistance ( std::shared_ptr< const GridGeometry >  gridGeometry,
LocationTag  tag,
const ScvfSelectionFunctor &  select 
)
inline
Parameters
gridGeometrythe grid geometry of the grid
tagthe policy (either WallDistance::atElementCenters or WallDistance::atVertexCenters)
selecta selection functor taking an scvf and returning bool signifying whether the scvfs is part of the wall

◆ WallDistance() [2/4]

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
template<class LocationTag >
Dumux::WallDistance< GridGeometry, DistanceField >::WallDistance ( std::shared_ptr< const GridGeometry >  gridGeometry,
LocationTag  tag 
)
inline
Parameters
gridGeometrythe grid geometry of the grid
tagthe policy (either WallDistance::atElementCenters or WallDistance::atVertexCenters)
Note
selects all boundary scvfs as wall faces

◆ WallDistance() [3/4]

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
template<class LocationTag , class ScvfSelectionFunctor >
Dumux::WallDistance< GridGeometry, DistanceField >::WallDistance ( const GridGeometry &  gridGeometry,
LocationTag  tag,
const ScvfSelectionFunctor &  select 
)
inline

◆ WallDistance() [4/4]

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
template<class LocationTag >
Dumux::WallDistance< GridGeometry, DistanceField >::WallDistance ( const GridGeometry &  gridGeometry,
LocationTag  tag 
)
inline

Member Function Documentation

◆ wallData()

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
const std::vector< WallData > & Dumux::WallDistance< GridGeometry, DistanceField >::wallData ( ) const
inline

◆ wallDistance()

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
const std::vector< Scalar > & Dumux::WallDistance< GridGeometry, DistanceField >::wallDistance ( ) const
inline

Member Data Documentation

◆ atElementCenters

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
constexpr auto Dumux::WallDistance< GridGeometry, DistanceField >::atElementCenters = Utility::Tag<ElementCenters>{}
staticconstexpr

◆ atVertexCenters

template<class GridGeometry , template< class > class DistanceField = AABBDistanceField>
constexpr auto Dumux::WallDistance< GridGeometry, DistanceField >::atVertexCenters = Utility::Tag<VertexCenters>{}
staticconstexpr

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