3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Dumux::StaggeredFreeFlowBoundaryTypes< numEq > Class Template Reference

Class to specify the type of a boundary condition for the staggered Navier-Stokes model. More...

#include <dumux/discretization/staggered/freeflow/boundarytypes.hh>

Inheritance diagram for Dumux::StaggeredFreeFlowBoundaryTypes< numEq >:
Inheritance graph

Description

template<int numEq>
class Dumux::StaggeredFreeFlowBoundaryTypes< numEq >

Class to specify the type of a boundary condition for the staggered Navier-Stokes model.

Classes

struct  StaggeredFreeFlowBoundaryInfo
 

Public Member Functions

 StaggeredFreeFlowBoundaryTypes ()
 
void resetEq (int eqIdx)
 Reset the boundary types for one equation. More...
 
void setAllSymmetry ()
 Sets a symmetry boundary condition for all equations. More...
 
bool isSymmetry () const
 Returns true if the there is a symmetry boundary condition. More...
 
template<class T = void>
void setAllDirichlet ()
 Prevent setting all boundary conditions to Dirichlet. More...
 
template<class T = void>
void setAllNeumann ()
 Prevent setting all boundary conditions to Neumann. More...
 
void setBJS (int eqIdx)
 Set a boundary condition for a single equation to Beavers-Joseph-Saffman (special case of Dirichlet b.c.). More...
 
void setBeaversJoseph (unsigned eqIdx)
 Set a boundary condition for a single equation to Beavers-Joseph(-Saffmann) (special case of Dirichlet b.c.). More...
 
bool isBJS (unsigned eqIdx) const
 Returns true if an equation is used to specify a Beavers-Joseph-Saffman boundary condition. More...
 
bool isBeaversJoseph (unsigned eqIdx) const
 Returns true if an equation is used to specify a Beavers-Joseph(-Saffman) boundary condition. More...
 
bool hasBJS () const
 Returns true if some equation is used to specify a Beavers-Joseph-Saffman boundary condition. More...
 
bool hasBeaversJoseph () const
 Returns true if some equation is used to specify a Beavers-Joseph(-Saffman) boundary condition. More...
 
void reset ()
 Reset the boundary types for all equations. More...
 
bool isSet (int eqIdx) const
 Returns true if the boundary types for a given equation has been specified. More...
 
void checkWellPosed () const
 Make sure the boundary conditions are well-posed. More...
 
void setAllOutflow ()
 Set all boundary conditions to Neumann. More...
 
void setAllCouplingDirichlet ()
 Set all boundary conditions to Dirichlet-like coupling. More...
 
void setAllCouplingNeumann ()
 Set all boundary conditions to Neumann-like coupling. More...
 
void setNeumann (int eqIdx)
 Set a Neumann boundary condition for a single a single equation. More...
 
void setDirichlet (int pvIdx, int eqIdx)
 Set a Dirichlet boundary condition for a single primary variable. More...
 
void setDirichlet (int pvIdx)
 Set a Dirichlet boundary condition for a single primary variable. More...
 
void setOutflow (int eqIdx)
 Set a Neumann boundary condition for a single a single equation. More...
 
void setCouplingDirichlet (int eqIdx)
 Set a boundary condition for a single equation to a Dirichlet-like coupling condition. More...
 
void setCouplingNeumann (int eqIdx)
 Set a boundary condition for a single equation to a Neumann-like coupling condition. More...
 
bool isDirichlet (unsigned eqIdx) const
 Returns true if an equation is used to specify a Dirichlet condition. More...
 
bool hasOnlyDirichlet () const
 Returns true if all equations are used to specify a Dirichlet condition. More...
 
bool hasDirichlet () const
 Returns true if some equation is used to specify a Dirichlet condition. More...
 
bool isNeumann (unsigned eqIdx) const
 Returns true if an equation is used to specify a Neumann condition. More...
 
bool hasOnlyNeumann () const
 Returns true if all equations are used to specify a Neumann condition. More...
 
bool hasNeumann () const
 Returns true if some equation is used to specify a Neumann condition. More...
 
bool isOutflow (unsigned eqIdx) const
 Returns true if an equation is used to specify an outflow condition. More...
 
bool hasOutflow () const
 Returns true if some equation is used to specify an outflow condition. More...
 
bool isCouplingDirichlet (unsigned eqIdx) const
 Returns true if an equation is used to specify an Dirichlet coupling condition. More...
 
bool hasCouplingDirichlet () const
 Returns true if some equation is used to specify an Dirichlet coupling condition. More...
 
bool isCouplingNeumann (unsigned eqIdx) const
 Returns true if an equation is used to specify an Neumann coupling condition. More...
 
bool hasCouplingNeumann () const
 Returns true if some equation is used to specify an Neumann coupling condition. More...
 
bool isCoupling (unsigned eqIdx) const
 Returns true if an equation is used to specify a coupling condition. More...
 
bool hasCoupling () const
 Returns true if some equation is used to specify a coupling condition. More...
 
unsigned dirichletToEqIndex (unsigned pvIdx) const
 Returns the index of the equation which should be used for the Dirichlet condition of the pvIdx's primary variable. More...
 
unsigned eqToDirichletIndex (unsigned eqIdx) const
 Returns the index of the primary variable which should be used for the Dirichlet condition given an equation index. More...
 

Static Public Member Functions

static constexpr int size ()
 we have a boundary condition for each equation More...
 

Protected Attributes

std::array< StaggeredFreeFlowBoundaryInfo, numEq > boundaryInfo_
 
std::array< unsigned int, numEq > eq2pvIdx_
 
std::array< unsigned int, numEq > pv2eqIdx_
 

Constructor & Destructor Documentation

◆ StaggeredFreeFlowBoundaryTypes()

template<int numEq>
Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::StaggeredFreeFlowBoundaryTypes ( )
inline

Member Function Documentation

◆ checkWellPosed()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::checkWellPosed ( ) const
inlineinherited

Make sure the boundary conditions are well-posed.

If they are not, an assertion fails and the program aborts! (if the NDEBUG macro is not defined)

◆ dirichletToEqIndex()

template<int numEq>
unsigned Dumux::BoundaryTypes< numEq >::dirichletToEqIndex ( unsigned  pvIdx) const
inlineinherited

Returns the index of the equation which should be used for the Dirichlet condition of the pvIdx's primary variable.

Parameters
pvIdxThe index of the primary variable which is be set by the Dirichlet condition.

◆ eqToDirichletIndex()

template<int numEq>
unsigned Dumux::BoundaryTypes< numEq >::eqToDirichletIndex ( unsigned  eqIdx) const
inlineinherited

Returns the index of the primary variable which should be used for the Dirichlet condition given an equation index.

Parameters
eqIdxThe index of the equation which is used to set the Dirichlet condition.

◆ hasBeaversJoseph()

template<int numEq>
bool Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::hasBeaversJoseph ( ) const
inline

Returns true if some equation is used to specify a Beavers-Joseph(-Saffman) boundary condition.

◆ hasBJS()

template<int numEq>
bool Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::hasBJS ( ) const
inline

Returns true if some equation is used to specify a Beavers-Joseph-Saffman boundary condition.

◆ hasCoupling()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasCoupling ( ) const
inlineinherited

Returns true if some equation is used to specify a coupling condition.

◆ hasCouplingDirichlet()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasCouplingDirichlet ( ) const
inlineinherited

Returns true if some equation is used to specify an Dirichlet coupling condition.

◆ hasCouplingNeumann()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasCouplingNeumann ( ) const
inlineinherited

Returns true if some equation is used to specify an Neumann coupling condition.

◆ hasDirichlet()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasDirichlet ( ) const
inlineinherited

Returns true if some equation is used to specify a Dirichlet condition.

◆ hasNeumann()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasNeumann ( ) const
inlineinherited

Returns true if some equation is used to specify a Neumann condition.

◆ hasOnlyDirichlet()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasOnlyDirichlet ( ) const
inlineinherited

Returns true if all equations are used to specify a Dirichlet condition.

◆ hasOnlyNeumann()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasOnlyNeumann ( ) const
inlineinherited

Returns true if all equations are used to specify a Neumann condition.

◆ hasOutflow()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::hasOutflow ( ) const
inlineinherited

Returns true if some equation is used to specify an outflow condition.

◆ isBeaversJoseph()

template<int numEq>
bool Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::isBeaversJoseph ( unsigned  eqIdx) const
inline

Returns true if an equation is used to specify a Beavers-Joseph(-Saffman) boundary condition.

Parameters
eqIdxThe index of the equation

◆ isBJS()

template<int numEq>
bool Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::isBJS ( unsigned  eqIdx) const
inline

Returns true if an equation is used to specify a Beavers-Joseph-Saffman boundary condition.

Parameters
eqIdxThe index of the equation

◆ isCoupling()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isCoupling ( unsigned  eqIdx) const
inlineinherited

Returns true if an equation is used to specify a coupling condition.

Parameters
eqIdxThe index of the equation

◆ isCouplingDirichlet()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isCouplingDirichlet ( unsigned  eqIdx) const
inlineinherited

Returns true if an equation is used to specify an Dirichlet coupling condition.

Parameters
eqIdxThe index of the equation

◆ isCouplingNeumann()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isCouplingNeumann ( unsigned  eqIdx) const
inlineinherited

Returns true if an equation is used to specify an Neumann coupling condition.

Parameters
eqIdxThe index of the equation

◆ isDirichlet()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isDirichlet ( unsigned  eqIdx) const
inlineinherited

Returns true if an equation is used to specify a Dirichlet condition.

Parameters
eqIdxThe index of the equation

◆ isNeumann()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isNeumann ( unsigned  eqIdx) const
inlineinherited

Returns true if an equation is used to specify a Neumann condition.

Parameters
eqIdxThe index of the equation

◆ isOutflow()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isOutflow ( unsigned  eqIdx) const
inlineinherited

Returns true if an equation is used to specify an outflow condition.

Parameters
eqIdxThe index of the equation

◆ isSet()

template<int numEq>
bool Dumux::BoundaryTypes< numEq >::isSet ( int  eqIdx) const
inlineinherited

Returns true if the boundary types for a given equation has been specified.

Parameters
eqIdxThe index of the equation

◆ isSymmetry()

template<int numEq>
bool Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::isSymmetry ( ) const
inline

Returns true if the there is a symmetry boundary condition.

◆ reset()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::reset ( )
inlineinherited

Reset the boundary types for all equations.

After this method no equations will be disabled and neither Neumann nor Dirichlet conditions will be evaluated. This corresponds to a Neumann zero boundary.

◆ resetEq()

template<int numEq>
void Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::resetEq ( int  eqIdx)
inline

Reset the boundary types for one equation.

◆ setAllCouplingDirichlet()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setAllCouplingDirichlet ( )
inlineinherited

Set all boundary conditions to Dirichlet-like coupling.

◆ setAllCouplingNeumann()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setAllCouplingNeumann ( )
inlineinherited

Set all boundary conditions to Neumann-like coupling.

◆ setAllDirichlet()

template<int numEq>
template<class T = void>
void Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::setAllDirichlet ( )
inline

Prevent setting all boundary conditions to Dirichlet.

◆ setAllNeumann()

template<int numEq>
template<class T = void>
void Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::setAllNeumann ( )
inline

Prevent setting all boundary conditions to Neumann.

◆ setAllOutflow()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setAllOutflow ( )
inlineinherited

Set all boundary conditions to Neumann.

◆ setAllSymmetry()

template<int numEq>
void Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::setAllSymmetry ( )
inline

Sets a symmetry boundary condition for all equations.

◆ setBeaversJoseph()

template<int numEq>
void Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::setBeaversJoseph ( unsigned  eqIdx)
inline

Set a boundary condition for a single equation to Beavers-Joseph(-Saffmann) (special case of Dirichlet b.c.).

◆ setBJS()

template<int numEq>
void Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::setBJS ( int  eqIdx)
inline

Set a boundary condition for a single equation to Beavers-Joseph-Saffman (special case of Dirichlet b.c.).

◆ setCouplingDirichlet()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setCouplingDirichlet ( int  eqIdx)
inlineinherited

Set a boundary condition for a single equation to a Dirichlet-like coupling condition.

◆ setCouplingNeumann()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setCouplingNeumann ( int  eqIdx)
inlineinherited

Set a boundary condition for a single equation to a Neumann-like coupling condition.

◆ setDirichlet() [1/2]

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setDirichlet ( int  pvIdx)
inlineinherited

Set a Dirichlet boundary condition for a single primary variable.

Depending on the discretization, setting the Dirichlet condition will replace the balance equation with index equal to pvIdx.

Parameters
pvIdxThe index of the primary variable inside a PrimaryVariables object.

◆ setDirichlet() [2/2]

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setDirichlet ( int  pvIdx,
int  eqIdx 
)
inlineinherited

Set a Dirichlet boundary condition for a single primary variable.

Parameters
pvIdxThe index of the primary variable for which the Dirichlet condition should apply.
eqIdxThe index of the equation which should used to set the Dirichlet condition

◆ setNeumann()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setNeumann ( int  eqIdx)
inlineinherited

Set a Neumann boundary condition for a single a single equation.

Parameters
eqIdxThe index of the equation

◆ setOutflow()

template<int numEq>
void Dumux::BoundaryTypes< numEq >::setOutflow ( int  eqIdx)
inlineinherited

Set a Neumann boundary condition for a single a single equation.

Parameters
eqIdxThe index of the equation on which the outflow condition applies.

◆ size()

template<int numEq>
static constexpr int Dumux::BoundaryTypes< numEq >::size ( )
inlinestaticconstexprinherited

we have a boundary condition for each equation

Member Data Documentation

◆ boundaryInfo_

template<int numEq>
std::array<StaggeredFreeFlowBoundaryInfo, numEq> Dumux::StaggeredFreeFlowBoundaryTypes< numEq >::boundaryInfo_
protected

◆ eq2pvIdx_

template<int numEq>
std::array<unsigned int, numEq> Dumux::BoundaryTypes< numEq >::eq2pvIdx_
protectedinherited

◆ pv2eqIdx_

template<int numEq>
std::array<unsigned int, numEq> Dumux::BoundaryTypes< numEq >::pv2eqIdx_
protectedinherited

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