|
| | MethodOfLinesPatchStrategy () |
| |
| virtual | ~MethodOfLinesPatchStrategy ()=0 |
| |
| virtual void | registerModelVariables (MethodOfLinesIntegrator< DIM > *integrator)=0 |
| |
| virtual void | initializeDataOnPatch (hier::Patch< DIM > &patch, const double time, const bool initial_time) const =0 |
| |
| virtual double | computeStableDtOnPatch (hier::Patch< DIM > &patch, const double time) const =0 |
| |
| virtual void | singleStep (hier::Patch< DIM > &patch, const double dt, const double alpha_1, const double alpha_2, const double beta) const =0 |
| |
| virtual void | tagGradientDetectorCells (hier::Patch< DIM > &patch, const double regrid_time, const bool initial_error, const int tag_index, const bool uses_richardson_extrapolation_too) |
| |
| virtual void | setPhysicalBoundaryConditions (hier::Patch< DIM > &patch, const double fill_time, const hier::IntVector< DIM > &ghost_width_to_fill)=0 |
| |
| virtual hier::IntVector< DIM > | getRefineOpStencilWidth () const |
| |
| virtual void | preprocessRefine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio) |
| |
| virtual void | postprocessRefine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio) |
| |
| virtual hier::IntVector< DIM > | getCoarsenOpStencilWidth () const |
| |
| virtual void | preprocessCoarsen (hier::Patch< DIM > &coarse, const hier::Patch< DIM > &fine, const hier::Box< DIM > &coarse_box, const hier::IntVector< DIM > &ratio) |
| |
| virtual void | postprocessCoarsen (hier::Patch< DIM > &coarse, const hier::Patch< DIM > &fine, const hier::Box< DIM > &coarse_box, const hier::IntVector< DIM > &ratio) |
| |
| tbox::Pointer< hier::VariableContext > | getInteriorWithGhostsContext () const |
| |
| tbox::Pointer< hier::VariableContext > | getInteriorContext () const |
| |
| void | setInteriorWithGhostsContext (tbox::Pointer< hier::VariableContext > context) |
| |
| void | setInteriorContext (tbox::Pointer< hier::VariableContext > context) |
| |
| virtual void | preprocessRefineBoxes (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::BoxList< DIM > &fine_boxes, const hier::IntVector< DIM > &ratio) |
| |
| virtual void | postprocessRefineBoxes (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::BoxList< DIM > &fine_boxes, const hier::IntVector< DIM > &ratio) |
| |
template<int DIM>
class SAMRAI::algs::MethodOfLinesPatchStrategy< DIM >
Class MethodOfLinesPatchStrategy<DIM> is an abstract type defining the interface for operations invoked during the integration routines defined in the MethodOfLinesIntegrator<DIM> class. This class is derived from the xfer::RefinePatchStrategy<DIM> and xfer::CoarsenPatchStrategy<DIM> abstract base classes. These base classes define the interfaces for user-defined interlevel data refining and coarsening operations and the specification of physical boundary conditions.
- See also
- algs::MethodOfLinesIntegrator
-
xfer::RefinePatchStrategy
-
xfer::CoarsenPatchStrategy
Pre- and post-processing routines for implementing user-defined spatial interpolation routines applied to variables. The interpolation routines are used in the MOL AMR algorithm for filling patch ghost cells before advancing data on a level and after regridding a level to fill portions of the new level from some coarser level. These routines are called automatically from within patch boundary filling schedules; thus, some concrete function matching these signatures must be provided in the user's patch model. However, the routines only need to perform some operations when "USER_DEFINED_REFINE" is given as the interpolation method for some variable when the patch model registers variables with the MOL integration algorithm, typically. If the user does not provide operations that refine such variables in either of these routines, then they will not be refined.
The order in which these operations are used in each patch boundary filling schedule is:
Also, user routines that implement these functions must use data corresponding to the d_scratch context on both coarse and fine patches.
Implements SAMRAI::xfer::RefinePatchStrategy< DIM >.
Pre- and post-processing routines for implementing user-defined spatial coarsening routines applied to variables. The coarsening routines are used in the MOL AMR algorithm synchronizing coarse and fine levels when they have been integrated to the same point. These routines are called automatically from within the data synchronization coarsen schedules; thus, some concrete function matching these signatures must be provided in the user's patch model. However, the routines only need to perform some operations when "USER_DEFINED_COARSEN" is given as the coarsening method for some variable when the patch model registers variables with the MOL level integration algorithm, typically. If the user does not provide operations that coarsen such variables in either of these routines, then they will not be coarsened.
The order in which these operations are used in each coarsening schedule is:
Also, user routines that implement these functions must use corresponding to the d_new context on both coarse and fine patches for time-dependent quantities.
Implements SAMRAI::xfer::CoarsenPatchStrategy< DIM >.
Virtual function to perform user-defined refine operations. This member function is called before standard refining operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The preprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box regions.
Typically, only the pure virtual members of this class are implemented in user-defined subclasses of this base class. This version of the preprocess function operates on an entire box list. By default, this version simply loops over the box list and calls the single-box version, which is a pure virtual function.
- Parameters
-
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_boxes | tbox::List of box regions on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
Reimplemented in SAMRAI::solv::CartesianRobinBcHelper< DIM >.
Virtual function to perform user-defined refine operations. This member function is called after standard refining operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The postprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box regions.
Typically, only the pure virtual members of this class are implemented in user-defined subclasses of this base class. This version of the postprocess function operates on an entire box list. By default, this version simply loops over the box list and calls the single-box version, which is a pure virtual function.
- Parameters
-
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_boxes | tbox::List of box regions on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
Reimplemented in SAMRAI::solv::CartesianRobinBcHelper< DIM >.