Data on a BoxLayout
A collection of Box-oriented objects. The arrangement of Boxes is given by the underlying BoxLayout object. BoxLayoutData attempt to prevent users from maniupulating the template class T to become out of synch with the boxes in the BoxLayout. Caveat emptor.
All access to the data in a BoxLayoutData is forced to be data-parallel, by use of the DataIterator.
class T must provide the following methods:
- T()
- T(const Box& box, int comps)
- define(const Box& box, int comps)
- void copy(const Box& R, const Interval& Cd, const T& source, const Interval Cs) Cs and Cd must have same length, but can be displaced
- static int preAllocatable() returns 0 if the size(...) function is strictly a function of Box and Interval, and does not depend on the current state of the T object. return 1 if size(..) is symmetric, in that sender and receiver T object can size their message buffers, but a static object cannot. returns 2 if the object is truly dynamic. the message size is subject to unique object data.
- int size(const Box& R, const Interval& comps)
- void linearOut(void* buf, const Box& R, const Interval& comps)
- void linearIn(void* buf, const Box& R, const Interval& comps)
In sequential codes, many of these functions will not be called, but in the general parallel case, they all will be.
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.