#include <ProblemDomain.H>
Collaboration diagram for ProblemDomain:
Public Methods | |
ProblemDomain () | |
{\bf Constructors} | |
ProblemDomain (const Box &a_domBox) | |
ProblemDomain (const Box &a_domBox, const bool *a_isPeriodic) | |
ProblemDomain (const IntVect &small, const IntVect &big) | |
ProblemDomain (const IntVect &small, const IntVect &big, const bool *a_isPeriodic) | |
ProblemDomain (const IntVect &small, const int *vec_len) | |
ProblemDomain (const IntVect &small, const int *vec_len, const bool *a_isPeriodic) | |
ProblemDomain (const ProblemDomain &a_src) | |
const Box & | domainBox () const |
{\bf Accessors} | |
bool | isPeriodic (int a_dir) const |
bool | isPeriodic () const |
ShiftIterator | shiftIterator () const |
bool | isEmpty () const |
bool | contains (const IntVect &p) const |
bool | image (IntVect &p) const |
bool | contains (const Box &b) const |
bool | contains_box (const Box &b) const |
bool | intersects (const Box &a_box) const |
bool | intersectsNotEmpty (const Box &a_box) const |
bool | intersects (const Box &box1, const Box &box2) const |
ProblemDomain & | operator= (const ProblemDomain &b) |
{\bf Modification Functions} | |
void | setPeriodic (int a_dir, bool a_isPeriodic) |
ProblemDomain & | grow (int i) |
ProblemDomain & | grow (const IntVect &v) |
ProblemDomain & | grow (int idir, int n_cell) |
ProblemDomain & | growLo (int idir, int n_cell=1) |
ProblemDomain & | growHi (int idir, int n_cell=1) |
Box | operator & (const Box &a_b) const |
ProblemDomain & | refine (int a_refinement_ratio) |
refinement | |
ProblemDomain & | refine (const IntVect &a_refinement_ratio) |
ProblemDomain & | coarsen (int a_refinement_ratio) |
ProblemDomain & | coarsen (const IntVect &refinement_ratio) |
void | dumpOn (std::ostream &strm) const |
Protected Attributes | |
bool | m_isPeriodic [SpaceDim] |
Box | m_domainBox |
ShiftIterator | m_shiftIt |
Friends | |
class | HDF5Handle |
void | operator &= (Box &a_box, const ProblemDomain &a_probomain) |
Box | operator & (const Box &a_box, const ProblemDomain &a_probdomain) |
ProblemDomain | grow (const ProblemDomain &pd, int i) |
ProblemDomain | grow (const ProblemDomain &pd, const IntVect &v) |
Box | bdryLo (const ProblemDomain &a_pd, int a_dir, int a_len=1) |
Box | bdryHi (const ProblemDomain &a_pd, int a_dir, int a_len=1) |
Box | adjCellLo (const ProblemDomain &a_pd, int a_dir, int a_len=1) |
Box | adjCellHi (const ProblemDomain &a_pd, int a_dir, int a_len=1) |
ProblemDomain | refine (const ProblemDomain &a_probdomain, int a_refinement_ratio) |
ProblemDomain | refine (const ProblemDomain &a_probdomain, const IntVect &a_refinement_ratio) |
ProblemDomain | coarsen (const ProblemDomain &a_probdomain, int a_refinement_ratio) |
ProblemDomain | coarsen (const ProblemDomain &a_probdomain, const IntVect &a_refinement_ratio) |
std::ostream & | operator<< (std::ostream &os, const ProblemDomain &bx) |
std::istream & | operator>> (std::istream &is, ProblemDomain &bx) |
|
{\bf Constructors} The default constructor. The constructed domain box is empty. |
|
Construct ProblemDomain with a_domBox as computational domain This constructor defaults to non-periodic domain |
|
Construct ProblemDomain with a_domBox as computational domain. a_isPeriodic is a SpaceDim array of bools, true is the physical boundary condition is periodic in the coordinate direction |
|
Construct a ProblemDomain. It is an error if small is greater than big. |
|
Construct a ProblemDomain. It is an error if small is greater than big. a_isPeriodic is a SpaceDim array of bools, true is the physical boundary condition is periodic in the coordinate direction |
|
Construct ProblemDomain with specified lengths. It is an error if the lengths are negative. |
|
Construct ProblemDomain with specified lengths. It is an error if the lengths are negative. a_isPeriodic is a SpaceDim array of bools, true is the physical boundary condition is periodic in the coordinate direction |
|
The copy constructor. |
|
Modifies this ProblemDomain by coarsening by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
Modifies this ProblemDomain by coarsening it by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
Returns true if argument is contained within this ProblemDomain. It is an error if the Box is not cell-centered. An empty ProblemDomain does not contain any Box. |
|
Returns true if argument is contained within this ProblemDomain. An empty ProblemDomain does not contain and is not contained by any ProblemDomain, including itself. |
|
|
|
{\bf Accessors} Returns the logical computational domain |
|
Gives more detail than printOn. Useful for exiting due to an error. |
|
Modifies this ProblemDomain by growing it on the low and high end by n_cell cells in direction idir |
|
modifies this ProblemDomain by growing the domainBox in each direction by the specified amount |
|
grows (or shrinks) the domain box by i in all directions |
|
Modifies this ProblemDomain by growing it on the high end by n_Cell cells in direction idir |
|
Modifies this ProblemDomain by growing it on the low end by n_cell cells in direction idir. |
|
Returns the periodic image of this IntVect inside of the ProblemDomain. Return true if the domain contains this IntVect, returning the image in 'p', otherwise returns false |
|
returns true if box1 and box2 and any of their periodic images intersect (useful for checking disjointness) |
|
Returns true if this ProblemDomain and the argument have non-null intersections. It is an error if a_box is not cell-centered. An empty ProblemDomain does not intersect any Box. This will do nothing in periodic directions (since a periodic domain is infinite in the periodic direction. If periodic in all dimensions, this will always return true. |
|
Returns true if this ProblemDomain and the argument have non-null intersections. It is an error if a_box is not cell-centered. This routine does not perform the check to see if *this or b are empty boxes. It is the callers responsibility to ensure that this never happens. If you are unsure, the use the .intersects(..) routine. In periodic directions, will always return true. |
|
Returns true if this ProblemDomain is empty or undefined. |
|
returns true is BC is periodic in _any_ direction |
|
returns true if BC is periodic in direction a_dir |
|
Returns the Box that is intersection of this ProblemDomain and the argument ProblemDomain. The Box MUST be cell-centered. The intersection of the Empty ProblemDomain and any Box is the Empty Box. This operator does nothing in periodic directions (since a periodic domain is an infinite domain). |
|
{\bf Modification Functions} The assignment operator. |
|
Modifies this ProblemDomain by refining it by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
refinement Modifies this ProblemDomain by refining it by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
sets whether BC is periodic in direction a_dir (true == periodic) |
|
returns the shiftIterator for this ProblemDomain |
|
Returns the cell centered Box of the given length adjacent to the argument ProblemDomain on the high end along the given coordinate direction. The return Box is identical to the argument ProblemDomain in the other directions. The return Box and the argument ProblemDomain have an empty intersection. \ NOTE: len >= 1. \ NOTE: Box retval = adjCellHi(b,dir,len) is equivalent to the following set of operations: \ Box retval(b); \ retval.convert(dir,ProblemDomain::CELL); \ retval.setrange(dir,retval.bigEnd(dir)+1,len);\ Directions are zero-based. It is an error if not 0 <= dir < SpaceDim. The neighbor of an Empty ProblemDomain is an Empty Box of the appropriate type. If dir is a periodic direction, will return an empty Box. |
|
Returns the cell centered Box of the given length adjacent to the argument ProblemDomain on the low end along the given coordinate direction. The return Box is identical to the argument ProblemDomain in the other directions. The return ProblemDomain and the argument ProblemDomain have an empty intersection.\ NOTE: len >= 1. \ NOTE: Box retval = adjCellLo(b,dir,len) is equivalent to the following set of operations: \ Box retval(b); \ retval.convert(dir,ProblemDomain::CELL); \ retval.setrange(dir,retval.smallEnd(dir)-len,len); \ Directions are zero-based. It is an error if not 0 <= dir < SpaceDim. The neighbor of an Empty ProblemDomain is an Empty Box of the appropriate type. If dir is a periodic direction, will return an empty Box as well. |
|
Returns the edge-centered Box (in direction dir) defining the high side of the argument ProblemDomain. The return Box will have the given length in the given direction. Directions are zero-based. It is an error if not 0 <= dir < SpaceDim. The neighbor of an Empty ProblemDomain is an Empty Box of the appropriate type. If dir is a periodic direction, will return an empty box. |
|
Returns the edge-centered Box (in direction dir) defining the low side of the argument ProblemDomain. The output Box will have the given length in the given direction. Directions are zero-based. It is an error if not 0 <= dir < SpaceDim. The neighbor of an Empty ProblemDomain is an Empty Box of the appropriate type. If dir is a periodic direction, will return an empty box. |
|
Returns a ProblemDomain that is the argument ProblemDomain coarsened by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
Returns a ProblemDomain that is the argument ProblemDomain coarsened by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
Returns a ProblemDomain that is the argument ProblemDomain with a DomainBox grown by the given amount. |
|
returns a ProblemDomain with a domainBox grown by the given amount |
|
|
|
returns a box which is the interesection of a_box and the problemDomain |
|
modifies a_box to be the intersection of a_box and the problemDomain |
|
Write an ASCII representation to the ostream. |
|
Read from istream. |
|
Returns a ProblemDomain that is the argument ProblemDomain refined by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
Returns a ProblemDomain that is the argument ProblemDomain refined by given (positive) refinement ratio. The Empty ProblemDomain is not modified by this function. \ |
|
|
|
|
|
|