|
Chombo + EB
3.2
|
#include "IntVect.H"#include "RealVect.H"#include "FArrayBox.H"#include "LevelData.H"#include "ProblemDomain.H"#include "RefCountedPtr.H"#include "DataIndex.H"#include "NamespaceHeader.H"#include "NamespaceFooter.H"

Go to the source code of this file.
Classes | |
| class | BCFunction |
| class | BCHolder |
| class | BCValueFunction |
| class | BCValueHolder |
| class | BCFuncWrapper |
| this BCFunction simply wraps a BCFunc More... | |
| class | ConstBCFunction |
Macros | |
| #define | _BCFUNC_H_ |
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 | |
| void | doNothingBC (FArrayBox &a_state, const Box &a_valid, const ProblemDomain &a_domain, Real a_dx, bool a_homogeneous) |
| For use with pure periodic BC. More... | |
| RefCountedPtr< BCFunction > | ConstDiriNeumBC (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, Interval &a_interval) |
| 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, Interval &a_interval, int a_order=1) |
| 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) |
| void | ExtrapolateBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, int a_dir, Side::LoHiSide a_side, Interval &a_interval, int a_order=1) |
| void | ExtrapolateBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, int a_dir, Side::LoHiSide a_side, int a_order=1) |
| void | ExtrapolateBC (FArrayBox &a_state, const Box &a_valid, Real a_dx, int a_order=1) |
| #define _BCFUNC_H_ |
| 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
| void doNothingBC | ( | FArrayBox & | a_state, |
| const Box & | a_valid, | ||
| const ProblemDomain & | a_domain, | ||
| Real | a_dx, | ||
| bool | a_homogeneous | ||
| ) |
For use with pure periodic BC.
| 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, | ||
| Interval & | a_interval | ||
| ) |
Neumann bc for a particular side, specified component interval For use in AMRPoissonOp.
| 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, all components 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, | ||
| Interval & | a_interval, | ||
| int | a_order = 1 |
||
| ) |
Dirichlet boundary conditions for a side, specified component interval 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, all components. 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 |
||
| ) |
Dirichlet 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.
| void ExtrapolateBC | ( | FArrayBox & | a_state, |
| const Box & | a_valid, | ||
| Real | a_dx, | ||
| int | a_dir, | ||
| Side::LoHiSide | a_side, | ||
| Interval & | a_interval, | ||
| int | a_order = 1 |
||
| ) |
Extrapolation boundary conditions for a side, specified component interval For use in AMRPoissonOp.
| void ExtrapolateBC | ( | FArrayBox & | a_state, |
| const Box & | a_valid, | ||
| Real | a_dx, | ||
| int | a_dir, | ||
| Side::LoHiSide | a_side, | ||
| int | a_order = 1 |
||
| ) |
Extrapolation boundary conditions for a side, all components. For use in AMRPoissonOp.
Extrapolation boundary conditions for one side. For use in AMRPoissonOp.
1.8.13