BCFunc.H File Reference

#include "IntVect.H"
#include "RealVect.H"
#include "FArrayBox.H"
#include "ProblemDomain.H"
#include "RefCountedPtr.H"
#include "NamespaceHeader.H"
#include "NamespaceFooter.H"

Include dependency graph for BCFunc.H:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  BCFunction
class  BCHolder
class  BCValueFunction
class  BCValueHolder
class  ConstBCFunction

Typedefs

typedef void(* BCFunc )(FArrayBox &a_state, const Box &a_valid, const ProblemDomain &a_domain, Real a_dx, bool a_homogeneous)
typedef void(* BCValueFunc )(Real *a_pos, int *a_dir, Side::LoHiSide *a_side, Real *a_value)

Functions

RefCountedPtr< BCFunctionConstDiriNeumBC (const IntVect &a_loSideType, const RealVect &a_loSideValue, const IntVect &a_hiSideType, const RealVect &a_hiSideValue)
void NeumBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, bool a_homogeneous, const BCValueHolder &a_value, int a_dir, Side::LoHiSide a_side)
void NeumBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, bool a_homogeneous, BCValueHolder a_value)
void DiriBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, bool a_homogeneous, BCValueHolder a_value, int a_dir, Side::LoHiSide a_side, int a_order=1)
void DiriBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, bool a_homogeneous, BCValueHolder a_value, int a_order=1)
void NoSlipVectorBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, int a_dir, Side::LoHiSide a_side, int a_order=2)
void ReflectiveVectorBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, int a_dir, Side::LoHiSide a_side, int a_order=2)


Typedef Documentation

typedef void(* BCFunc)(FArrayBox &a_state, const Box &a_valid, const ProblemDomain &a_domain, Real a_dx, bool a_homogeneous)

function interface for ghost cell boundary conditions of AMRPoissonOp. If you are using Neumann or Dirichlet boundary conditions, it is easiest to use the functions provided.

typedef void(* BCValueFunc)(Real *a_pos, int *a_dir, Side::LoHiSide *a_side, Real *a_value)

given pos [x,y,z] position on center of cell edge int dir direction, x being 0 int side -1 for low, +1 = high, fill in the a_values array


Function Documentation

RefCountedPtr<BCFunction> ConstDiriNeumBC ( const IntVect a_loSideType,
const RealVect a_loSideValue,
const IntVect a_hiSideType,
const RealVect a_hiSideValue 
)

A helper function to produce the needed object for constant Dirichlet/Neumann on all the faces. The return value can be passed to anything expecting a BCFunction/BCHolder.

"a_loSideType/a_hiSideType" specify the type of boundary condition in a given direction by having the enter corresponding to the direction set to 0 for Neumann or 1 for Dirichlet (on the low or high side, respectively). "a_loSideValue/a_hiSideValue" specify the (constant) value for boundary condition specified above.

For example, in 2D if "a_loSideType" = (1,0), "a_hiSideType" = (1,1), "a_loSideValue" = (0.0,1.0) and "a_hiSideValue" = (0.0,0.0) then the boundary conditions are:

Low side x: Dirichlet = 0.0 Low side y: Neumann = 1.0 High side x: Dirichlet = 0.0 High side y: Dirichlet = 0.0

void NeumBC ( FArrayBox a_state,
const Box a_valid,
Real  a_dx,
bool  a_homogeneous,
const BCValueHolder a_value,
int  a_dir,
Side::LoHiSide  a_side 
)

Neumann bc for a particular side. For use in AMRPoissonOp.

void NeumBC ( FArrayBox a_state,
const Box a_valid,
Real  a_dx,
bool  a_homogeneous,
BCValueHolder  a_value 
)

Neumann bcs for all sides For use in AMRPoissonOp.

void DiriBC ( FArrayBox a_state,
const Box a_valid,
Real  a_dx,
bool  a_homogeneous,
BCValueHolder  a_value,
int  a_dir,
Side::LoHiSide  a_side,
int  a_order = 1 
)

Dirichlet boundary conditions for a side. For use in AMRPoissonOp.

void DiriBC ( FArrayBox a_state,
const Box a_valid,
Real  a_dx,
bool  a_homogeneous,
BCValueHolder  a_value,
int  a_order = 1 
)

Dirchelet boundary conditions for one side. For use in AMRPoissonOp.

void NoSlipVectorBC ( FArrayBox a_state,
const Box a_valid,
Real  a_dx,
int  a_dir,
Side::LoHiSide  a_side,
int  a_order = 2 
)

No slip vector bc (zero all comps). need a_state.ncomp == spacedim For use in ResistivityOp, for example.

void ReflectiveVectorBC ( FArrayBox a_state,
const Box a_valid,
Real  a_dx,
int  a_dir,
Side::LoHiSide  a_side,
int  a_order = 2 
)

0 normal comp, reflective for all other comps need a_state.ncomp == spacedim For use in ResistivityOp, for example.


Generated on Tue Apr 14 14:20:21 2009 for Chombo + EB by  doxygen 1.5.5