escript  Revision_
Public Member Functions | Protected Attributes
escript::SolverBuddy Class Reference

#include <SolverOptions.h>

List of all members.

Public Member Functions

 SolverBuddy ()
std::string getSummary () const
const char * getName (int key) const
void resetDiagnostics (bool all=false)
void updateDiagnostics (std::string key, boost::python::object value)
double getDiagnostics (std::string name) const
bool hasConverged () const
void setCoarsening (int coarsening)
SolverOptions getCoarsening () const
void setMinCoarseMatrixSize (int size)
int getMinCoarseMatrixSize () const
void setPreconditioner (int preconditioner)
SolverOptions getPreconditioner () const
void setSmoother (int smoother)
SolverOptions getSmoother () const
void setSolverMethod (int method)
SolverOptions getSolverMethod () const
void setPackage (int package)
SolverOptions getPackage () const
void setReordering (int ordering)
SolverOptions getReordering () const
void setRestart (int restart)
int getRestart () const
int _getRestartForC () const
void setDiagonalDominanceThreshold (double threshold)
double getDiagonalDominanceThreshold () const
void setTruncation (int truncation)
int getTruncation () const
void setInnerIterMax (int iter_max)
int getInnerIterMax () const
void setIterMax (int iter_max)
int getIterMax () const
void setLevelMax (int level_max)
int getLevelMax () const
void setCycleType (int cycle_type)
int getCycleType () const
void setCoarseningThreshold (double theta)
double getCoarseningThreshold () const
void setNumSweeps (int sweeps)
int getNumSweeps () const
void setNumPreSweeps (int sweeps)
int getNumPreSweeps () const
void setNumPostSweeps (int sweeps)
int getNumPostSweeps () const
void setTolerance (double rtol)
double getTolerance () const
void setAbsoluteTolerance (double atol)
double getAbsoluteTolerance () const
void setInnerTolerance (double rtol)
double getInnerTolerance () const
void setDropTolerance (double drop_tol)
double getDropTolerance () const
void setDropStorage (double drop)
double getDropStorage () const
void setRelaxationFactor (double factor)
double getRelaxationFactor () const
bool isSymmetric () const
void setSymmetryOn ()
void setSymmetryOff ()
void setSymmetry (bool symmetry)
bool isVerbose () const
void setVerbosityOn ()
void setVerbosityOff ()
void setVerbosity (bool verbosity)
bool adaptInnerTolerance () const
void setInnerToleranceAdaptionOn ()
void setInnerToleranceAdaptionOff ()
void setInnerToleranceAdaption (bool adaption)
bool acceptConvergenceFailure () const
void setAcceptanceConvergenceFailureOn ()
void setAcceptanceConvergenceFailureOff ()
void setAcceptanceConvergenceFailure (bool acceptance)
bool useLocalPreconditioner () const
void setLocalPreconditionerOn ()
void setLocalPreconditionerOff ()
void setLocalPreconditioner (bool local)
void setMinCoarseMatrixSparsity (double sparsity)
double getMinCoarseMatrixSparsity () const
void setNumRefinements (int refinements)
int getNumRefinements () const
void setNumCoarseMatrixRefinements (int refinements)
int getNumCoarseMatrixRefinements () const
bool usePanel () const
void setUsePanelOn ()
void setUsePanelOff ()
void setUsePanel (bool use)
void setAMGInterpolation (int interpolation)
SolverOptions getAMGInterpolation () const
void setODESolver (int solver)
SolverOptions getODESolver () const

Protected Attributes

int level_max
double coarsening_threshold
SolverOptions smoother
int sweeps
int pre_sweeps
int post_sweeps
double tolerance
double absolute_tolerance
double inner_tolerance
double drop_tolerance
double drop_storage
int iter_max
int inner_iter_max
int truncation
int restart
bool symmetric
bool verbose
bool adapt_inner_tolerance
bool accept_convergence_failure
SolverOptions reordering
SolverOptions package
SolverOptions method
SolverOptions preconditioner
SolverOptions coarsening
int MinCoarseMatrixSize
double relaxation
bool use_local_preconditioner
double min_sparsity
int refinements
int coarse_refinements
bool use_panel
double diagonal_dominance_threshold
SolverOptions amg_interpolation_method
int cycle_type
SolverOptions ode_solver
int num_iter
int num_level
int num_inner_iter
double time
double set_up_time
double net_time
double residual_norm
bool converged
int preconditioner_size
bool time_step_backtracking_used
int cum_num_inner_iter
int cum_num_iter
double cum_time
double cum_set_up_time
double cum_net_time
double coarse_level_sparsity
int num_coarse_unknowns

Constructor & Destructor Documentation


Member Function Documentation

Returns the number of iterations steps after which GMRES performs a restart. If -1 is returned no restart is performed.

References getRestart().

Referenced by paso::SystemMatrixAdapter::escriptToPasoOptions().

Returns ``true`` if a failure to meet the stopping criteria within the given number of iteration steps is not raising in exception. This is useful if a solver is used in a non-linear context where the non-linear solver can continue even if the returned the solution does not necessarily meet the stopping criteria. One can use the `hasConverged` method to check if the last call to the solver was successful.

Returns:
``true`` if a failure to achieve convergence is accepted.

References accept_convergence_failure.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns ``true`` if the tolerance of the inner solver is selected automatically. Otherwise the inner tolerance set by `setInnerTolerance` is used.

Returns:
``true`` if inner tolerance adaption is chosen.

References adapt_inner_tolerance.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the absolute tolerance for the solver

References absolute_tolerance.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns key of the interpolation method for the SAMG preconditioner

References amg_interpolation_method.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the key of the coarsening algorithm to be applied AMG, AMLI or BoomerAMG

References coarsening.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the threshold for coarsening in the algebraic multi level solver or preconditioner

References coarsening_threshold.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the cycle type (V- or W-cycle) to be used in an algebraic multi level solver or preconditioner

References cycle_type.

Referenced by BOOST_PYTHON_MODULE(), and getSummary().

double escript::SolverBuddy::getDiagnostics ( std::string  name) const

Returns the diagnostic information for the given ``name``. Possible values are:

  • "num_iter": the number of iteration steps
  • "cum_num_iter": the cumulative number of iteration steps
  • "num_level": the number of level in multi level solver
  • "num_inner_iter": the number of inner iteration steps
  • "cum_num_inner_iter": the cumulative number of inner iteration steps
  • "time": execution time
  • "cum_time": cumulative execution time
  • "set_up_time": time to set up of the solver, typically this includes factorization and reordering
  • "cum_set_up_time": cumulative time to set up of the solver
  • "net_time": net execution time, excluding setup time for the solver and execution time for preconditioner
  • "cum_net_time": cumulative net execution time
  • "preconditioner_size": size of preconditioner [Bytes]
  • "converged": return true if solution has converged.
  • "time_step_backtracking_used": returns true if time step back tracking has been used.
  • "coarse_level_sparsity": returns the sparsity of the matrix on the coarsest level
  • "num_coarse_unknowns": returns the number of unknowns on the coarsest level
Parameters:
namename of diagnostic information to return
Returns:
requested value. 0 is returned if the value is yet to be defined.
Note:
If the solver has thrown an exception diagnostic values have an undefined status.

References coarse_level_sparsity, converged, cum_net_time, cum_num_inner_iter, cum_num_iter, cum_set_up_time, cum_time, net_time, num_coarse_unknowns, num_inner_iter, num_iter, num_level, preconditioner_size, residual_norm, set_up_time, time, and time_step_backtracking_used.

Referenced by BOOST_PYTHON_MODULE().

Returns the threshold for diagonal dominant rows which are eliminated during AMG coarsening.

References diagonal_dominance_threshold.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the maximum allowed increase in storage for ILUT

References drop_storage.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the relative drop tolerance in ILUT

References drop_tolerance.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns maximum number of inner iteration steps

References inner_iter_max.

Referenced by BOOST_PYTHON_MODULE(), and paso::SystemMatrixAdapter::escriptToPasoOptions().

Returns the relative tolerance for an inner iteration scheme

References inner_tolerance.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns maximum number of iteration steps

References iter_max.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the maximum number of coarsening levels to be used in an algebraic multi level solver or preconditioner

References level_max.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the minimum size of the coarsest level matrix in AMG or AMLI

References MinCoarseMatrixSize.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the minimum sparsity on the coarsest level. Typically a direct solver is used when the sparsity becomes bigger than the set limit.

Returns:
minimal sparsity

References min_sparsity.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

const char * escript::SolverBuddy::getName ( int  key) const

Returns the name of a given key

Parameters:
keya valid key from SolverOptions

References escript::ESCRIPT_AGGREGATION_COARSENING, escript::ESCRIPT_AMG, escript::ESCRIPT_AMLI, escript::ESCRIPT_BACKWARD_EULER, escript::ESCRIPT_BICGSTAB, escript::ESCRIPT_BOOMERAMG, escript::ESCRIPT_CGS, escript::ESCRIPT_CHOLEVSKY, escript::ESCRIPT_CIJP_COARSENING, escript::ESCRIPT_CIJP_FIXED_RANDOM_COARSENING, escript::ESCRIPT_CLASSIC_INTERPOLATION, escript::ESCRIPT_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, escript::ESCRIPT_CR, escript::ESCRIPT_CRANK_NICOLSON, escript::ESCRIPT_DEFAULT, escript::ESCRIPT_DEFAULT_REORDERING, escript::ESCRIPT_DIRECT, escript::ESCRIPT_DIRECT_INTERPOLATION, escript::ESCRIPT_FALGOUT_COARSENING, escript::ESCRIPT_GAUSS_SEIDEL, escript::ESCRIPT_GMRES, escript::ESCRIPT_HMIS_COARSENING, escript::ESCRIPT_HRZ_LUMPING, escript::ESCRIPT_ILU0, escript::ESCRIPT_ILUT, escript::ESCRIPT_ITERATIVE, escript::ESCRIPT_JACOBI, escript::ESCRIPT_LINEAR_CRANK_NICOLSON, escript::ESCRIPT_MINIMUM_FILL_IN, escript::ESCRIPT_MINRES, escript::ESCRIPT_MKL, escript::ESCRIPT_NESTED_DISSECTION, escript::ESCRIPT_NO_PRECONDITIONER, escript::ESCRIPT_NO_REORDERING, escript::ESCRIPT_NONLINEAR_GMRES, escript::ESCRIPT_PASO, escript::ESCRIPT_PASTIX, escript::ESCRIPT_PCG, escript::ESCRIPT_PMIS_COARSENING, escript::ESCRIPT_PRES20, escript::ESCRIPT_REC_ILU, escript::ESCRIPT_RILU, escript::ESCRIPT_ROWSUM_LUMPING, escript::ESCRIPT_RUGE_STUEBEN_COARSENING, escript::ESCRIPT_STANDARD_COARSENING, escript::ESCRIPT_SUPER_LU, escript::ESCRIPT_TFQMR, escript::ESCRIPT_TRILINOS, escript::ESCRIPT_UMFPACK, and escript::ESCRIPT_YAIR_SHAPIRA_COARSENING.

Referenced by BOOST_PYTHON_MODULE(), and getSummary().

Returns the number of refinement steps to refine the solution on the coarsest level when a direct solver is applied.

References coarse_refinements.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the number of sweeps in the post-smoothing step of a multi level solver or preconditioner

References post_sweeps.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns he number of sweeps in the pre-smoothing step of a multi level solver or preconditioner

References pre_sweeps.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the number of refinement steps to refine the solution when a direct solver is applied.

References refinements.

Referenced by BOOST_PYTHON_MODULE(), and paso::SystemMatrixAdapter::escriptToPasoOptions().

Returns the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.

References sweeps.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns key of the solver method for ODEs.

References ode_solver.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the solver package key

References package.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the key of the preconditioner to be used.

References preconditioner.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the relaxation factor used to add dropped elements in RILU to the main diagonal.

References relaxation.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the key of the reordering method to be applied if supported by the solver.

References reordering.

Referenced by BOOST_PYTHON_MODULE(), and paso::SystemMatrixAdapter::escriptToPasoOptions().

Returns the number of iterations steps after which GMRES performs a restart. If 0 is returned no restart is performed.

References restart.

Referenced by _getRestartForC(), BOOST_PYTHON_MODULE(), and getSummary().

Returns key of the smoother to be used.

References smoother.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns key of the solver method to be used.

References method.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

std::string escript::SolverBuddy::getSummary ( ) const

Returns the relative tolerance for the solver

References tolerance.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns the number of residuals in GMRES to be stored for orthogonalization

References truncation.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns ``true`` if the last solver call has been finalized successfully.

Note:
if an exception has been thrown by the solver the status of this flag is undefined.

References converged.

Referenced by BOOST_PYTHON_MODULE().

Checks if symmetry of the coefficient matrix is indicated.

Returns:
true if a symmetric PDE is indicated, false otherwise

References symmetric.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns ``true`` if the solver is expected to be verbose.

Returns:
true if verbosity is switched on.

References verbose.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

void escript::SolverBuddy::resetDiagnostics ( bool  all = false)

Resets the diagnostics

Parameters:
allif ``all`` is ``true`` all diagnostics including accumulative counters are reset.

References converged, cum_net_time, cum_num_inner_iter, cum_num_iter, cum_set_up_time, cum_time, net_time, num_inner_iter, num_iter, num_level, preconditioner_size, residual_norm, set_up_time, time, and time_step_backtracking_used.

Referenced by BOOST_PYTHON_MODULE(), and SolverBuddy().

Sets the absolute tolerance for the solver

Parameters:
atolabsolute tolerance

References absolute_tolerance.

Referenced by BOOST_PYTHON_MODULE().

Sets the flag to indicate the acceptance of a failure of convergence.

Parameters:
acceptIf ``true``, any failure to achieve convergence is accepted.

References setAcceptanceConvergenceFailureOff(), and setAcceptanceConvergenceFailureOn().

Referenced by BOOST_PYTHON_MODULE().

Switches the acceptance of a failure of convergence off.

References accept_convergence_failure.

Referenced by BOOST_PYTHON_MODULE(), and setAcceptanceConvergenceFailure().

Switches the acceptance of a failure of convergence on

References accept_convergence_failure.

Referenced by BOOST_PYTHON_MODULE(), and setAcceptanceConvergenceFailure().

void escript::SolverBuddy::setAMGInterpolation ( int  interpolation)

Set the interpolation method for the AMG preconditioner.

Parameters:
methodkey of the interpolation method to be used, should be in `ESCRIPT_CLASSIC_INTERPOLATION_WITH_FF_COUPLING`, `ESCRIPT_CLASSIC_INTERPOLATION`, `ESCRIPT_DIRECT_INTERPOLATION`

References amg_interpolation_method, escript::ESCRIPT_CLASSIC_INTERPOLATION, escript::ESCRIPT_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, escript::ESCRIPT_DIRECT_INTERPOLATION, and method.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setCoarsening ( int  coarsening)

Sets the key of the coarsening method to be applied in AMG or AMLI or BoomerAMG

Parameters:
coarseningselects the coarsening method, should be in `ESCRIPT_DEFAULT`, `ESCRIPT_YAIR_SHAPIRA_COARSENING`, `ESCRIPT_RUGE_STUEBEN_COARSENING`, `ESCRIPT_AGGREGATION_COARSENING`, `ESCRIPT_CIJP_FIXED_RANDOM_COARSENING`, `ESCRIPT_CIJP_COARSENING`, `ESCRIPT_FALGOUT_COARSENING`, `ESCRIPT_PMIS_COARSENING`, `ESCRIPT_HMIS_COARSENING`

References coarsening, escript::ESCRIPT_AGGREGATION_COARSENING, escript::ESCRIPT_CIJP_COARSENING, escript::ESCRIPT_CIJP_FIXED_RANDOM_COARSENING, escript::ESCRIPT_DEFAULT, escript::ESCRIPT_FALGOUT_COARSENING, escript::ESCRIPT_HMIS_COARSENING, escript::ESCRIPT_PMIS_COARSENING, escript::ESCRIPT_RUGE_STUEBEN_COARSENING, escript::ESCRIPT_STANDARD_COARSENING, escript::ESCRIPT_YAIR_SHAPIRA_COARSENING, and method.

Referenced by BOOST_PYTHON_MODULE().

Sets the threshold for coarsening in the algebraic multi level solver or preconditioner

Parameters:
thetathreshold for coarsening

References coarsening_threshold.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setCycleType ( int  cycle_type)

Sets the cycle type (V-cycle or W-cycle) to be used in an algebraic multi level solver or preconditioner

Parameters:
cycle_typethe type of cycle

References cycle_type.

Referenced by BOOST_PYTHON_MODULE().

Sets the threshold for diagonal dominant rows which are eliminated during AMG coarsening.

References diagonal_dominance_threshold.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setDropStorage ( double  drop)

Sets the maximum allowed increase in storage for ILUT. An increase of 2 would mean that a doubling of the storage needed for the coefficient matrix is allowed during ILUT factorization.

Parameters:
storageallowed storage increase

References drop_storage.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setDropTolerance ( double  drop_tol)

Sets the relative drop tolerance in ILUT

Parameters:
drop_toldrop tolerance

References drop_tolerance.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setInnerIterMax ( int  iter_max)

Sets the maximum number of iteration steps for the inner iteration.

Parameters:
iter_maxmaximum number of inner iterations

References inner_iter_max, and iter_max.

Referenced by BOOST_PYTHON_MODULE().

Sets the relative tolerance for an inner iteration scheme for instance on the coarsest level in a multi-level scheme.

Parameters:
rtolinner relative tolerance

References inner_tolerance.

Referenced by BOOST_PYTHON_MODULE().

Sets the flag to indicate automatic selection of the inner tolerance.

Parameters:
adaptIf ``true``, the inner tolerance is selected automatically.

References setInnerToleranceAdaptionOff(), and setInnerToleranceAdaptionOn().

Referenced by BOOST_PYTHON_MODULE().

Switches the automatic selection of inner tolerance off.

References adapt_inner_tolerance.

Referenced by BOOST_PYTHON_MODULE(), and setInnerToleranceAdaption().

Switches the automatic selection of inner tolerance on

References adapt_inner_tolerance.

Referenced by BOOST_PYTHON_MODULE(), and setInnerToleranceAdaption().

void escript::SolverBuddy::setIterMax ( int  iter_max)

Sets the maximum number of iteration steps

Parameters:
iter_maxmaximum number of iteration steps

References iter_max.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setLevelMax ( int  level_max)

Sets the maximum number of coarsening levels to be used in an algebraic multi level solver or preconditioner

Parameters:
level_maxmaximum number of levels

References level_max.

Referenced by BOOST_PYTHON_MODULE().

Sets the flag to use local preconditioning

Parameters:
useIf ``true``, local proconditioning on each MPI rank is applied

References setLocalPreconditionerOff(), and setLocalPreconditionerOn().

Referenced by BOOST_PYTHON_MODULE().

Sets the flag to use local preconditioning to off

References use_local_preconditioner.

Referenced by BOOST_PYTHON_MODULE(), and setLocalPreconditioner().

Sets the flag to use local preconditioning to on

References use_local_preconditioner.

Referenced by BOOST_PYTHON_MODULE(), and setLocalPreconditioner().

Sets the minimum size of the coarsest level matrix in AMG or AMLI

Parameters:
sizeminimum size of the coarsest level matrix .

References MinCoarseMatrixSize.

Referenced by BOOST_PYTHON_MODULE().

Sets the minimum sparsity at the coarsest level. Typically a direct solver is used when the sparsity becomes bigger than the set limit.

Parameters:
sparsityminimal sparsity

References min_sparsity.

Referenced by BOOST_PYTHON_MODULE().

Sets the number of refinement steps to refine the solution on the coarsest level when a direct solver is applied.

Parameters:
refinementsnumber of refinements

References coarse_refinements, and refinements.

Referenced by BOOST_PYTHON_MODULE().

Sets the number of sweeps in the post-smoothing step of a multi level solver or preconditioner

Parameters:
sweepsnumber of sweeps

References post_sweeps, and sweeps.

Referenced by BOOST_PYTHON_MODULE().

Sets the number of sweeps in the pre-smoothing step of a multi level solver or preconditioner

Parameters:
sweepsnumber of sweeps

References pre_sweeps, and sweeps.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setNumRefinements ( int  refinements)

Sets the number of refinement steps to refine the solution when a direct solver is applied.

Parameters:
refinementsnumber of refinements

References refinements.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setNumSweeps ( int  sweeps)

Sets the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.

Parameters:
sweepsnumber of sweeps

References sweeps.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setODESolver ( int  solver)

Set the solver method for ODEs.

Parameters:
methodkey of the ODE solver method to be used, should be in `ESCRIPT_CRANK_NICOLSON`, `ESCRIPT_BACKWARD_EULER`, `ESCRIPT_LINEAR_CRANK_NICOLSON`

References escript::ESCRIPT_BACKWARD_EULER, escript::ESCRIPT_CRANK_NICOLSON, escript::ESCRIPT_LINEAR_CRANK_NICOLSON, method, and ode_solver.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setPackage ( int  package)

Sets the solver package to be used as a solver.

Parameters:
packagekey of the solver package to be used, should be in `ESCRIPT_DEFAULT`, `ESCRIPT_PASO`, `ESCRIPT_SUPER_LU`, `ESCRIPT_PASTIX`, `ESCRIPT_MKL`, `ESCRIPT_UMFPACK`, `ESCRIPT_TRILINOS`
Note:
Not all packages are support on all implementation. An exception may be thrown on some platforms if a particular is requested.

References escript::ESCRIPT_DEFAULT, escript::ESCRIPT_MKL, escript::ESCRIPT_PASO, escript::ESCRIPT_PASTIX, escript::ESCRIPT_SUPER_LU, escript::ESCRIPT_TRILINOS, escript::ESCRIPT_UMFPACK, and package.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setPreconditioner ( int  preconditioner)

Sets the preconditioner to be used.

Parameters:
preconditionerkey of the preconditioner to be used, should be in `ESCRIPT_ILU0`, `ESCRIPT_ILUT`, `ESCRIPT_JACOBI`, `ESCRIPT_AMG`, `ESCRIPT_AMLI`, `ESCRIPT_REC_ILU`, `ESCRIPT_GAUSS_SEIDEL`, `ESCRIPT_RILU`, `ESCRIPT_BOOMERAMG`, `ESCRIPT_NO_PRECONDITIONER`
Note:
Not all packages support all preconditioner. It can be assumed that a package makes a reasonable choice if it encounters an unknown preconditioner.

References escript::ESCRIPT_AMG, escript::ESCRIPT_AMLI, escript::ESCRIPT_BOOMERAMG, escript::ESCRIPT_GAUSS_SEIDEL, escript::ESCRIPT_ILU0, escript::ESCRIPT_ILUT, escript::ESCRIPT_JACOBI, escript::ESCRIPT_NO_PRECONDITIONER, escript::ESCRIPT_REC_ILU, escript::ESCRIPT_RILU, and preconditioner.

Referenced by BOOST_PYTHON_MODULE().

Sets the relaxation factor used to add dropped elements in RILU to the main diagonal.

Parameters:
factorrelaxation factor
Note:
RILU with a relaxation factor 0 is identical to ILU0

References relaxation.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setReordering ( int  ordering)

Sets the key of the reordering method to be applied if supported by the solver. Some direct solvers support reordering to optimize compute time and storage use during elimination.

Parameters:
orderingselects the reordering strategy, should be in 'ESCRIPT_NO_REORDERING', 'ESCRIPT_MINIMUM_FILL_IN', 'ESCRIPT_NESTED_DISSECTION', 'ESCRIPT_DEFAULT_REORDERING'

References escript::ESCRIPT_DEFAULT_REORDERING, escript::ESCRIPT_MINIMUM_FILL_IN, escript::ESCRIPT_NESTED_DISSECTION, escript::ESCRIPT_NO_REORDERING, and reordering.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setRestart ( int  restart)

Sets the number of iterations steps after which GMRES performs a restart.

Parameters:
restartnumber of iteration steps after which to perform a restart. If 0 no restart is performed.

References restart.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setSmoother ( int  smoother)

Sets the smoother to be used.

Parameters:
smootherkey of the smoother to be used, should be in `ESCRIPT_JACOBI`, `ESCRIPT_GAUSS_SEIDEL`
Note:
Not all packages support all smoothers. It can be assumed that a package makes a reasonable choice if it encounters an unknown smoother.

References escript::ESCRIPT_GAUSS_SEIDEL, escript::ESCRIPT_JACOBI, and smoother.

Referenced by BOOST_PYTHON_MODULE().

Sets the solver method to be used. Use ``method``=``ESCRIPT_DIRECT`` to indicate that a direct rather than an iterative solver should be used and use ``method``=``ESCRIPT_ITERATIVE`` to indicate that an iterative rather than a direct solver should be used.

Parameters:
methodkey of the solver method to be used, should be in `ESCRIPT_DEFAULT`, `ESCRIPT_DIRECT`, `ESCRIPT_CHOLEVSKY`, `ESCRIPT_PCG`, `ESCRIPT_CR`, `ESCRIPT_CGS`, `ESCRIPT_BICGSTAB`, `ESCRIPT_GMRES`, `ESCRIPT_PRES20`, `ROWSUM_ESCRIPT_LUMPING`, `HRZ_ESCRIPT_LUMPING`, `ESCRIPT_ITERATIVE`, `ESCRIPT_NONLINEAR_GMRES`, `ESCRIPT_TFQMR`, `ESCRIPT_MINRES`
Note:
Not all packages support all solvers. It can be assumed that a package makes a reasonable choice if it encounters an unknown solver method.

References escript::ESCRIPT_BICGSTAB, escript::ESCRIPT_CGS, escript::ESCRIPT_CHOLEVSKY, escript::ESCRIPT_CR, escript::ESCRIPT_DEFAULT, escript::ESCRIPT_DIRECT, escript::ESCRIPT_GMRES, escript::ESCRIPT_HRZ_LUMPING, escript::ESCRIPT_ITERATIVE, escript::ESCRIPT_MINRES, escript::ESCRIPT_NONLINEAR_GMRES, escript::ESCRIPT_PCG, escript::ESCRIPT_PRES20, escript::ESCRIPT_ROWSUM_LUMPING, escript::ESCRIPT_TFQMR, and method.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setSymmetry ( bool  symmetry)

Sets the symmetry flag for the coefficient matrix to ``flag``.

Parameters:
flagIf true, the symmetry flag is set otherwise reset.

References setSymmetryOff(), and setSymmetryOn().

Referenced by BOOST_PYTHON_MODULE().

Clears the symmetry flag for the coefficient matrix.

References symmetric.

Referenced by BOOST_PYTHON_MODULE(), and setSymmetry().

Sets the symmetry flag to indicate that the coefficient matrix is symmetric.

References symmetric.

Referenced by BOOST_PYTHON_MODULE(), and setSymmetry().

void escript::SolverBuddy::setTolerance ( double  rtol)

Sets the relative tolerance for the solver

Parameters:
rtolrelative tolerance

References tolerance.

Referenced by BOOST_PYTHON_MODULE().

void escript::SolverBuddy::setTruncation ( int  truncation)

Sets the number of residuals in GMRES to be stored for orthogonalization. The more residuals are stored the faster GMRES converged but

References truncation.

Referenced by BOOST_PYTHON_MODULE().

Sets the flag to use a panel to find unknowns in AMG coarsening

Parameters:
useIf ``true``,a panel is used to find unknowns in AMG coarsening

References setUsePanelOff(), and setUsePanelOn().

Referenced by BOOST_PYTHON_MODULE().

Sets the flag to use a panel to find unknowns in AMG coarsening to off

References use_panel.

Referenced by BOOST_PYTHON_MODULE(), and setUsePanel().

Sets the flag to use a panel to find unknowns in AMG coarsening

References use_panel.

Referenced by BOOST_PYTHON_MODULE(), and setUsePanel().

void escript::SolverBuddy::setVerbosity ( bool  verbosity)

Sets the verbosity flag for the solver to ``flag``.

Parameters:
verboseIf ``true``, the verbosity of the solver is switched on.

References setVerbosityOff(), and setVerbosityOn().

Referenced by BOOST_PYTHON_MODULE().

Switches the verbosity of the solver off.

References verbose.

Referenced by BOOST_PYTHON_MODULE(), and setVerbosity().

Switches the verbosity of the solver on.

References verbose.

Referenced by BOOST_PYTHON_MODULE(), and setVerbosity().

void escript::SolverBuddy::updateDiagnostics ( std::string  key,
boost::python::object  value 
)

Updates diagnostic information

Parameters:
keyname of diagnostic (a python string in the list "num_iter", "num_level", "num_inner_iter", "time", "set_up_time", "net_time", "residual_norm", "converged").
valuenew value of the diagnostic information

References coarse_level_sparsity, converged, cum_net_time, cum_num_inner_iter, cum_num_iter, cum_set_up_time, cum_time, net_time, num_coarse_unknowns, num_inner_iter, num_iter, num_level, residual_norm, set_up_time, time, and time_step_backtracking_used.

Referenced by BOOST_PYTHON_MODULE().

Returns ``true`` if the preconditoner is applied locally on each MPI. This reduces communication costs and speeds up the application of the preconditioner but at the costs of more iteration steps. This can be an advantage on clusters with slower interconnects.

References use_local_preconditioner.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().

Returns ``true`` if a panel is used to search for unknown in the AMG coarsening, The panel approach is normally faster but can lead to larger coarse level systems.

References use_panel.

Referenced by BOOST_PYTHON_MODULE(), paso::SystemMatrixAdapter::escriptToPasoOptions(), and getSummary().


Member Data Documentation

double escript::SolverBuddy::cum_time [protected]
double escript::SolverBuddy::net_time [protected]

Referenced by getPackage(), and setPackage().

Referenced by getDiagnostics(), and resetDiagnostics().

Referenced by getRestart(), setRestart(), and SolverBuddy().

double escript::SolverBuddy::time [protected]
double escript::SolverBuddy::tolerance [protected]

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