IBAMR  IBAMR version 0.19.
Public Member Functions | List of all members
IBAMR::StaggeredStokesFACPreconditionerStrategy Class Referenceabstract

Class StaggeredStokesFACPreconditionerStrategy is an abstract FACPreconditionerStrategy implementing many of the operations required by smoothers for staggered-grid (MAC) discretizations of the incompressible Stokes equations and related problems. More...

#include <ibamr/StaggeredStokesFACPreconditionerStrategy.h>

Inheritance diagram for IBAMR::StaggeredStokesFACPreconditionerStrategy:
Inheritance graph
[legend]

Public Member Functions

 StaggeredStokesFACPreconditionerStrategy (const std::string &object_name, int ghost_cell_width, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, const std::string &default_options_prefix)
 Constructor. More...
 
 ~StaggeredStokesFACPreconditionerStrategy ()
 Destructor. More...
 
virtual void setVelocityPoissonSpecifications (const SAMRAI::solv::PoissonSpecifications &U_problem_coefs)
 Set the PoissonSpecifications object used to specify the coefficients for the momentum equation in the incompressible Stokes operator. More...
 
virtual void setComponentsHaveNullSpace (const bool has_velocity_nullspace, const bool has_pressure_nullspace)
 Set if velocity and pressure have nullspace. More...
 
virtual void setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &U_bc_coefs, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *P_bc_coef)
 Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More...
 
virtual void setPhysicalBoundaryHelper (SAMRAI::tbox::Pointer< StaggeredStokesPhysicalBoundaryHelper > bc_helper)
 Set the StokesSpecifications object and timestep size used to specify the coefficients for the time-dependent incompressible Stokes operator. 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 setHomogeneousBc (bool homogeneous_bc)
 Set whether the solver should use homogeneous boundary conditions. More...
 
virtual bool getHomogeneousBc () const
 Return whether the solver is using homogeneous boundary conditions. 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, doublegetTimeInterval () const
 Get the current time interval. More...
 
virtual double getDt () const
 Get the current time step size. More...
 
virtual void smoothError (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &error, const 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 void allocateScratchData ()
 Allocate scratch data. More...
 
virtual void deallocateScratchData ()
 Deallocate scratch data. More...
 

Functions for configuring the solver.

void setResetLevels (int coarsest_ln, int finest_ln)
 Specify the levels that need to be reset the next time the operator is re-initialized. More...
 
void setSmootherType (const std::string &smoother_type)
 Specify the smoother type. More...
 
void setCoarseSolverType (const std::string &coarse_solver_type)
 Specify the coarse level solver. More...
 
void setCoarseSolverMaxIterations (int coarse_solver_max_iterations)
 Set the maximum number of iterations for the coarse level solve. More...
 
void setCoarseSolverAbsoluteTolerance (double coarse_solver_abs_residual_tol)
 Set the absolute residual tolerance for convergence for coarse level solve. More...
 
void setCoarseSolverRelativeTolerance (double coarse_solver_rel_residual_tol)
 Set the relative residual tolerance for convergence for coarse level solve. More...
 
void setProlongationMethods (const std::string &U_prolongation_method, const std::string &P_prolongation_method)
 Set the prolongation methods. More...
 
void setRestrictionMethods (const std::string &U_restriction_method, const std::string &P_restriction_method)
 Set the restriction methods. More...
 

Partial implementation of FACPreconditionerStrategy interface.

void setToZero (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &vec, int level_num) override
 Zero the supplied vector. More...
 
void restrictResidual (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &src, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &dst, int dst_ln) override
 Restrict the residual quantity to the specified level from the next finer level. More...
 
void prolongError (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &src, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &dst, int dst_ln) override
 Prolong the error quantity to the specified level from the next coarser level. More...
 
void prolongErrorAndCorrect (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &src, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &dst, int dst_ln) override
 Prolong the error quantity to the specified level from the next coarser level and apply the correction to the fine-level error. More...
 
bool solveCoarsestLevel (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &error, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &residual, int coarsest_ln) override
 Solve the residual equation Ae=r on the coarsest level of the patch hierarchy. More...
 
void computeResidual (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &residual, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &solution, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &rhs, int coarsest_level_num, int finest_level_num) override
 Compute the composite-grid residual on the specified range of levels of the patch hierarchy. More...
 
void initializeOperatorState (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &solution, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &rhs) override
 Compute hierarchy-dependent data. More...
 
void deallocateOperatorState () override
 Remove all hierarchy-dependent data. More...
 
virtual void initializeOperatorStateSpecialized (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &solution, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &rhs, int coarsest_reset_ln, int finest_reset_ln)=0
 Compute implementation-specific hierarchy-dependent data. More...
 
virtual void deallocateOperatorStateSpecialized (int coarsest_reset_ln, int finest_reset_ln)=0
 Remove implementation-specific hierarchy-dependent data. More...
 

Methods for executing, caching, and resetting communication

schedules.

SAMRAI::solv::PoissonSpecifications d_U_problem_coefs
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * d_default_U_bc_coef
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > d_U_bc_coefs
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * d_default_P_bc_coef
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * d_P_bc_coef
 
SAMRAI::tbox::Pointer< StaggeredStokesPhysicalBoundaryHelperd_bc_helper
 
const int d_gcw
 
void xeqScheduleProlongation (const std::pair< int, int > &dst_idxs, const std::pair< int, int > &src_idxs, int dst_ln)
 Execute a refinement schedule for prolonging data. More...
 
void xeqScheduleRestriction (const std::pair< int, int > &dst_idxs, const std::pair< int, int > &src_idxs, int dst_ln)
 Execute schedule for restricting solution or residual to the specified level. More...
 
void xeqScheduleGhostFillNoCoarse (const std::pair< int, int > &dst_idxs, int dst_ln)
 Execute schedule for filling ghosts on the specified level. More...
 
void xeqScheduleDataSynch (int dst_idx, int dst_ln)
 Execute schedule for synchronizing data on the specified level. More...
 

Various refine and coarsen objects.

SAMRAI::tbox::Pointer< IBTK::CartSideRobinPhysBdryOpd_U_bc_op
 
SAMRAI::tbox::Pointer< IBTK::CartCellRobinPhysBdryOpd_P_bc_op
 
SAMRAI::tbox::Pointer< IBTK::CoarseFineBoundaryRefinePatchStrategyd_U_cf_bdry_op
 
SAMRAI::tbox::Pointer< IBTK::CoarseFineBoundaryRefinePatchStrategyd_P_cf_bdry_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::VariableFillPattern< NDIM > > d_U_op_stencil_fill_pattern
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::VariableFillPattern< NDIM > > d_P_op_stencil_fill_pattern
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::VariableFillPattern< NDIM > > d_U_synch_fill_pattern
 
SAMRAI::xfer::RefinePatchStrategy< NDIM > * d_U_P_bc_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineOperator< NDIM > > d_U_prolongation_refine_operator
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineOperator< NDIM > > d_P_prolongation_refine_operator
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefinePatchStrategy< NDIM > > d_prolongation_refine_patch_strategy
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > d_prolongation_refine_algorithm
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > d_prolongation_refine_schedules
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_U_restriction_coarsen_operator
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_P_restriction_coarsen_operator
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > d_restriction_coarsen_algorithm
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > d_restriction_coarsen_schedules
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > d_ghostfill_nocoarse_refine_algorithm
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > d_ghostfill_nocoarse_refine_schedules
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > d_synch_refine_algorithm
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > d_synch_refine_schedules
 
 StaggeredStokesFACPreconditionerStrategy ()=delete
 Default constructor. More...
 
 StaggeredStokesFACPreconditionerStrategy (const StaggeredStokesFACPreconditionerStrategy &from)=delete
 Copy constructor. More...
 
StaggeredStokesFACPreconditionerStrategyoperator= (const StaggeredStokesFACPreconditionerStrategy &that)=delete
 Assignment operator. More...
 

Logging functions.

SAMRAI::tbox::ConstPointer< IBTK::FACPreconditionerd_preconditioner
 
const std::string d_object_name
 
bool d_is_initialized = false
 
bool d_homogeneous_bc
 
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...
 

Detailed Description

Sample parameters for initialization from database (and their default values):

smoother_type = "ADDITIVE"                     // see setSmootherType()
U_prolongation_method = "CONSTANT_REFINE"      // see setProlongationMethods()
P_prolongation_method = "LINEAR_REFINE"        // see setProlongationMethods()
U_restriction_method = "CONSERVATIVE_COARSEN"  // see setRestrictionMethods()
P_restriction_method = "CONSERVATIVE_COARSEN"  // see setRestrictionMethods()
coarse_solver_type = "LEVEL_SMOOTHER"          // see setCoarseSolverType()
coarse_solver_rel_residual_tol = 1.0e-5        // see setCoarseSolverRelativeTolerance()
coarse_solver_abs_residual_tol = 1.0e-50       // see setCoarseSolverAbsoluteTolerance()
coarse_solver_max_iterations = 10              // see setCoarseSolverMaxIterations()
coarse_solver_db = { ... }                     // SAMRAI::tbox::Database for initializing
coarse
level solver

Constructor & Destructor Documentation

◆ StaggeredStokesFACPreconditionerStrategy() [1/3]

IBAMR::StaggeredStokesFACPreconditionerStrategy::StaggeredStokesFACPreconditionerStrategy ( const std::string &  object_name,
int  ghost_cell_width,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db,
const std::string &  default_options_prefix 
)

◆ ~StaggeredStokesFACPreconditionerStrategy()

IBAMR::StaggeredStokesFACPreconditionerStrategy::~StaggeredStokesFACPreconditionerStrategy ( )

◆ StaggeredStokesFACPreconditionerStrategy() [2/3]

IBAMR::StaggeredStokesFACPreconditionerStrategy::StaggeredStokesFACPreconditionerStrategy ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ StaggeredStokesFACPreconditionerStrategy() [3/3]

IBAMR::StaggeredStokesFACPreconditionerStrategy::StaggeredStokesFACPreconditionerStrategy ( const StaggeredStokesFACPreconditionerStrategy from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ setVelocityPoissonSpecifications()

virtual void IBAMR::StaggeredStokesFACPreconditionerStrategy::setVelocityPoissonSpecifications ( const SAMRAI::solv::PoissonSpecifications U_problem_coefs)
virtual

◆ setComponentsHaveNullSpace()

virtual void IBAMR::StaggeredStokesFACPreconditionerStrategy::setComponentsHaveNullSpace ( const bool  has_velocity_nullspace,
const bool  has_pressure_nullspace 
)
virtual

◆ setPhysicalBcCoefs()

virtual void IBAMR::StaggeredStokesFACPreconditionerStrategy::setPhysicalBcCoefs ( const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  U_bc_coefs,
SAMRAI::solv::RobinBcCoefStrategy< NDIM > *  P_bc_coef 
)
virtual
Note
Any of the elements of U_bc_coefs may be nullptr. In this case, homogeneous Dirichlet boundary conditions are employed for that data depth. P_bc_coef may also be nullptr; in that case, homogeneous Neumann boundary conditions are employed for the pressure.
Parameters
U_bc_coefsIBTK::Vector of pointers to objects that can set the Robin boundary condition coefficients for the velocity
P_bc_coefPointer to object that can set the Robin boundary condition coefficients for the pressure

◆ setPhysicalBoundaryHelper()

virtual void IBAMR::StaggeredStokesFACPreconditionerStrategy::setPhysicalBoundaryHelper ( SAMRAI::tbox::Pointer< StaggeredStokesPhysicalBoundaryHelper bc_helper)
virtual

◆ setResetLevels()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setResetLevels ( int  coarsest_ln,
int  finest_ln 
)

When the operator is initialized, then only the specified range of levels are reset in the operator state the next time that the operator is initialized. If the operator is not initialized, this method has no effect.

To ensure the range of levels that is reset includes all levels in the patch hierarchy, use coarsest_ln = finest_ln = -1.

Note
This function is used to save some unnecessary computations when the hierarchy is regridded. The range of levels specified must include all levels which need to be reset by SAMRAI::mesh::StandardTagAndInitStrategy::resetHierarchyConfiguration(). Any data residing outside of this range of levels will not be reset. This is not what you want to have happen if, for instance, the Poisson specifications changes.

◆ setSmootherType()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setSmootherType ( const std::string &  smoother_type)

◆ setCoarseSolverType()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setCoarseSolverType ( const std::string &  coarse_solver_type)

◆ setCoarseSolverMaxIterations()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setCoarseSolverMaxIterations ( int  coarse_solver_max_iterations)

If the coarse level solver uses a maximum number of iterations parameter, the specified value is used. If the coarse level solver does not use such a stopping parameter, implementations are free to ignore this value.

◆ setCoarseSolverAbsoluteTolerance()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setCoarseSolverAbsoluteTolerance ( double  coarse_solver_abs_residual_tol)

If the coarse level solver uses a absolute convergence tolerance parameter, the specified value is used. If the coarse level solver does not use such a stopping parameter, implementations are free to ignore this value.

◆ setCoarseSolverRelativeTolerance()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setCoarseSolverRelativeTolerance ( double  coarse_solver_rel_residual_tol)

If the coarse level solver uses a relative convergence tolerance parameter, the specified value is used. If the coarse level solver does not use such a stopping parameter, implementations are free to ignore this value.

◆ setProlongationMethods()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setProlongationMethods ( const std::string &  U_prolongation_method,
const std::string &  P_prolongation_method 
)

◆ setRestrictionMethods()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setRestrictionMethods ( const std::string &  U_restriction_method,
const std::string &  P_restriction_method 
)

◆ setToZero()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::setToZero ( SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  vec,
int  level_num 
)
overridevirtual

◆ restrictResidual()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::restrictResidual ( const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  src,
SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  dst,
int  dst_ln 
)
overridevirtual
Parameters
srcsource residual
dstdestination residual
dst_lndestination level number

Implements IBTK::FACPreconditionerStrategy.

◆ prolongError()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::prolongError ( const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  src,
SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  dst,
int  dst_ln 
)
overridevirtual
Parameters
srcsource error vector
dstdestination error vector
dst_lndestination level number of data transfer

Implements IBTK::FACPreconditionerStrategy.

◆ prolongErrorAndCorrect()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::prolongErrorAndCorrect ( const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  src,
SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  dst,
int  dst_ln 
)
overridevirtual
Parameters
srcsource error vector
dstdestination error vector
dst_lndestination level number of data transfer

Implements IBTK::FACPreconditionerStrategy.

◆ solveCoarsestLevel()

bool IBAMR::StaggeredStokesFACPreconditionerStrategy::solveCoarsestLevel ( SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  error,
const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  residual,
int  coarsest_ln 
)
overridevirtual
Parameters
errorerror vector
residualresidual vector
coarsest_lncoarsest level number

Implements IBTK::FACPreconditionerStrategy.

◆ computeResidual()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::computeResidual ( SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  residual,
const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  solution,
const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  rhs,
int  coarsest_level_num,
int  finest_level_num 
)
overridevirtual

◆ initializeOperatorState()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::initializeOperatorState ( const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  solution,
const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  rhs 
)
overridevirtual

Note that although the vector arguments given to other methods in this class may not necessarily be the same as those given to this method, there will be similarities, including:

  • hierarchy configuration (hierarchy pointer and level range)
  • number, type and alignment of vector component data
  • ghost cell width of data in the solution (or solution-like) vector
Parameters
solutionsolution vector u
rhsright hand side vector f

Reimplemented from IBTK::FACPreconditionerStrategy.

◆ deallocateOperatorState()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::deallocateOperatorState ( )
overridevirtual

Remove all hierarchy-dependent data set by initializeOperatorState().

See also
initializeOperatorState

Reimplemented from IBTK::FACPreconditionerStrategy.

◆ initializeOperatorStateSpecialized()

virtual void IBAMR::StaggeredStokesFACPreconditionerStrategy::initializeOperatorStateSpecialized ( const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  solution,
const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  rhs,
int  coarsest_reset_ln,
int  finest_reset_ln 
)
protectedpure virtual

◆ deallocateOperatorStateSpecialized()

virtual void IBAMR::StaggeredStokesFACPreconditionerStrategy::deallocateOperatorStateSpecialized ( int  coarsest_reset_ln,
int  finest_reset_ln 
)
protectedpure virtual

◆ xeqScheduleProlongation()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::xeqScheduleProlongation ( const std::pair< int, int > &  dst_idxs,
const std::pair< int, int > &  src_idxs,
int  dst_ln 
)
protected

◆ xeqScheduleRestriction()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::xeqScheduleRestriction ( const std::pair< int, int > &  dst_idxs,
const std::pair< int, int > &  src_idxs,
int  dst_ln 
)
protected

◆ xeqScheduleGhostFillNoCoarse()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::xeqScheduleGhostFillNoCoarse ( const std::pair< int, int > &  dst_idxs,
int  dst_ln 
)
protected

◆ xeqScheduleDataSynch()

void IBAMR::StaggeredStokesFACPreconditionerStrategy::xeqScheduleDataSynch ( int  dst_idx,
int  dst_ln 
)
protected

◆ operator=()

StaggeredStokesFACPreconditionerStrategy& IBAMR::StaggeredStokesFACPreconditionerStrategy::operator= ( const StaggeredStokesFACPreconditionerStrategy that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ getName()

const std::string& IBTK::FACPreconditionerStrategy::getName ( ) const
inherited

◆ getIsInitialized()

virtual bool IBTK::FACPreconditionerStrategy::getIsInitialized ( ) const
virtualinherited

◆ setFACPreconditioner()

virtual void IBTK::FACPreconditionerStrategy::setFACPreconditioner ( SAMRAI::tbox::ConstPointer< FACPreconditioner preconditioner)
virtualinherited

◆ setHomogeneousBc()

virtual void IBTK::FACPreconditionerStrategy::setHomogeneousBc ( bool  homogeneous_bc)
virtualinherited

◆ getHomogeneousBc()

virtual bool IBTK::FACPreconditionerStrategy::getHomogeneousBc ( ) const
virtualinherited

◆ setSolutionTime()

virtual void IBTK::FACPreconditionerStrategy::setSolutionTime ( double  solution_time)
virtualinherited

◆ getSolutionTime()

virtual double IBTK::FACPreconditionerStrategy::getSolutionTime ( ) const
virtualinherited

◆ setTimeInterval()

virtual void IBTK::FACPreconditionerStrategy::setTimeInterval ( double  current_time,
double  new_time 
)
virtualinherited

◆ getTimeInterval()

virtual std::pair<double, double> IBTK::FACPreconditionerStrategy::getTimeInterval ( ) const
virtualinherited

◆ getDt()

virtual double IBTK::FACPreconditionerStrategy::getDt ( ) const
virtualinherited

◆ smoothError()

virtual void IBTK::FACPreconditionerStrategy::smoothError ( SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  error,
const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  residual,
int  level_num,
int  num_sweeps,
bool  performing_pre_sweeps,
bool  performing_post_sweeps 
)
pure virtualinherited

◆ allocateScratchData()

virtual void IBTK::FACPreconditionerStrategy::allocateScratchData ( )
virtualinherited

◆ deallocateScratchData()

virtual void IBTK::FACPreconditionerStrategy::deallocateScratchData ( )
virtualinherited

◆ printClassData()

virtual void IBTK::FACPreconditionerStrategy::printClassData ( std::ostream &  stream)
virtualinherited

◆ getLevelSAMRAIVectorReal()

virtual SAMRAI::tbox::Pointer<SAMRAI::solv::SAMRAIVectorReal<NDIM, double> > IBTK::FACPreconditionerStrategy::getLevelSAMRAIVectorReal ( const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &  vec,
int  level_num 
) const
protectedvirtualinherited

Member Data Documentation

◆ d_U_problem_coefs

SAMRAI::solv::PoissonSpecifications IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_problem_coefs
protected

◆ d_default_U_bc_coef

SAMRAI::solv::RobinBcCoefStrategy<NDIM>* IBAMR::StaggeredStokesFACPreconditionerStrategy::d_default_U_bc_coef
protected

◆ d_U_bc_coefs

std::vector<SAMRAI::solv::RobinBcCoefStrategy<NDIM>*> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_bc_coefs
protected

◆ d_default_P_bc_coef

SAMRAI::solv::RobinBcCoefStrategy<NDIM>* IBAMR::StaggeredStokesFACPreconditionerStrategy::d_default_P_bc_coef
protected

◆ d_P_bc_coef

SAMRAI::solv::RobinBcCoefStrategy<NDIM>* IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_bc_coef
protected

◆ d_bc_helper

SAMRAI::tbox::Pointer<StaggeredStokesPhysicalBoundaryHelper> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_bc_helper
protected

◆ d_gcw

const int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_gcw
protected

◆ d_solution

SAMRAI::tbox::Pointer<SAMRAI::solv::SAMRAIVectorReal<NDIM, double> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_solution
protected

◆ d_rhs

SAMRAI::tbox::Pointer<SAMRAI::solv::SAMRAIVectorReal<NDIM, double> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_rhs
protected

◆ d_hierarchy

SAMRAI::tbox::Pointer<SAMRAI::hier::PatchHierarchy<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_hierarchy
protected

◆ d_coarsest_ln

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarsest_ln = IBTK::invalid_level_number
protected

◆ d_finest_ln

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_finest_ln = IBTK::invalid_level_number
protected

◆ d_level_bdry_fill_ops

std::vector<SAMRAI::tbox::Pointer<IBTK::HierarchyGhostCellInterpolation> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_level_bdry_fill_ops
protected

◆ d_level_math_ops

std::vector<SAMRAI::tbox::Pointer<IBTK::HierarchyMathOps> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_level_math_ops
protected

◆ d_in_initialize_operator_state

bool IBAMR::StaggeredStokesFACPreconditionerStrategy::d_in_initialize_operator_state = false
protected

◆ d_coarsest_reset_ln

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarsest_reset_ln = IBTK::invalid_level_number
protected

◆ d_finest_reset_ln

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_finest_reset_ln = IBTK::invalid_level_number
protected

◆ d_smoother_type

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_smoother_type = "ADDITIVE"
protected

◆ d_U_prolongation_method

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_prolongation_method = "CONSTANT_REFINE"
protected

◆ d_P_prolongation_method

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_prolongation_method = "LINEAR_REFINE"
protected

◆ d_U_restriction_method

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_restriction_method = "CONSERVATIVE_COARSEN"
protected

◆ d_P_restriction_method

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_restriction_method = "CONSERVATIVE_COARSEN"
protected

◆ d_coarse_solver_init_subclass

bool IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_init_subclass = false
protected

◆ d_coarse_solver_type

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_type = "LEVEL_SMOOTHER"
protected

◆ d_coarse_solver_default_options_prefix

std::string IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_default_options_prefix
protected

◆ d_coarse_solver_rel_residual_tol

double IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_rel_residual_tol = 1.0e-5
protected

◆ d_coarse_solver_abs_residual_tol

double IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_abs_residual_tol = 1.0e-50
protected

◆ d_coarse_solver_max_iterations

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_max_iterations = 10
protected

◆ d_coarse_solver

SAMRAI::tbox::Pointer<IBAMR::StaggeredStokesSolver> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver
protected

◆ d_coarse_solver_db

SAMRAI::tbox::Pointer<SAMRAI::tbox::Database> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_coarse_solver_db
protected

◆ d_has_velocity_nullspace

bool IBAMR::StaggeredStokesFACPreconditionerStrategy::d_has_velocity_nullspace = false
protected

◆ d_has_pressure_nullspace

bool IBAMR::StaggeredStokesFACPreconditionerStrategy::d_has_pressure_nullspace = false
protected

◆ d_context

SAMRAI::tbox::Pointer<SAMRAI::hier::VariableContext> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_context
protected

◆ d_side_scratch_idx

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_side_scratch_idx = IBTK::invalid_index
protected

◆ d_cell_scratch_idx

int IBAMR::StaggeredStokesFACPreconditionerStrategy::d_cell_scratch_idx = IBTK::invalid_index
protected

◆ d_U_bc_op

SAMRAI::tbox::Pointer<IBTK::CartSideRobinPhysBdryOp> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_bc_op
protected

◆ d_P_bc_op

SAMRAI::tbox::Pointer<IBTK::CartCellRobinPhysBdryOp> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_bc_op
protected

◆ d_U_cf_bdry_op

SAMRAI::tbox::Pointer<IBTK::CoarseFineBoundaryRefinePatchStrategy> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_cf_bdry_op
protected

◆ d_P_cf_bdry_op

SAMRAI::tbox::Pointer<IBTK::CoarseFineBoundaryRefinePatchStrategy> IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_cf_bdry_op
protected

◆ d_U_op_stencil_fill_pattern

SAMRAI::tbox::Pointer<SAMRAI::xfer::VariableFillPattern<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_op_stencil_fill_pattern
protected

◆ d_P_op_stencil_fill_pattern

SAMRAI::tbox::Pointer<SAMRAI::xfer::VariableFillPattern<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_op_stencil_fill_pattern
protected

◆ d_U_synch_fill_pattern

SAMRAI::tbox::Pointer<SAMRAI::xfer::VariableFillPattern<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_synch_fill_pattern
protected

◆ d_U_P_bc_op

SAMRAI::xfer::RefinePatchStrategy<NDIM>* IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_P_bc_op
private

◆ d_U_prolongation_refine_operator

SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineOperator<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_prolongation_refine_operator
private

◆ d_P_prolongation_refine_operator

SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineOperator<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_prolongation_refine_operator
private

◆ d_prolongation_refine_patch_strategy

SAMRAI::tbox::Pointer<SAMRAI::xfer::RefinePatchStrategy<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_prolongation_refine_patch_strategy
private

◆ d_prolongation_refine_algorithm

SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineAlgorithm<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_prolongation_refine_algorithm
private

◆ d_prolongation_refine_schedules

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineSchedule<NDIM> > > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_prolongation_refine_schedules
private

◆ d_U_restriction_coarsen_operator

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_U_restriction_coarsen_operator
private

◆ d_P_restriction_coarsen_operator

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_P_restriction_coarsen_operator
private

◆ d_restriction_coarsen_algorithm

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenAlgorithm<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_restriction_coarsen_algorithm
private

◆ d_restriction_coarsen_schedules

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenSchedule<NDIM> > > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_restriction_coarsen_schedules
private

◆ d_ghostfill_nocoarse_refine_algorithm

SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineAlgorithm<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_ghostfill_nocoarse_refine_algorithm
private

◆ d_ghostfill_nocoarse_refine_schedules

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineSchedule<NDIM> > > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_ghostfill_nocoarse_refine_schedules
private

◆ d_synch_refine_algorithm

SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineAlgorithm<NDIM> > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_synch_refine_algorithm
private

◆ d_synch_refine_schedules

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::RefineSchedule<NDIM> > > IBAMR::StaggeredStokesFACPreconditionerStrategy::d_synch_refine_schedules
private

◆ d_preconditioner

SAMRAI::tbox::ConstPointer<IBTK::FACPreconditioner> IBTK::FACPreconditionerStrategy::d_preconditioner
protectedinherited

◆ d_object_name

const std::string IBTK::FACPreconditionerStrategy::d_object_name
protectedinherited

◆ d_is_initialized

bool IBTK::FACPreconditionerStrategy::d_is_initialized = false
protectedinherited

◆ d_homogeneous_bc

bool IBTK::FACPreconditionerStrategy::d_homogeneous_bc
protectedinherited

◆ d_solution_time

double IBTK::FACPreconditionerStrategy::d_solution_time = std::numeric_limits<double>::quiet_NaN()
protectedinherited

◆ d_current_time

double IBTK::FACPreconditionerStrategy::d_current_time = std::numeric_limits<double>::quiet_NaN()
protectedinherited

◆ d_new_time

double IBTK::FACPreconditionerStrategy::d_new_time = std::numeric_limits<double>::quiet_NaN()
protectedinherited

The documentation for this class was generated from the following file: