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.