|
IBAMR
IBAMR version 0.20.
|
Class FACPreconditionerStrategy provides an interface for specifying the problem-specific operations needed to implement a specific FAC preconditioner. More...
#include <ibtk/FACPreconditionerStrategy.h>

Public Member Functions | |
| FACPreconditionerStrategy (std::string object_name) | |
| Constructor. More... | |
| virtual | ~FACPreconditionerStrategy ()=default |
| Empty virtual desctructor. More... | |
| const std::string & | getName () const |
| Return the object name. More... | |
| virtual bool | getIsInitialized () const |
| Return whether the operator is initialized. More... | |
| virtual void | setFACPreconditioner (SAMRAI::tbox::ConstPointer< FACPreconditioner > preconditioner) |
| Method to allow the FACPreconditioner object to register itself with the concrete FACPreconditionerStrategy. More... | |
| virtual void | setSolutionTime (double solution_time) |
| Set the time at which the solution is to be evaluated. More... | |
| virtual double | getSolutionTime () const |
| Get the time at which the solution is being evaluated. More... | |
| virtual void | setTimeInterval (double current_time, double new_time) |
| Set the current time interval. More... | |
| virtual std::pair< double, double > | getTimeInterval () const |
| Get the current time interval. More... | |
| virtual double | getDt () const |
| Get the current time step size. More... | |
| virtual void | setToZero (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &error, int level_num)=0 |
| Zero all components of the provided vector on the specified level, including patch interiors and ghost cells. More... | |
| virtual void | restrictResidual (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &source, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &dest, int dest_level_num)=0 |
| Restrict the residual from the source vector to the destination vector on the specified level of the patch hierarchy. More... | |
| virtual void | prolongError (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &source, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &dest, int dest_level_num)=0 |
| Prolong the error from the source vector to the destination vector on the specified level of the patch hierarchy. More... | |
| virtual void | prolongErrorAndCorrect (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &source, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &dest, int dest_level_num)=0 |
| Prolong the error from the source vector to the destination vector on the specified level of the patch hierarchy and correct the fine-grid error. More... | |
| virtual void | smoothError (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &error, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &residual, int level_num, int num_sweeps, bool performing_pre_sweeps, bool performing_post_sweeps)=0 |
| Smooth the error by the specified number of sweeps on the specified level of the patch hierarchy. More... | |
| virtual bool | solveCoarsestLevel (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &error, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &residual, int coarsest_level_num)=0 |
| Solve the system of equations on the coarsest level of the patch hierarchy. More... | |
| virtual void | computeResidual (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &residual, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &solution, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &rhs, int coarsest_level_num, int finest_level_num)=0 |
| Compute the composite-grid residual on the specified range of levels of the patch hierarchy. More... | |
| virtual void | initializeOperatorState (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &solution, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &rhs) |
| Initialize any hierarchy-dependent data. More... | |
| virtual void | deallocateOperatorState () |
| Deallocate any hierarchy-dependent data initialized by initializeOperatorState(). More... | |
| virtual void | allocateScratchData () |
| Allocate scratch data. More... | |
| virtual void | deallocateScratchData () |
| Deallocate scratch data. More... | |
Static Public Attributes | |
| static constexpr bool | ALWAYS_HOMOGENEOUS_BC = true |
| Whether boundary conditions are homogeneous: always, because an FAC preconditioner solves the error equation. More... | |
Logging functions. | |
| SAMRAI::tbox::ConstPointer< IBTK::FACPreconditioner > | d_preconditioner |
| const std::string | d_object_name |
| bool | d_is_initialized = false |
| double | d_solution_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_current_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_new_time = std::numeric_limits<double>::quiet_NaN() |
| virtual void | printClassData (std::ostream &stream) |
| Print class data to stream. More... | |
| virtual SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > | getLevelSAMRAIVectorReal (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &vec, int level_num) const |
| Return a SAMRAIVectorReal object that corresponds to the given object but restricted to a single level of the patch hierarchy. More... | |
| FACPreconditionerStrategy ()=delete | |
| Default constructor. More... | |
| FACPreconditionerStrategy (const FACPreconditionerStrategy &from)=delete | |
| Copy constructor. More... | |
| FACPreconditionerStrategy & | operator= (const FACPreconditionerStrategy &that)=delete |
| Assignment operator. More... | |
This class is similar to the SAMRAI class SAMRAI::solv::FACOperatorStrategy, except that certain methods required by the SAMRAI::solv::FACOperatorStrategy interface have been modified (specifically, smoothError()) or removed (specifically, restrictSolution() and postprocessOneCycle()). This interface also requires the implementation of a method, prolongError(), that is optimized for the case in which the FAC preconditioner algorithm is configured not to use pre-smoothing sweeps.
| IBTK::FACPreconditionerStrategy::FACPreconditionerStrategy | ( | std::string | object_name | ) |
|
virtualdefault |
|
privatedelete |
|
privatedelete |
| from | The value to copy to this object. |
| const std::string& IBTK::FACPreconditionerStrategy::getName | ( | ) | const |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
pure virtual |
Implemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, and IBTK::PoissonFACPreconditionerStrategy.
|
pure virtual |
Implemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, IBTK::VCSCViscousOpPointRelaxationFACOperator, and IBTK::PoissonFACPreconditionerStrategy.
|
pure virtual |
Implemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, and IBTK::PoissonFACPreconditionerStrategy.
|
pure virtual |
Implemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, and IBTK::PoissonFACPreconditionerStrategy.
|
pure virtual |
Ghost values of residual may be overwritten.
Implemented in IBAMR::StaggeredStokesLevelRelaxationFACOperator, IBAMR::StaggeredStokesIBLevelRelaxationFACOperator, IBAMR::StaggeredStokesBoxRelaxationFACOperator, IBTK::VCSCViscousOpPointRelaxationFACOperator, IBTK::SCPoissonPointRelaxationFACOperator, IBTK::CCPoissonPointRelaxationFACOperator, IBTK::CCPoissonLevelRelaxationFACOperator, and IBTK::CCPoissonBoxRelaxationFACOperator.
|
pure virtual |
Ghost values of residual may be overwritten.
Implemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, IBTK::SCPoissonPointRelaxationFACOperator, IBTK::CCPoissonPointRelaxationFACOperator, IBTK::CCPoissonLevelRelaxationFACOperator, and IBTK::CCPoissonBoxRelaxationFACOperator.
|
pure virtual |
The vectors must not alias. rhs is not modified. Ghost values of solution, and its values on coarse cells covered by finer levels, may be overwritten. Ghost values of residual, and its values on coarse sides on a coarse-fine interface (which restrictResidual() overwrites), are unspecified.
Implemented in IBAMR::StaggeredStokesIBLevelRelaxationFACOperator, IBAMR::StaggeredStokesFACPreconditionerStrategy, IBTK::VCSCViscousOpPointRelaxationFACOperator, IBTK::SCPoissonPointRelaxationFACOperator, IBTK::CCPoissonPointRelaxationFACOperator, IBTK::CCPoissonLevelRelaxationFACOperator, and IBTK::CCPoissonBoxRelaxationFACOperator.
|
virtual |
Reimplemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, and IBTK::PoissonFACPreconditionerStrategy.
|
virtual |
Reimplemented in IBAMR::StaggeredStokesFACPreconditionerStrategy, and IBTK::PoissonFACPreconditionerStrategy.
|
virtual |
|
virtual |
|
virtual |
|
protectedvirtual |
|
privatedelete |
| that | The value to assign to this object. |
|
staticconstexpr |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |