|
| PoissonFACPreconditioner (const std::string &object_name, SAMRAI::tbox::Pointer< PoissonFACPreconditionerStrategy > fac_strategy, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, std::string default_options_prefix) |
|
| ~PoissonFACPreconditioner ()=default |
|
void | setPoissonSpecifications (const SAMRAI::solv::PoissonSpecifications &poisson_spec) override |
| Set the SAMRAI::solv::PoissonSpecifications object used to specify the coefficients for the scalar-valued or vector-valued Laplace operator.
|
|
void | setPhysicalBcCoef (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef) override |
| Set the SAMRAI::solv::RobinBcCoefStrategy object used to specify physical boundary conditions. More...
|
|
void | setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs) override |
| Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More...
|
|
| FACPreconditioner (std::string object_name, SAMRAI::tbox::Pointer< FACPreconditionerStrategy > fac_strategy, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, const std::string &default_options_prefix) |
|
| ~FACPreconditioner () |
|
void | setHomogeneousBc (bool homogeneous_bc) override |
| Set whether the solver should use homogeneous boundary conditions.
|
|
void | setSolutionTime (double solution_time) override |
| Set the time at which the solution is to be evaluated.
|
|
void | setTimeInterval (double current_time, double new_time) override |
| Set the current time interval.
|
|
bool | solveSystem (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &x, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &b) override |
| Solve the linear system of equations for . More...
|
|
void | initializeSolverState (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &x, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &b) override |
| Compute hierarchy dependent data required for solving . More...
|
|
void | deallocateSolverState () override |
| Remove all hierarchy dependent data allocated by initializeSolverState(). More...
|
|
void | setInitialGuessNonzero (bool initial_guess_nonzero=true) override |
| Set whether the initial guess is non-zero.
|
|
void | setMaxIterations (int max_iterations) override |
| Set the maximum number of iterations to use per solve.
|
|
void | setMGCycleType (MGCycleType cycle_type) |
| Set the multigrid algorithm cycle type.
|
|
MGCycleType | getMGCycleType () const |
| Get the multigrid algorithm cycle type.
|
|
void | setNumPreSmoothingSweeps (int num_pre_sweeps) |
| Set the number of pre-smoothing sweeps to employ.
|
|
int | getNumPreSmoothingSweeps () const |
| Get the number of pre-smoothing sweeps employed by the preconditioner.
|
|
void | setNumPostSmoothingSweeps (int num_post_sweeps) |
| Set the number of post-smoothing sweeps to employ.
|
|
int | getNumPostSmoothingSweeps () const |
| Get the number of post-smoothing sweeps employed by the preconditioner.
|
|
SAMRAI::tbox::Pointer< FACPreconditionerStrategy > | getFACPreconditionerStrategy () const |
| Get the FAC preconditioner strategy objects employed by the preconditioner.
|
|
| LinearSolver () |
| Constructor.
|
|
virtual | ~LinearSolver () |
| Empty virtual destructor.
|
|
virtual void | setNullspace (bool nullspace_contains_constant_vec, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > &nullspace_basis_vecs=std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > >()) |
| Set the nullspace of the linear system. More...
|
|
virtual bool | getNullspaceContainsConstantVector () const |
| Get whether the nullspace of the linear system contains th constant vector.
|
|
virtual const std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > & | getNullspaceBasisVectors () const |
| Get the basis vectors for the nullspace of the linear system.
|
|
virtual bool | getInitialGuessNonzero () const |
| Get whether the initial guess is non-zero.
|
|
virtual void | printClassData (std::ostream &stream) override |
| Print class data to stream.
|
|
| GeneralSolver ()=default |
| Constructor.
|
|
virtual | ~GeneralSolver ()=default |
| Empty virtual destructor.
|
|
const std::string & | getName () const |
| Return the object name.
|
|
virtual bool | getIsInitialized () const |
| Return whether the operator is initialized.
|
|
virtual bool | getHomogeneousBc () const |
| Return whether the solver is using homogeneous boundary conditions.
|
|
virtual double | getSolutionTime () const |
| Get the time at which the solution is being evaluated.
|
|
virtual std::pair< double, double > | getTimeInterval () const |
| Get the current time interval.
|
|
virtual double | getDt () const |
| Get the current time step size.
|
|
virtual void | setHierarchyMathOps (SAMRAI::tbox::Pointer< HierarchyMathOps > hier_math_ops) |
| Set the HierarchyMathOps object used by the solver.
|
|
virtual SAMRAI::tbox::Pointer< HierarchyMathOps > | getHierarchyMathOps () const |
| Get the HierarchyMathOps object used by the solver.
|
|
virtual int | getMaxIterations () const |
| Get the maximum number of nonlinear iterations to use per solve.
|
|
virtual void | setAbsoluteTolerance (double abs_residual_tol) |
| Set the absolute residual tolerance for convergence.
|
|
virtual double | getAbsoluteTolerance () const |
| Get the absolute residual tolerance for convergence.
|
|
virtual void | setRelativeTolerance (double rel_residual_tol) |
| Set the relative residual tolerance for convergence.
|
|
virtual double | getRelativeTolerance () const |
| Get the relative residual tolerance for convergence.
|
|
virtual int | getNumIterations () const |
| Return the iteration count from the most recent solve.
|
|
virtual double | getResidualNorm () const |
| Return the residual norm from the most recent iteration.
|
|
virtual void | setLoggingEnabled (bool enable_logging=true) |
| Enable or disable logging.
|
|
virtual bool | getLoggingEnabled () const |
| Determine whether logging is enabled or disabled.
|
|
| PoissonSolver ()=default |
| Default constructor.
|
|
| ~PoissonSolver ()=default |
| Default destructor.
|
|
|
void | FACVCycleNoPreSmoothing (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &u, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &f, int level_num) |
|
void | muCycle (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &u, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &f, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &r, int level_num, int mu) |
|
void | FCycle (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &u, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &f, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &r, int level_num) |
|
void | FMGCycle (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &u, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &f, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &r, int level_num, int mu) |
|
void | init (const std::string &object_name, bool homogeneous_bc) |
|
void | initSpecialized (const std::string &object_name, bool homogeneous_bc) override |
|
SAMRAI::tbox::Pointer< FACPreconditionerStrategy > | d_fac_strategy |
|
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > | d_hierarchy |
|
int | d_coarsest_ln = 0 |
|
int | d_finest_ln = 0 |
|
MGCycleType | d_cycle_type = V_CYCLE |
|
int | d_num_pre_sweeps = 0 |
|
int | d_num_post_sweeps = 2 |
|
bool | d_initial_guess_nonzero = true |
|
bool | d_nullspace_contains_constant_vec = false |
|
std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > | d_nullspace_basis_vecs |
|
std::string | d_object_name = "unitialized" |
|
bool | d_is_initialized = false |
|
bool | d_homogeneous_bc = 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() |
|
double | d_rel_residual_tol = 0.0 |
|
double | d_abs_residual_tol = 0.0 |
|
int | d_max_iterations = 100 |
|
int | d_current_iterations = 0 |
|
double | d_current_residual_norm = std::numeric_limits<double>::quiet_NaN() |
|
SAMRAI::tbox::Pointer< HierarchyMathOps > | d_hier_math_ops |
|
bool | d_hier_math_ops_external = false |
|
bool | d_enable_logging = false |
|
SAMRAI::solv::PoissonSpecifications | d_poisson_spec = SAMRAI::solv::PoissonSpecifications("") |
|
std::unique_ptr< SAMRAI::solv::RobinBcCoefStrategy< NDIM > > | d_default_bc_coef |
|
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > | d_bc_coefs |
|
Class PoissonFACPreconditioner is a FACPreconditioner that has been specialized for Poisson problems.