Proto  3.2
Static Public Member Functions | List of all members
Proto::BoundaryCondition Class Reference

Library of utility functions for assisiting in the application of boundary conditions. More...

#include <Proto_BoundaryCondition.H>

Static Public Member Functions

static Box Boundary (Box domainBox, Face face)
 Returns the Box corresponding to the boundary of domainBox on face. For low-faces along the axis dir, the output is domainBox.edge(dir). For high-faces, the output is domainBox.adjacent(dir). That is to say, Low boundaries are contained within domainBox and high boundaries are just outside of domainBox. This is the convention used in all of Proto. More...
 
template<class T >
static BCStencil< T > DirichletStencil (T dx, Face face, int fluxCoord)
 Generates the BCStencil object needed to apply a dirichlet boundary condition to a flux in direction dir on a specified face. More...
 
template<class T , unsigned int C, MemType MEM, unsigned int D, unsigned int E>
static void Dirichlet (Array< BoxData< T, C, MEM, D, E >, DIM > &fluxes, const BoxData< T, C, MEM, D, E > &state, T dirichletBCValue, Face face, Box interiorBox, Array< T, DIM > dx)
 Applies a constant dirichlet boundary condition on a specified face by updating the fluxes in all directions. More...
 
template<class T , unsigned int C, MemType MEM, unsigned int D, unsigned int E>
static void Dirichlet (Array< BoxData< T, C, MEM, D, E >, DIM > &fluxes, const BoxData< T, C, MEM, D, E > &state, const BoxData< T, C, MEM, D, E > &dirichletBCvalues, Face face, Box interiorBox, Array< T, DIM > dx)
 Applies a variable dirichlet boundary condition on a specified face by updating the fluxes in all directions. More...
 

Detailed Description

Library of utility functions for assisiting in the application of boundary conditions.

Member Function Documentation

◆ Boundary()

Box Proto::BoundaryCondition::Boundary ( Box  domainBox,
Face  face 
)
inlinestatic

Returns the Box corresponding to the boundary of domainBox on face. For low-faces along the axis dir, the output is domainBox.edge(dir). For high-faces, the output is domainBox.adjacent(dir). That is to say, Low boundaries are contained within domainBox and high boundaries are just outside of domainBox. This is the convention used in all of Proto.

Parameters
domainBox- The Box corresponding to the interior of a domain
face- The face of domainBox whose boundary Box is to be computed

◆ DirichletStencil()

template<class T >
BCStencil< T > Proto::BoundaryCondition::DirichletStencil ( dx,
Face  face,
int  fluxCoord 
)
inlinestatic

Generates the BCStencil object needed to apply a dirichlet boundary condition to a flux in direction dir on a specified face.

Parameters
dx- Grid spacing
face- The face corresponding to the boundary condition
fluxDir- Coordinate of the flux being updated. Can be normal or tangential

◆ Dirichlet() [1/2]

template<class T , unsigned int C, MemType MEM, unsigned int D, unsigned int E>
void Proto::BoundaryCondition::Dirichlet ( Array< BoxData< T, C, MEM, D, E >, DIM > &  fluxes,
const BoxData< T, C, MEM, D, E > &  state,
dirichletBCValue,
Face  face,
Box  interiorBox,
Array< T, DIM >  dx 
)
inlinestatic

Applies a constant dirichlet boundary condition on a specified face by updating the fluxes in all directions.

Parameters
fluxes- flux data which will be updated on the appropriate boundary to apply the BC
state- state data used to apply the BC
dirichletBCValue- constant value of the state on the boundary. Note that the same constant Will be applied to every component of each flux. Alias as needed to apply BCs componentwise.
face- the face on which the boundary condition will be applied
interiorBox- defines which elements of state and fluxes are interior to the domain. This can be larger than the Boxes defining the state / fluxes. In practice, fluxes and state are patch scoped values and interiorBox is the Box associated with a ProblemDomain.
dx- anisotropic grid spacing

◆ Dirichlet() [2/2]

template<class T , unsigned int C, MemType MEM, unsigned int D, unsigned int E>
void Proto::BoundaryCondition::Dirichlet ( Array< BoxData< T, C, MEM, D, E >, DIM > &  fluxes,
const BoxData< T, C, MEM, D, E > &  state,
const BoxData< T, C, MEM, D, E > &  dirichletBCvalues,
Face  face,
Box  interiorBox,
Array< T, DIM >  dx 
)
inlinestatic

Applies a variable dirichlet boundary condition on a specified face by updating the fluxes in all directions.

Parameters
fluxes- flux data which will be updated on the appropriate boundary to apply the BC
state- state data used to apply the BC
dirichletBCValues- values of the state on the boundary
face- the face on which the boundary condition will be applied
interiorBox- defines which elements of state and fluxes are interior to the domain. This can be larger than the Boxes defining the state / fluxes. In practice, fluxes and state are patch scoped values and interiorBox is the Box associated with a ProblemDomain.
dx- anisotropic grid spacing

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