Chombo + EB  3.0
EBLoHiCenter.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _EBLOHICENTER_H_
12 #define _EBLOHICENTER_H_
13 
14 #include "Box.H"
15 #include "ProblemDomain.H"
16 #include "NamespaceHeader.H"
17 
18 ///
19 /**
20  divide a box into its centered-diff boxes, its
21  one-sided boxes and tell whether the one sided boxes are there.
22  The one-sided boxes are one wide at most.
23  All Boxes are intersected with the domain.
24  InBox should be the size of the domain of computation
25  (the size of the gradient box).
26  */
27 extern void getLHCBoxes(Box& a_loBox,
28  Box& a_hiBox,
29  Box& a_centerBox,
30  int& a_haslo,
31  int& a_hashi,
32  const Box& a_inBox,
33  const ProblemDomain& a_dProblem,
34  const int& a_dir);
35 
36 ///
37 /**
38  Divide a box, a_inBox, into a box where centered differences can be used,
39  a_centerBox, and boxes where one-sided difference can be used, a_loBox and
40  a_hiBox based on the current problem domain, a_domain, and the difference
41  direction, a_dir. The union of these computation boxes are returned as
42  a_entireBox. The one-sided difference boxes are one wide at most and if
43  they have been defined then the corresponding flag, a_hasLo or a_hasHi, is
44  set to one, otherwise it is zero. All boxes lie within the domain,
45  a_domain.
46  */
47 extern void eblohicenter(Box& a_loBox,
48  int& a_hasLo,
49  Box& a_hiBox,
50  int& a_hasHi,
51  Box& a_centerBox,
52  Box& a_entireBox,
53  const Box& a_inBox,
54  const ProblemDomain& a_domain,
55  const int& a_dir);
56 
57 ///
58 /**
59  This function is used when in direction a_dir a 2 point stencil of cell-
60  centered data is being used to compute something at the cell face between
61  the cell centers of the stencil. The data for the stencil is valid in
62  a_inBox. It uses a_inBox to compute a box (face-centered in a_dir) where
63  the full stencil can be used, a_centerBox, and boxes (face-centered in
64  a_dir) where a 1 point stencil can be used, a_loBox and a_hiBox based on
65  the current problem domain, a_domain, and the stencil direction, a_dir.
66  The union of these 1 and 2 point stencel boxes is returned as a_entireBox
67  (face-centered in a_dir). The 1 point stencil boxes are one wide, at most,
68  and if they have been defined then the corresponding flag, a_hasLo or
69  a_hasHi, is set to one, otherwise these flags are zero. All output boxes
70  lie within the domain.
71  */
72 extern void eblohicenterFace(Box& a_loBox,
73  int& a_hasLo,
74  Box& a_hiBox,
75  int& a_hasHi,
76  Box& a_centerBox,
77  Box& a_entireBox,
78  const Box& a_inBox,
79  const ProblemDomain& a_domain,
80  const int& a_dir);
81 
82 #include "NamespaceFooter.H"
83 #endif
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
void eblohicenterFace(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 getLHCBoxes(Box &a_loBox, Box &a_hiBox, Box &a_centerBox, int &a_haslo, int &a_hashi, const Box &a_inBox, const ProblemDomain &a_dProblem, const int &a_dir)
void eblohicenter(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)
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465