|
IBAMR
IBAMR version 0.19.
|
Class StaggeredStokesIBLevelRelaxationFACOperator is a concrete FACPreconditionerStrategy class that implements the operations required by smoothers for staggered-grid (MAC) discretizations of the implicit incompressible Stokes-IB equations. More...
#include <ibamr/StaggeredStokesIBLevelRelaxationFACOperator.h>

Public Member Functions | |
| StaggeredStokesIBLevelRelaxationFACOperator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, const std::string &default_options_prefix) | |
| Constructor. More... | |
| ~StaggeredStokesIBLevelRelaxationFACOperator () | |
| 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, double > | getTimeInterval () const |
| Get the current time interval. More... | |
| virtual double | getDt () const |
| Get the current time step size. More... | |
| virtual void | allocateScratchData () |
| Allocate scratch data. More... | |
| virtual void | deallocateScratchData () |
| Deallocate scratch data. More... | |
Functions for configuring the solver. | |
| void | setIBTimeSteppingType (TimeSteppingType time_stepping_type) |
| Set the IB time stepping type. More... | |
| void | setIBForceJacobian (Mat &A) |
| Set the IB-force Jacobian at the finest patch level (where the structure resides). More... | |
| void | setIBInterpOp (Mat &J) |
| Set the IB-interpolation operator at the finest patch level (where the structure resides). More... | |
Functions for accessing the level operators and solvers. | |
| SAMRAI::tbox::Pointer< StaggeredStokesPETScLevelSolver > | getStaggeredStokesPETScLevelSolver (int ln) const |
| Get the Staggered Stokes IB level solver. More... | |
| Mat | getEulerianElasticityLevelOp (int ln) const |
| Get the Eulerian elasticity level operator. More... | |
| Mat | getProlongationOp (int ln) const |
| Get the prolongation level operator. The prolongation operator prolongs data from level ln to level ln + 1. More... | |
| Vec | getRestrictionScalingOp (int ln) const |
| Get the scaling for level restriction operator. The restriction operator restricts data from level ln + 1 to level ln. Restriction op is defined to be the scaled adjoint of prolongation operator, i.e., R = L P^T. More... | |
Static Public Member Functions | |
| static SAMRAI::tbox::Pointer< StaggeredStokesSolver > | allocate_solver (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, const std::string &default_options_prefix) |
| Static function to construct a StaggeredStokesFACPreconditioner with a StaggeredStokesIBLevelRelaxationFACOperator FAC strategy. 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... | |
Methods for executing, caching, and resetting communication | |
| 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... | |
| 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 |
Logging functions. | |
| 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... | |
| 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() |
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
| IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::StaggeredStokesIBLevelRelaxationFACOperator | ( | std::string | object_name, |
| SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | input_db, | ||
| const std::string & | default_options_prefix | ||
| ) |
| IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::~StaggeredStokesIBLevelRelaxationFACOperator | ( | ) |
|
privatedelete |
|
privatedelete |
| from | The value to copy to this object. |
|
inlinestatic |
| void IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::setIBTimeSteppingType | ( | TimeSteppingType | time_stepping_type | ) |
| void IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::setIBForceJacobian | ( | Mat & | A | ) |
| void IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::setIBInterpOp | ( | Mat & | J | ) |
| SAMRAI::tbox::Pointer<StaggeredStokesPETScLevelSolver> IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::getStaggeredStokesPETScLevelSolver | ( | int | ln | ) | const |
| Mat IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::getEulerianElasticityLevelOp | ( | int | ln | ) | const |
| Mat IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::getProlongationOp | ( | int | ln | ) | const |
| Vec IBAMR::StaggeredStokesIBLevelRelaxationFACOperator::getRestrictionScalingOp | ( | int | ln | ) | const |
|
overridevirtual |
Reimplemented from IBAMR::StaggeredStokesFACPreconditionerStrategy.
|
overridevirtual |
| error | error vector |
| residual | residual vector |
| level_num | level number |
| num_sweeps | number of sweeps to perform |
| performing_pre_sweeps | boolean value that is true when pre-smoothing sweeps are being performed |
| performing_post_sweeps | boolean value that is true when post-smoothing sweeps are being performed |
Implements IBTK::FACPreconditionerStrategy.
|
overrideprotectedvirtual |
Implements IBAMR::StaggeredStokesFACPreconditionerStrategy.
|
overrideprotectedvirtual |
Implements IBAMR::StaggeredStokesFACPreconditionerStrategy.
|
privatedelete |
| that | The value to assign to this object. |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
| U_bc_coefs | IBTK::Vector of pointers to objects that can set the Robin boundary condition coefficients for the velocity |
| P_bc_coef | Pointer to object that can set the Robin boundary condition coefficients for the pressure |
|
virtualinherited |
|
inherited |
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.
|
inherited |
|
inherited |
|
inherited |
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.
|
inherited |
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.
|
inherited |
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.
|
inherited |
|
inherited |
|
overridevirtualinherited |
Implements IBTK::FACPreconditionerStrategy.
|
overridevirtualinherited |
| src | source residual |
| dst | destination residual |
| dst_ln | destination level number |
Implements IBTK::FACPreconditionerStrategy.
|
overridevirtualinherited |
| src | source error vector |
| dst | destination error vector |
| dst_ln | destination level number of data transfer |
Implements IBTK::FACPreconditionerStrategy.
|
overridevirtualinherited |
| src | source error vector |
| dst | destination error vector |
| dst_ln | destination level number of data transfer |
Implements IBTK::FACPreconditionerStrategy.
|
overridevirtualinherited |
| error | error vector |
| residual | residual vector |
| coarsest_ln | coarsest level number |
Implements IBTK::FACPreconditionerStrategy.
|
overridevirtualinherited |
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:
| solution | solution vector u |
| rhs | right hand side vector f |
Reimplemented from IBTK::FACPreconditionerStrategy.
|
overridevirtualinherited |
Remove all hierarchy-dependent data set by initializeOperatorState().
Reimplemented from IBTK::FACPreconditionerStrategy.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
protectedvirtualinherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
1.8.17