SAMRAI::xfer::MultiblockRefineSchedule< DIM > Class Template Reference

#include <source/transfer/multiblock/MultiblockRefineSchedule.h>

List of all members.

Public Member Functions

 MultiblockRefineSchedule (const std::string &fill_pattern, tbox::Pointer< hier::MultiblockPatchLevel< DIM > > dst_level, tbox::Pointer< hier::MultiblockPatchLevel< DIM > > src_level, tbox::Pointer< hier::MultiblockPatchHierarchy< DIM > > multiblock, tbox::Pointer< xfer::RefineAlgorithm< DIM > > refine_alg, tbox::Pointer< xfer::RefineTransactionFactory< DIM > > transaction_factory, MultiblockRefinePatchStrategy< DIM > *strategy, bool use_time_refinement=false)
 MultiblockRefineSchedule (const std::string &fill_pattern, tbox::Pointer< hier::MultiblockPatchLevel< DIM > > dst_level, tbox::Pointer< hier::MultiblockPatchLevel< DIM > > src_level, const int next_coarser_level, tbox::Pointer< hier::MultiblockPatchHierarchy< DIM > > multiblock, tbox::Pointer< xfer::RefineAlgorithm< DIM > > refine_alg, tbox::Pointer< xfer::RefineTransactionFactory< DIM > > transaction_factory, MultiblockRefinePatchStrategy< DIM > *strategy, bool use_time_refinement=false)
virtual ~MultiblockRefineSchedule ()
void fillData (double fill_time, bool do_physical_boundary_fill=true) const
 Execute the stored communication schedule and perform the data movement.
void initializeSourceVector (hier::ComponentSelector &allocate_vector) const
 Initialize a vector to contain source data components.
const tbox::Pointer< xfer::RefineClasses<
DIM > > & 
getEquivalenceClasses () const
 Get the equivalence classes associated with the algorithm that created this schedule.
void allocateScratchSpace (tbox::Pointer< hier::PatchLevel< DIM > > level, double fill_time, hier::ComponentSelector &allocate_vector) const
 Allocate scratch space on the specified level and return the allocated patch data indices in the component selector for later deallocation.

Classes

struct  SingularityPatch
 struct SingularityPatch allows a temporary patch that contains data near a singularity to be paired with a block id number. More...

template<int DIM>
class SAMRAI::xfer::MultiblockRefineSchedule< DIM >


Constructor & Destructor Documentation

template<int DIM>
SAMRAI::xfer::MultiblockRefineSchedule< DIM >::MultiblockRefineSchedule ( const std::string &  fill_pattern,
tbox::Pointer< hier::MultiblockPatchLevel< DIM > >  dst_level,
tbox::Pointer< hier::MultiblockPatchLevel< DIM > >  src_level,
tbox::Pointer< hier::MultiblockPatchHierarchy< DIM > >  multiblock,
tbox::Pointer< xfer::RefineAlgorithm< DIM > >  refine_alg,
tbox::Pointer< xfer::RefineTransactionFactory< DIM > >  transaction_factory,
MultiblockRefinePatchStrategy< DIM > *  strategy,
bool  use_time_refinement = false 
)

Constructor to create a MultiblockRefineSchedule that copies data from the interiors of source patch data components on the source level into the interiors and ghost cells of destination patch data components on the destination level. Only data on the intersection of the source and destination patch components will be copied. The source and destination patch levels must reside in the same Multiblock domain. In general, this constructor is called by a MultiblockRefineAlgorithm<DIM> object.

Parameters:
fill_pattern Indicates which parts of the destination level to fill. See RefineSchedule for valid values.
dst_level Pointer to destination level.
src_level Pointer to source level.
multiblock Multiblock patch hierarchy object containing all of the levels that hold the data being communicated
refine_alg Pointer to an xfer::RefineAlgorithm<DIM> that will be used to create refine schedules that will do the data transfers and communication. In general, this is a data member of the calling MultiblockRefineAlgorithm<DIM> object.
transaction_factory Transaction factory.
strategy Pointer to a multiblock patch strategy object that provides user-defined boundary filling operations for patch boundaries that touch a multiblock singularity point, as well as user- defined physical boundary filling operations. This pointer may be null, in which case no boundary filling operations will occur. case no boundary filling operations will occur.
use_time_refinement Let the destination level be filled using time refinement operations. This defaults to false because it should only be used in recursive calls within this class

template<int DIM>
SAMRAI::xfer::MultiblockRefineSchedule< DIM >::MultiblockRefineSchedule ( const std::string &  fill_pattern,
tbox::Pointer< hier::MultiblockPatchLevel< DIM > >  dst_level,
tbox::Pointer< hier::MultiblockPatchLevel< DIM > >  src_level,
const int  next_coarser_level,
tbox::Pointer< hier::MultiblockPatchHierarchy< DIM > >  multiblock,
tbox::Pointer< xfer::RefineAlgorithm< DIM > >  refine_alg,
tbox::Pointer< xfer::RefineTransactionFactory< DIM > >  transaction_factory,
MultiblockRefinePatchStrategy< DIM > *  strategy,
bool  use_time_refinement = false 
)

Constructor to create a MultiblockRefineShedule that moves data from the interiors of source patch data components on the source level and coarser levels in the patch hierarchy into the interiors and ghost cells of destination patch data components on the destination level. Only data on the intersection of the source and destination patch components will be copied. If portions of the destination level remain unfilled, then the algorithm recursively fills those unfilled portions from coarser levels in the AMR hierarchy. The source and destination patch levels must reside in the same index space. However, the levels do not have to be in the same AMR patch hierarchy. In general, this constructor is called by a MultiblockRefineAlgorithm<DIM> object.

Parameters:
fill_pattern Indicates which parts of the destination level to fill. See RefineSchedule for valid values.
dst_level Pointer to destination level.
src_level Pointer to source level. This pointer may be null, in which case the destination level will be filled only using data interpolated from coarser levels.
next_coarser_level Integer number of next coarser level in relative to the destination level. Note that when the destination level has number zero (i.e., the coarsest level), this value should be < 0.
multiblock Multiblock object containing all of the levels that hold the data being communicated
refine_alg Pointer to an xfer::RefineAlgorithm<DIM> that will be used to create refine schedules that will do the data transfers and communication. In general, this is a data member of the calling MultiblockRefineAlgorithm<DIM> object.
transaction_factory Transaction factory.
strategy Pointer to a multiblock patch strategy object that provides user-defined boundary filling operations for patch boundaries that touch a multiblock singularity point, as well as user- defined physical boundary filling operations. This pointer may be null, in which case no boundary filling operations will occur. case no boundary filling operations will occur.
use_time_refinement Let the destination level be filled using time refinement operations. This defaults to false because it should only be used in recursive calls within this class

template<int DIM>
SAMRAI::xfer::MultiblockRefineSchedule< DIM >::~MultiblockRefineSchedule (  )  [virtual]

Virtual destructor


Member Function Documentation

template<int DIM>
void SAMRAI::xfer::MultiblockRefineSchedule< DIM >::fillData ( double  fill_time,
bool  do_physical_boundary_fill = true 
) const

Execute the stored communication schedule and perform the data movement.

Parameters:
fill_time Double simulation time when the fill take place.
do_physical_boundary_fill Boolean flag used to bypass the physical boundary data filling operations on the destination level. The default value is true indicating that boundary data will be filled (assuming a non-null refine patch strategy pointer was passed to the createSchedule() function. Note that even when the value is false, boundary routines may be called on levels coarser than the destination level if such data is needed for proper interpolation.

template<int DIM>
void SAMRAI::xfer::MultiblockRefineSchedule< DIM >::initializeSourceVector ( hier::ComponentSelector allocate_vector  )  const

Initialize a vector to contain source data components.

The component selector argument will be filled with the data component id's that have been registered as source items for the algorithm that created this schedule

template<int DIM>
const tbox::Pointer< xfer::RefineClasses< DIM > > & SAMRAI::xfer::MultiblockRefineSchedule< DIM >::getEquivalenceClasses (  )  const

Get the equivalence classes associated with the algorithm that created this schedule.

template<int DIM>
void SAMRAI::xfer::MultiblockRefineSchedule< DIM >::allocateScratchSpace ( tbox::Pointer< hier::PatchLevel< DIM > >  level,
double  fill_time,
hier::ComponentSelector allocate_vector 
) const

Allocate scratch space on the specified level and return the allocated patch data indices in the component selector for later deallocation.

Parameters:
level Level on which to allocate scratch space
fill_time Simulation time
allocate_vector The patch data indices associated with scratch space will be stored here to be used later for deallocation


The documentation for this class was generated from the following files:
Generated on Thu Jun 18 11:29:11 2009 for SAMRAI by  doxygen 1.5.1