|
| StaggeredStokesLevelRelaxationFACOperator (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, const std::string &default_options_prefix) |
| Constructor.
|
|
| ~StaggeredStokesLevelRelaxationFACOperator () |
| Destructor.
|
|
| 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.
|
|
| ~StaggeredStokesFACPreconditionerStrategy () |
| Destructor.
|
|
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.
|
|
virtual void | setComponentsHaveNullspace (const bool has_velocity_nullspace, const bool has_pressure_nullspace) |
| Set if velocity and pressure have nullspace.
|
|
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.
|
|
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.
|
|
void | setCoarseSolverType (const std::string &coarse_solver_type) |
| Specify the coarse level solver.
|
|
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.
|
|
void | setRestrictionMethods (const std::string &U_restriction_method, const std::string &P_restriction_method) |
| Set the restriction methods.
|
|
void | setToZero (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &vec, int level_num) override |
| Zero the supplied vector.
|
|
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.
|
|
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...
|
|
| FACPreconditionerStrategy (std::string object_name, bool homogeneous_bc=false) |
| Constructor.
|
|
virtual | ~FACPreconditionerStrategy ()=default |
| Empty virtual desctructor.
|
|
const std::string & | getName () const |
| Return the object name.
|
|
virtual bool | getIsInitialized () const |
| Return whether the operator is initialized.
|
|
virtual void | setFACPreconditioner (SAMRAI::tbox::ConstPointer< FACPreconditioner > preconditioner) |
| Method to allow the FACPreconditioner object to register itself with the concrete FACPreconditionerStrategy.
|
|
virtual void | setHomogeneousBc (bool homogeneous_bc) |
| Set whether the solver should use homogeneous boundary conditions.
|
|
virtual bool | getHomogeneousBc () const |
| Return whether the solver is using homogeneous boundary conditions.
|
|
virtual void | setSolutionTime (double solution_time) |
| Set the time at which the solution is to be evaluated.
|
|
virtual double | getSolutionTime () const |
| Get the time at which the solution is being evaluated.
|
|
virtual void | setTimeInterval (double current_time, double new_time) |
| Set the current time interval.
|
|
virtual std::pair< double, double > | getTimeInterval () const |
| Get the current time interval.
|
|
virtual double | getDt () const |
| Get the current time step size.
|
|
virtual void | allocateScratchData () |
| Allocate scratch data.
|
|
virtual void | deallocateScratchData () |
| Deallocate scratch data.
|
|
virtual void | printClassData (std::ostream &stream) |
| Print class data to stream.
|
|
|
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.
|
|
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.
|
|
void | xeqScheduleGhostFillNoCoarse (const std::pair< int, int > &dst_idxs, int dst_ln) |
| Execute schedule for filling ghosts on the specified level.
|
|
void | xeqScheduleDataSynch (int dst_idx, int dst_ln) |
| Execute schedule for synchronizing data on the specified level.
|
|
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.
|
|
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > | d_solution |
|
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > | d_rhs |
|
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > | d_hierarchy |
|
int | d_coarsest_ln = IBTK::invalid_level_number |
|
int | d_finest_ln = IBTK::invalid_level_number |
|
std::vector< SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > > | d_level_bdry_fill_ops |
|
std::vector< SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > > | d_level_math_ops |
|
bool | d_in_initialize_operator_state = false |
|
int | d_coarsest_reset_ln = IBTK::invalid_level_number |
|
int | d_finest_reset_ln = IBTK::invalid_level_number |
|
std::string | d_smoother_type = "ADDITIVE" |
|
std::string | d_U_prolongation_method = "CONSTANT_REFINE" |
|
std::string | d_P_prolongation_method = "LINEAR_REFINE" |
|
std::string | d_U_restriction_method = "CONSERVATIVE_COARSEN" |
|
std::string | d_P_restriction_method = "CONSERVATIVE_COARSEN" |
|
bool | d_coarse_solver_init_subclass = false |
|
std::string | d_coarse_solver_type = "LEVEL_SMOOTHER" |
|
std::string | d_coarse_solver_default_options_prefix |
|
double | d_coarse_solver_rel_residual_tol = 1.0e-5 |
|
double | d_coarse_solver_abs_residual_tol = 1.0e-50 |
|
int | d_coarse_solver_max_iterations = 10 |
|
SAMRAI::tbox::Pointer< IBAMR::StaggeredStokesSolver > | d_coarse_solver |
|
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_coarse_solver_db |
|
bool | d_has_velocity_nullspace = false |
|
bool | d_has_pressure_nullspace = false |
|
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > | d_context |
|
int | d_side_scratch_idx = IBTK::invalid_index |
|
int | d_cell_scratch_idx = IBTK::invalid_index |
|
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< StaggeredStokesPhysicalBoundaryHelper > | d_bc_helper |
|
const int | d_gcw |
|
SAMRAI::tbox::Pointer< IBTK::CartSideRobinPhysBdryOp > | d_U_bc_op |
|
SAMRAI::tbox::Pointer< IBTK::CartCellRobinPhysBdryOp > | d_P_bc_op |
|
SAMRAI::tbox::Pointer< IBTK::CoarseFineBoundaryRefinePatchStrategy > | d_U_cf_bdry_op |
|
SAMRAI::tbox::Pointer< IBTK::CoarseFineBoundaryRefinePatchStrategy > | d_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::tbox::ConstPointer< IBTK::FACPreconditioner > | d_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() |
|
Class StaggeredStokesLevelRelaxationFACOperator is a concrete StaggeredStokesFACPreconditionerStrategy implementing a level relaxation smoother for use as a multigrid preconditioner.