|
| | VCSCViscousOpPointRelaxationFACOperator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, std::string default_options_prefix) |
| | Constructor. More...
|
| |
| | ~VCSCViscousOpPointRelaxationFACOperator () |
| | Destructor. More...
|
| |
| virtual void | setPoissonSpecifications (const SAMRAI::solv::PoissonSpecifications &poisson_spec) |
| | Set the SAMRAI::solv::PoissonSpecifications object used to specify the coefficients for the scalar-valued or vector-valued Laplace operator. More...
|
| |
| virtual void | setPhysicalBcCoef (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef) |
| | Set the SAMRAI::solv::RobinBcCoefStrategy object used to specify physical boundary conditions. More...
|
| |
| virtual void | setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs) |
| | Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. 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...
|
| |
|
| 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 | 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 | setProlongationMethod (const std::string &prolongation_method) |
| | Set the name of the prolongation method. More...
|
| |
| void | setRestrictionMethod (const std::string &restriction_method) |
| | Set the name of the restriction method. More...
|
| |
|
| 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 | 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 | setProlongationMethod (const std::string &prolongation_method) |
| | Set the name of the prolongation method. More...
|
| |
| void | setRestrictionMethod (const std::string &restriction_method) |
| | Set the name of the restriction method. More...
|
| |
|
| 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 | 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 | setProlongationMethod (const std::string &prolongation_method) |
| | Set the name of the prolongation method. More...
|
| |
| void | setRestrictionMethod (const std::string &restriction_method) |
| | Set the name of the restriction method. More...
|
| |
|
| void | setSmootherType (const std::string &smoother_type) override |
| | Specify the smoother type. More...
|
| |
| void | setCoarseSolverType (const std::string &coarse_solver_type) override |
| | Specify the coarse level solver. More...
|
| |
|
| 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 | 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 | setProlongationMethod (const std::string &prolongation_method) |
| | Set the name of the prolongation method. More...
|
| |
| void | setRestrictionMethod (const std::string &restriction_method) |
| | Set the name of the restriction method. More...
|
| |
|
| void | setSmootherType (const std::string &smoother_type) override |
| | Specify the smoother type. More...
|
| |
| void | setCoarseSolverType (const std::string &coarse_solver_type) override |
| | Specify the coarse level solver. More...
|
| |
|
| 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 | 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 | setProlongationMethod (const std::string &prolongation_method) |
| | Set the name of the prolongation method. More...
|
| |
| void | setRestrictionMethod (const std::string &restriction_method) |
| | Set the name of the restriction method. More...
|
| |
|
| void | setToZero (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &vec, int level_num) override |
| | Zero the supplied vector. 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...
|
| |
| 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...
|
| |
|
|
| 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< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > > | d_level_data_ops |
| |
| 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 = "DEFAULT" |
| |
| std::string | d_prolongation_method = "DEFAULT" |
| |
| std::string | d_restriction_method = "DEFAULT" |
| |
| std::string | d_coarse_solver_type = "DEFAULT" |
| |
| 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< SAMRAI::hier::VariableContext > | d_context |
| |
| int | d_scratch_idx = IBTK::invalid_index |
| |
|
| 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< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > > | d_level_data_ops |
| |
| 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 = "DEFAULT" |
| |
| std::string | d_prolongation_method = "DEFAULT" |
| |
| std::string | d_restriction_method = "DEFAULT" |
| |
| std::string | d_coarse_solver_type = "DEFAULT" |
| |
| 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< SAMRAI::hier::VariableContext > | d_context |
| |
| int | d_scratch_idx = IBTK::invalid_index |
| |
|
| 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< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > > | d_level_data_ops |
| |
| 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 = "DEFAULT" |
| |
| std::string | d_prolongation_method = "DEFAULT" |
| |
| std::string | d_restriction_method = "DEFAULT" |
| |
| std::string | d_coarse_solver_type = "DEFAULT" |
| |
| 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< SAMRAI::hier::VariableContext > | d_context |
| |
| int | d_scratch_idx = IBTK::invalid_index |
| |
|
| 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< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > > | d_level_data_ops |
| |
| 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 = "DEFAULT" |
| |
| std::string | d_prolongation_method = "DEFAULT" |
| |
| std::string | d_restriction_method = "DEFAULT" |
| |
| std::string | d_coarse_solver_type = "DEFAULT" |
| |
| 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< SAMRAI::hier::VariableContext > | d_context |
| |
| int | d_scratch_idx = IBTK::invalid_index |
| |
|
| 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< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > > | d_level_data_ops |
| |
| 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 = "DEFAULT" |
| |
| std::string | d_prolongation_method = "DEFAULT" |
| |
| std::string | d_restriction_method = "DEFAULT" |
| |
| std::string | d_coarse_solver_type = "DEFAULT" |
| |
| 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< SAMRAI::hier::VariableContext > | d_context |
| |
| int | d_scratch_idx = IBTK::invalid_index |
| |
|
| 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< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > > | d_level_data_ops |
| |
| 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 = "DEFAULT" |
| |
| std::string | d_prolongation_method = "DEFAULT" |
| |
| std::string | d_restriction_method = "DEFAULT" |
| |
| std::string | d_coarse_solver_type = "DEFAULT" |
| |
| 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< SAMRAI::hier::VariableContext > | d_context |
| |
| int | d_scratch_idx = IBTK::invalid_index |
| |
|
| IBTK::VCInterpType | d_D_interp_type |
| |
| SAMRAI::tbox::Array< double > | d_A_scale |
| |
| 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) override |
| | Perform a given number of relaxations on the error. 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 composite grid residual on the specified range of levels. 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 | setDPatchDataInterpolationType (IBTK::VCInterpType D_interp_type) |
| | Set the interpolation type to be used in computing the variable coefficient viscous Laplacian. More...
|
| |
| void | setOperatorScaling (SAMRAI::tbox::Array< double > A_scale) |
| | Set the scaling of the viscous operator and right-hand side. More...
|
| |
| SAMRAI::tbox::Pointer< PoissonSolver > | getCoarseSolver () |
| | Get the coarse level solver. More...
|
| |
| void | initializeOperatorStateSpecialized (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &solution, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &rhs, int coarsest_reset_ln, int finest_reset_ln) override |
| | Compute implementation-specific hierarchy-dependent data. More...
|
| |
| | VCSCViscousOpPointRelaxationFACOperator ()=delete |
| | Default constructor. More...
|
| |
| | VCSCViscousOpPointRelaxationFACOperator (const VCSCViscousOpPointRelaxationFACOperator &from)=delete |
| | Copy constructor. More...
|
| |
| VCSCViscousOpPointRelaxationFACOperator & | operator= (const VCSCViscousOpPointRelaxationFACOperator &that)=delete |
| | Assignment operator. More...
|
| |
This class provides operators that are used by class FACPreconditioner to solve the vector elliptic equation of the form
\[ C u + \nabla \cdot \mu (\nabla u + (\nabla u)^T) = f \]
using a side-centered, globally second-order accurate finite-difference discretization, where
- \( C \), \( \mu \) and \( f \) are independent of \( u \),
- \( C \) is a spatially varying damping factor,
- \( \mu \) is a spatially varying diffusion coefficient, and
- \( f \) is a side-centered vector function.
Robin boundary conditions may be specified at physical boundaries; see class SAMRAI::solv::RobinBcCoefStrategy.
Sample parameters for initialization from database (and their default values):
smoother_type = "PATCH_GAUSS_SEIDEL" // see setSmootherType()
prolongation_method = "CONSTANT_REFINE" // see setProlongationMethod()
restriction_method = "CONSERVATIVE_COARSEN" // see setRestrictionMethod()
coarse_solver_type = "HYPRE_LEVEL_SOLVER" // 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 = 1 // see setCoarseSolverMaxIterations()
coarse_solver_db = { ... } // SAMRAI::tbox::Database for initializing coarse
level solver