class DisjointBoxLayout : public BoxLayout
A BoxLayout that has a concept of disjointedness
Inheritance:
DisjointBoxLayout
public members:
-
DisjointBoxLayout()
-
-
DisjointBoxLayout(const Vector <Box>& a_boxes, const Vector <int>& a_procIDs)
-
-
DisjointBoxLayout(const Vector <Box>& a_boxes, const Vector <int>& a_procIDs, const ProblemDomain & a_physDomain)
-
virtual ~DisjointBoxLayout()
-
-
virtual void define(const Vector <Box>& a_boxes, const Vector <int>& a_procIDs)
-
-
void define(BoxLayout& a_layout)
-
-
void define(BoxLayout& a_layout, const ProblemDomain & a_physDomain)
-
-
virtual void define(const Vector <Box>& a_boxes, const Vector <int>& a_procIDs, const ProblemDomain & a_physDomain)
-
-
virtual void close()
-
-
virtual void deepCopy(const DisjointBoxLayout & a_source)
-
-
virtual void deepCopy(const BoxLayout& a_source)
-
-
virtual void deepCopy(const BoxLayout& a_source, const ProblemDomain & a_physDomain)
-
-
bool isDisjoint() const
-
-
bool checkPeriodic(const ProblemDomain & a_domain) const
-
-
friend void coarsen( DisjointBoxLayout & output, const DisjointBoxLayout & input, int refinement)
-
-
friend void refine( DisjointBoxLayout & output, const DisjointBoxLayout & input, int refinement)
-
-
friend void adjCellLo( DisjointBoxLayout & a_output, const DisjointBoxLayout & a_input, int a_dir, int a_len=1)
-
-
friend void adjCellHi( DisjointBoxLayout & a_output, const DisjointBoxLayout & a_input, int a_dir, int a_len=1)
-
Documentation
DisjointBoxLayout is-a BoxLayout that has a concept of disjointedness
of the boxes. DisjointBoxLayout is only different from BoxLayout in
that it has a method isDisjoint(). DisjointBoxLayouts also have
a ProblemDomain member to ensure disjointness in the case of periodic
boundary conditions, among other things.
- DisjointBoxLayout (const Vector <Box>& a_boxes, const Vector <int>& a_procIDs)
- Construct from a Vector of Boxes and optionally a Vector of
processor assignments. If the processor assignment Vector
is present, it must be either zero-length or the same length
as the Box Vector. On exit, the DisjointBoxLayout will be closed.
- DisjointBoxLayout (const Vector <Box>& a_boxes, const Vector <int>& a_procIDs, const ProblemDomain & a_physDomain)
- Construct from a Vector of Boxes and optionally a Vector of
processor assignments. If the processor assignment Vector
is present, it must be either zero-length or the same length
as the Box Vector. On exit, the DisjointBoxLayout will be closed.
- virtual void define (const Vector <Box>& a_boxes, const Vector <int>& a_procIDs)
- Define this DisjointBoxLayout from a Vector of Boxes. This is a
wrapper for a call to BoxLayout::define, required because
DisjointBoxLayout::define is overloaded and the compiler will not
look into the base class for name resolution.
- void define (BoxLayout& a_layout)
- Shallow define. Only way to promote a BoxLayout. If BoxLayout
has been closed, then this method checks isDisjoint and throws an
error if not disjoint. If a_layout is disjoint, then this object
becomes a closed DisjointBoxLayout object
- void define (BoxLayout& a_layout, const ProblemDomain & a_physDomain)
- Shallow define. Only way to promote a BoxLayout. If BoxLayout
has been closed, then this method checks isDisjoint and throws an
error if not disjoint. If a_layout is disjoint, then this object
becomes a closed DisjointBoxLayout object
- virtual void define (const Vector <Box>& a_boxes, const Vector <int>& a_procIDs, const ProblemDomain & a_physDomain)
- Define this DisjointBoxLayout from a Vector of Boxes. This is a
wrapper for a call to BoxLayout::define, required because
DisjointBoxLayout::define is overloaded and the compiler will not
look into the base class for name resolution.
- virtual void close ()
- Mark this DisjointBoxLayout as complete and unchangeable.
- virtual void deepCopy (const DisjointBoxLayout & a_source)
- Doesn't check for disjointness, since a_source is already
guaranteed to be disjoint. Also copies problem domain
info
- virtual void deepCopy (const BoxLayout& a_source)
- checks that the source BoxLayout isDisjoint, throws an error
if it is not. Otherwise, same as BoxLayout::deepCopy
- virtual void deepCopy (const BoxLayout& a_source, const ProblemDomain & a_physDomain)
- checks that the source BoxLayout isDisjoint, throws an error
if it is not. Otherwise, same as BoxLayout::deepCopy
- bool isDisjoint () const
- Returns true if this object contains a disjoint
union of Boxes.
The Disjoint testing algorithm assumes that the
boxes are CELL-Centered boxes. We can expand the algorithm
when someone needs it. bvs
- bool checkPeriodic (const ProblemDomain & a_domain) const
- Checks to see that problem domains are compatible
To be compatible, a_domain and the ProblemDomain in
this DisjointBoxLayout must have the same periodicity.
They must be periodic in the same dimensions, and in
all periodic directions, the period must be the same.
There are no checks in non-periodic directions, since
DisjointBoxLayouts don't care about physical domains
except in the periodic case.
performs problem domain check when we don't have direct
access to a problemDomain -- returns true if this and
a_dbl have compatible ProblemDomains
- friend void coarsen ( DisjointBoxLayout & output, const DisjointBoxLayout & input, int refinement)
- 'output' must be open, 'input' must be closed, 'refinement' must be
a positive non-zero integer. 'output' and 'input' do not share an
implementation. 'output' is first deepcopy'ed from 'input',
then coarsen(refinement) is called on each box of 'output'. 'output'
returns from this function closed. LayoutIterators from 'input' and
'output' can perform interchangeably.
- friend void refine ( DisjointBoxLayout & output, const DisjointBoxLayout & input, int refinement)
- see 'coarsen(BoxLayout& output, const BoxLayout& input, int refinement) '
and substitute the word "refine" for "coarsen"
- friend void adjCellLo ( DisjointBoxLayout & a_output, const DisjointBoxLayout & a_input, int a_dir, int a_len=1)
- returns the set of boxes which you get from calling Box::adjCellLo
on each box in input. output must be open, is closed upon exit from
this function.
- friend void adjCellHi ( DisjointBoxLayout & a_output, const DisjointBoxLayout & a_input, int a_dir, int a_len=1)
- returns the set of boxes which result from calling Box::adjCellHi
on each box in input. output must be open, will be closed upon
exiting this function.
this class has no child classes.
alphabetic index hierarchy of classes
Chombo
Copyright Notice
This software is copyright (C) by the Lawrence Berkeley
National Laboratory. Permission is granted to reproduce
this software for non-commercial purposes provided that
this notice is left intact.
It is acknowledged that the U.S. Government has rights to
this software under Contract DE-AC03-765F00098 between
the U.S. Department of Energy and the University of
California.
This software is provided as a professional and academic
contribution for joint exchange. Thus it is experimental,
is provided ``as is'', with no warranties of any kind
whatsoever, no support, no promise of updates, or printed
documentation. By using this software, you acknowledge
that the Lawrence Berkeley National Laboratory and
Regents of the University of California shall have no
liability with respect to the infringement of other
copyrights by any part of this software.