Chombo + EB + MF
3.2

#include "Box.H"
#include "ProblemDomain.H"
#include "NamespaceHeader.H"
#include "NamespaceFooter.H"
Go to the source code of this file.
Macros  
#define  _LOHICENTER_H_ 
Functions  
void  loHiCenter (Box &a_loBox, int &a_hasLo, Box &a_hiBox, int &a_hasHi, Box &a_centerBox, Box &a_entireBox, const Box &a_inBox, const ProblemDomain &a_domain, const int &a_dir) 
void  loHiCenterFace (Box &a_loBox, int &a_hasLo, Box &a_hiBox, int &a_hasHi, Box &a_centerBox, Box &a_entireBox, const Box &a_inBox, const ProblemDomain &a_domain, const int &a_dir) 
void  loHiCenterFace4 (Box &a_loBox, Box &a_nextLoBox, int &a_hasLo, Box &a_hiBox, Box &a_nextHiBox, int &a_hasHi, Box &a_centerBox, Box &a_innerCenterBox, Box &a_entireBox, const Box &a_inBox, const ProblemDomain &a_domain, const int &a_dir) 
void  loHiCenter5 (Box &a_loBox, Box &a_nextLoBox, int &a_hasLo, Box &a_hiBox, Box &a_nextHiBox, int &a_hasHi, Box &a_centerBox, Box &a_innerCenterBox, Box &a_entireBox, const Box &a_inBox, const ProblemDomain &a_domain, const int &a_dir) 
void  loHiCenterFace6 (Box &a_farLoBox, Box &a_midLoBox, Box &a_nearLoBox, int &a_hasLo, Box &a_farHiBox, Box &a_midHiBox, Box &a_nearHiBox, int &a_hasHi, Box &a_centerBox, Box &a_midCenterBox, Box &a_innerCenterBox, Box &a_entireBox, const Box &a_inBox, const ProblemDomain &a_domain, const int &a_dir) 
#define _LOHICENTER_H_ 
void loHiCenter  (  Box &  a_loBox, 
int &  a_hasLo,  
Box &  a_hiBox,  
int &  a_hasHi,  
Box &  a_centerBox,  
Box &  a_entireBox,  
const Box &  a_inBox,  
const ProblemDomain &  a_domain,  
const int &  a_dir  
) 
This function is used when in direction a_dir a 3point stencil of cellcentered data is being used to compute something at the center of the central cell of the stencil.
Inputs: a_dir is the direction of the 3point stencil; a_inBox is the cellcentered box on which we are to compute a stencil (2point or 3point), expanded by 1 in a_dir direction, and not intersected with the domain; a_domain is the problem domain.
Output boxes are all cellcentered subboxes of a_inBox and are also contained in a_domain: a_loBox is where a 2point stencil must be used on the low side; a_centerBox is where the full 3point stencil can be used; a_hiBox is where a 2point stencil must be used on the high side; a_entireBox is the union of a_loBox and a_centerBox and a_hiBox.
The boxes a_loBox and a_hiBox will be at most 1 cell wide; here the 2point stencil consists of a cell from this box and the neighboring cell from a_centerBox in direction a_dir.
a_entireBox will be a_inBox with one layer of cells removed from both sides in dimension a_dir.
Output flags: a_hasLo: 1 or 0, according to whether a_loBox is defined or not; a_hasHi: 1 or 0, according to whether a_hiBox is defined or not.
void loHiCenterFace  (  Box &  a_loBox, 
int &  a_hasLo,  
Box &  a_hiBox,  
int &  a_hasHi,  
Box &  a_centerBox,  
Box &  a_entireBox,  
const Box &  a_inBox,  
const ProblemDomain &  a_domain,  
const int &  a_dir  
) 
This function is used when in direction a_dir a 2point stencil of cellcentered data is being used to compute something at the face between cells of the stencil.
Inputs: a_dir is the direction of the 2point stencil; a_inBox is the cellcentered box (on whose faces we are to compute a stencil), expanded by 1 in a_dir direction, and not intersected with the domain. a_domain is the problem domain.
Output boxes are all facecentered subboxes of the faces of a_inBox in direction a_dir, and are also contained in the faces of a_domain: a_loBox is where a 1point stencil must be used on the low side; a_centerBox is where the full 2point stencil can be used; a_hiBox is where a 1point stencil must be used on the high side; a_entireBox is the union of a_loBox and a_centerBox and a_hiBox.
The boxes a_loBox and a_hiBox will be at most 1 face wide; here the 1point stencil consists of only 1 of the adjacent cells in direction a_dir.
Output flags: a_hasLo: 1 or 0, according to whether a_loBox is defined or not; a_hasHi: 1 or 0, according to whether a_hiBox is defined or not.
void loHiCenterFace4  (  Box &  a_loBox, 
Box &  a_nextLoBox,  
int &  a_hasLo,  
Box &  a_hiBox,  
Box &  a_nextHiBox,  
int &  a_hasHi,  
Box &  a_centerBox,  
Box &  a_innerCenterBox,  
Box &  a_entireBox,  
const Box &  a_inBox,  
const ProblemDomain &  a_domain,  
const int &  a_dir  
) 
This function is used when in direction a_dir a 4point stencil of cellcentered data is being used to compute something at the face between cells of the stencil.
Inputs: a_dir is the direction of the 4point stencil; a_inBox is the cellcentered box on which we have data; a_domain is the problem domain.
Output boxes are all facecentered subboxes of the faces of a_inBox in direction a_dir, and are also contained in the faces of a_domain: a_loBox is where a stencil must be used on the low side with all four points higher; a_nextLoBox is where a stencil must be used on the low side with one point lower and three points higher; a_hiBox is where a stencil must be used on the high side with all four points lower; a_nextHiBox is where a stencil must be used on the high side with one point higher and three points lower; a_centerBox is union of a_innerCenterBox, a_nextLoBox, and a_nextHiBox, where the regular 2point stencil can be used; a_innerCenterBox is where the regular 4point stencil can be used; a_entireBox is the union of a_(lonextLocenterhinextHi)Box.
Each of the boxes a_loBox, a_nextLoBox, a_hiBox, a_nextHiBox will be at most 1 face wide.
a_loBox and a_nextLoBox will both be defined or both be undefined. a_hiBox and a_nextHiBox will both be defined or both be undefined.
Output flags: a_hasLo: 1 or 0, according to whether a_loBox and a_nextLoBox are defined or not; a_hasHi: 1 or 0, according to whether a_hiBox and a_nextHiBox are defined or not.
void loHiCenter5  (  Box &  a_loBox, 
Box &  a_nextLoBox,  
int &  a_hasLo,  
Box &  a_hiBox,  
Box &  a_nextHiBox,  
int &  a_hasHi,  
Box &  a_centerBox,  
Box &  a_innerCenterBox,  
Box &  a_entireBox,  
const Box &  a_inBox,  
const ProblemDomain &  a_domain,  
const int &  a_dir  
) 
This function is used when in direction a_dir a 5point stencil of cellcentered data is being used to compute something at the center of the central cell of the stencil.
Inputs: a_dir is the direction of the 5point stencil; a_inBox is the cellcentered box on which we are to compute a stencil (2point or 3point or 5point), expanded by 1 in a_dir direction, and not intersected with the domain; a_domain is the problem domain.
Output boxes are all cellcentered subboxes of a_inBox and are also contained in a_domain: a_loBox is where a 2point stencil must be used on the low side; a_nextLoBox is where a 3point stencil must be used on the low side with one point lower and three points higher; a_hiBox is where a 2point stencil must be used on the high side; a_nextHiBox is where a 3point stencil must be used on the high side with one point higher and three points lower; a_centerBox is union of a_innerCenterBox, a_nextLoBox, and a_nextHiBox, where a 3point stencil may be used; a_innerCenterBox is where the regular 5point stencil can be used; where a 5point stencil may be used; a_entireBox is the union of a_(lonextLocenterhinextHi)Box.
Each of the boxes a_loBox, a_nextLoBox, a_hiBox, a_nextHiBox will be at most 1 cell wide.
a_loBox and a_nextLoBox will both be defined or both be undefined. a_hiBox and a_nextHiBox will both be defined or both be undefined.
Output flags: a_hasLo: 1 or 0, according to whether a_loBox and a_nextLoBox are defined or not; a_hasHi: 1 or 0, according to whether a_hiBox and a_nextHiBox are defined or not.
void loHiCenterFace6  (  Box &  a_farLoBox, 
Box &  a_midLoBox,  
Box &  a_nearLoBox,  
int &  a_hasLo,  
Box &  a_farHiBox,  
Box &  a_midHiBox,  
Box &  a_nearHiBox,  
int &  a_hasHi,  
Box &  a_centerBox,  
Box &  a_midCenterBox,  
Box &  a_innerCenterBox,  
Box &  a_entireBox,  
const Box &  a_inBox,  
const ProblemDomain &  a_domain,  
const int &  a_dir  
) 
This function is used when in direction a_dir a 6point stencil of cellcentered data is being used to compute something at the face between cells of the stencil.
Inputs: a_dir is the direction of the 6point stencil; a_inBox is the cellcentered box on which we have data; a_domain is the problem domain.
Output boxes are all facecentered subboxes of the faces of a_inBox in direction a_dir, and are also contained in the faces of a_domain: a_farLoBox is where a stencil must be used on the low side with all 6 points higher; a_midLoBox is where a stencil must be used on the low side with 1 point lower and 5 points higher; a_nearLoBox is where a stencil must be used on the low side with 2 points lower and 4 points higher; a_farHiBox is where a stencil must be used on the high side with all 6 points lower; a_midHiBox is where a stencil must be used on the high side with 1 point higher and 5 points lower; a_nearHiBox is where a stencil must be used on the high side with 2 points higher and 4 points lower; a_centerBox is union of a_innerCenterBox and a_near(LoHi)Box, where the regular 2point stencil can be used; a_midCenterBox is union of a_innerCenterBox, a_near(LoHi)Box, and a_mid(LoHi)Box, where the regular 4point stencil can be used; a_innerCenterBox is where the regular 6point stencil can be used; a_entireBox is union of a_(farmidnear)(LoHi)Box and a_innerCenterBox.
Each of the boxes a_(farmidnear)(LoHi)Box will be at most 1 face wide.
a_farLoBox, a_midLoBox, a_nearLoBox will all be defined or all be undefined. a_farHiBox, a_midHiBox, a_nearHiBox will all be defined or all be undefined.
Output flags: a_hasLo: 1 or 0, set to whether a_(farmidnear)loBox defined or not; a_hasHi: 1 or 0, set to whether a_(farmidnear)HiBox defined or not.