Go to the documentation of this file.
18 #ifndef __ESCRIPT_SOLVEROPTIONS_H__
19 #define __ESCRIPT_SOLVEROPTIONS_H__
21 #include <boost/python/dict.hpp>
22 #include <boost/python/object.hpp>
167 std::string getSummary()
const;
174 const char* getName(
int key)
const;
182 void resetDiagnostics(
bool all=
false);
192 void updateDiagnosticsPy(
const std::string& key,
193 const boost::python::object& value);
195 void updateDiagnostics(
const std::string& key,
bool value);
196 void updateDiagnostics(
const std::string& key,
int value);
197 void updateDiagnostics(
const std::string& key,
double value);
227 double getDiagnostics(
const std::string name)
const;
236 bool hasConverged()
const;
252 void setPreconditioner(
int preconditioner);
279 void setSolverMethod(
int method);
298 void setPackage(
int package);
314 void setReordering(
int ordering);
329 void setRestart(
int restart);
335 int getRestart()
const;
341 int _getRestartForC()
const;
348 void setTruncation(
int truncation);
354 int getTruncation()
const;
361 void setInnerIterMax(
int iter_max);
366 int getInnerIterMax()
const;
373 void setIterMax(
int iter_max);
378 int getIterMax()
const;
386 void setNumSweeps(
int sweeps);
392 int getNumSweeps()
const;
399 void setTolerance(
double rtol);
404 double getTolerance()
const;
411 void setAbsoluteTolerance(
double atol);
416 double getAbsoluteTolerance()
const;
424 void setInnerTolerance(
double rtol);
429 double getInnerTolerance()
const;
436 void setDropTolerance(
double drop_tol);
441 double getDropTolerance()
const;
450 void setDropStorage(
double drop);
455 double getDropStorage()
const;
464 void setRelaxationFactor(
double factor);
470 double getRelaxationFactor()
const;
477 bool isComplex()
const;
484 void setComplex(
bool complex);
491 bool isSymmetric()
const;
497 void setSymmetryOn();
502 void setSymmetryOff();
509 void setSymmetry(
bool symmetry);
516 bool isHermitian()
const;
522 void setHermitianOn();
527 void setHermitianOff();
541 bool isVerbose()
const;
546 void setVerbosityOn();
551 void setVerbosityOff();
558 void setVerbosity(
bool verbose);
567 bool adaptInnerTolerance()
const;
572 void setInnerToleranceAdaptionOn();
577 void setInnerToleranceAdaptionOff();
584 void setInnerToleranceAdaption(
bool adaption);
596 bool acceptConvergenceFailure()
const;
601 void setAcceptanceConvergenceFailureOn();
606 void setAcceptanceConvergenceFailureOff();
614 void setAcceptanceConvergenceFailure(
bool acceptance);
622 bool useLocalPreconditioner()
const;
627 void setLocalPreconditionerOn();
632 void setLocalPreconditionerOff();
640 void setLocalPreconditioner(
bool local);
648 void setNumRefinements(
int refinements);
654 int getNumRefinements()
const;
663 void setODESolver(
int solver);
679 void setTrilinosParameter(
const std::string& name,
680 const boost::python::object& value);
686 boost::python::dict getTrilinosParameters()
const;
691 void setDim(
int dim);
701 bool using_default_method()
const;
705 boost::python::dict trilinosParams;
715 double absolute_tolerance;
716 double inner_tolerance;
717 double drop_tolerance;
727 bool adapt_inner_tolerance;
728 bool accept_convergence_failure;
730 bool use_local_preconditioner;
740 double residual_norm;
742 int preconditioner_size;
743 bool time_step_backtracking_used;
744 double coarse_level_sparsity;
745 int num_coarse_unknowns;
746 int cum_num_inner_iter;
749 double cum_set_up_time;
752 bool using_default_solver_method;
755 typedef boost::shared_ptr<SolverBuddy>
SB_ptr;
759 #endif // __ESCRIPT_SOLVEROPTIONS_H__
void setAcceptanceConvergenceFailure(bool acceptance)
Definition: SolverOptions.cpp:755
@ SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING
Definition: SolverOptions.h:161
double getDropTolerance() const
Definition: SolverOptions.cpp:609
SolverOptions
Definition: SolverOptions.h:94
@ SO_REORDERING_NONE
Definition: SolverOptions.h:167
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:30
int iter_max
Definition: SolverOptions.h:733
Definition: SolverOptions.h:172
#define PASO_ONE
Definition: Paso.h:68
void setInnerToleranceAdaptionOff()
Definition: SolverOptions.cpp:727
void setDropStorage(double drop)
Definition: SolverOptions.cpp:614
SolverOptions reordering
Definition: SolverOptions.h:726
@ SO_METHOD_GMRES
Definition: SolverOptions.h:133
double set_up_time
Definition: SolverOptions.h:752
bool accept_convergence_failure
Definition: SolverOptions.h:742
bool hasConverged() const
Definition: SolverOptions.cpp:326
double getDiagnostics(const std::string name) const
Definition: SolverOptions.cpp:306
bool useLocalPreconditioner() const
Definition: SolverOptions.cpp:763
void updateDiagnostics(const std::string &key, bool value)
Definition: SolverOptions.cpp:204
@ SO_METHOD_DIRECT_TRILINOS
Definition: SolverOptions.h:132
@ SO_METHOD_HRZ_LUMPING
Definition: SolverOptions.h:134
int getDim()
Definition: SolverOptions.cpp:837
void setTruncation(int truncation)
Definition: SolverOptions.cpp:518
int inner_iter_max
Definition: SolverOptions.h:734
@ SO_METHOD_LSQR
Definition: SolverOptions.h:136
void setVerbosityOff()
Definition: SolverOptions.cpp:704
double getTolerance() const
Definition: SolverOptions.cpp:573
int sweeps
Definition: SolverOptions.h:727
@ SO_METHOD_DIRECT_SUPERLU
Definition: SolverOptions.h:131
double drop_storage
Definition: SolverOptions.h:732
@ SO_METHOD_DIRECT
Definition: SolverOptions.h:128
std::string getSummary() const
Definition: SolverOptions.cpp:75
double time
Definition: SolverOptions.h:751
double getAbsoluteTolerance() const
Definition: SolverOptions.cpp:585
int num_coarse_unknowns
Definition: SolverOptions.h:759
@ SO_ODESOLVER_BACKWARD_EULER
Definition: SolverOptions.h:155
void setAcceptanceConvergenceFailureOn()
Definition: SolverOptions.cpp:745
int getTruncation() const
Definition: SolverOptions.cpp:525
bool symmetric
Definition: SolverOptions.h:738
@ SO_PRECONDITIONER_ILU0
Definition: SolverOptions.h:147
~SolverBuddy()
Definition: SolverOptions.cpp:70
SolverOptions getPackage() const
Definition: SolverOptions.cpp:472
void resetDiagnostics(bool all=false)
Definition: SolverOptions.cpp:181
int getNumSweeps() const
Definition: SolverOptions.cpp:561
void setReordering(int ordering)
Definition: SolverOptions.cpp:477
void symmetric(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset)
computes a symmetric matrix from your square matrix A: (A + transpose(A)) / 2
Definition: DataVectorOps.h:103
bool time_step_backtracking_used
Definition: SolverOptions.h:757
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:55
void setSymmetryOn()
Definition: SolverOptions.cpp:653
int num_iter
Definition: SolverOptions.h:748
SolverOptions getSolverMethod() const
Definition: SolverOptions.cpp:409
double absolute_tolerance
Definition: SolverOptions.h:729
bool convert(bp::object bpo, R &result)
Definition: SolverOptions.cpp:26
double cum_time
Definition: SolverOptions.h:762
int getNumRefinements() const
Definition: SolverOptions.cpp:793
int num_inner_iter
Definition: SolverOptions.h:750
void setRestart(int restart)
Definition: SolverOptions.cpp:497
@ SO_ODESOLVER_LINEAR_CRANK_NICOLSON
Definition: SolverOptions.h:157
bool use_local_preconditioner
Definition: SolverOptions.h:744
void setSymmetryOff()
Definition: SolverOptions.cpp:658
@ SO_PRECONDITIONER_REC_ILU
Definition: SolverOptions.h:151
@ SO_REORDERING_MINIMUM_FILL_IN
Definition: SolverOptions.h:165
boost::shared_ptr< SolverBuddy > SB_ptr
Definition: SolverOptions.h:769
bool hermitian
Definition: SolverOptions.h:739
@ SO_PRECONDITIONER_ILUT
Definition: SolverOptions.h:148
bool isHermitian() const
Definition: SolverOptions.cpp:671
bool isComplex() const
Definition: SolverOptions.cpp:638
void setHermitianOn()
Definition: SolverOptions.cpp:676
int num_level
Definition: SolverOptions.h:749
void updateDiagnosticsPy(const std::string &key, const boost::python::object &value)
Definition: SolverOptions.cpp:247
SolverOptions preconditioner
Definition: SolverOptions.h:724
@ SO_METHOD_NONLINEAR_GMRES
Definition: SolverOptions.h:138
bool verbose
Definition: SolverOptions.h:740
@ SO_INTERPOLATION_DIRECT
Definition: SolverOptions.h:162
void setIterMax(int iter_max)
Definition: SolverOptions.cpp:542
void setNumSweeps(int sweeps)
Definition: SolverOptions.cpp:554
void setNumRefinements(int refinements)
Definition: SolverOptions.cpp:786
void setDim(int dim)
Definition: SolverOptions.cpp:830
void setAbsoluteTolerance(double atol)
Definition: SolverOptions.cpp:578
void setLocalPreconditioner(bool local)
Definition: SolverOptions.cpp:778
bool isVerbose() const
Definition: SolverOptions.cpp:694
int refinements
Definition: SolverOptions.h:745
int restart
Definition: SolverOptions.h:736
@ SO_PACKAGE_PASO
Definition: SolverOptions.h:118
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:116
void setRelaxationFactor(double factor)
Definition: SolverOptions.cpp:626
double net_time
Definition: SolverOptions.h:753
SolverOptions ode_solver
Definition: SolverOptions.h:725
bool adapt_inner_tolerance
Definition: SolverOptions.h:741
void hermitian(const DataTypes::CplxVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::CplxVectorType::size_type inOffset, DataTypes::CplxVectorType &ev, const DataTypes::ShapeType &evShape, DataTypes::CplxVectorType::size_type evOffset)
computes an hermitian matrix from your square matrix A: (A + adjoint(A)) / 2
Definition: DataVectorOps.cpp:916
@ SO_REORDERING_DEFAULT
Definition: SolverOptions.h:164
bool acceptConvergenceFailure() const
Definition: SolverOptions.cpp:740
void setComplex(bool complex)
Definition: SolverOptions.cpp:643
double relaxation
Definition: SolverOptions.h:743
double drop_tolerance
Definition: SolverOptions.h:731
SolverOptions package
Definition: SolverOptions.h:722
double getRelaxationFactor() const
Definition: SolverOptions.cpp:633
int getInnerIterMax() const
Definition: SolverOptions.cpp:537
SolverResult
Definition: Paso.h:57
double getInnerTolerance() const
Definition: SolverOptions.cpp:597
void setTolerance(double rtol)
Definition: SolverOptions.cpp:566
int _getRestartForC() const
Definition: SolverOptions.cpp:510
@ SO_ODESOLVER_CRANK_NICOLSON
Definition: SolverOptions.h:156
SolverOptions method
Definition: SolverOptions.h:723
const char * getName(int key) const
Definition: SolverOptions.cpp:119
@ SO_METHOD_CGS
Definition: SolverOptions.h:125
int preconditioner_size
Definition: SolverOptions.h:756
@ SO_METHOD_CGLS
Definition: SolverOptions.h:124
int dim
Definition: SolverOptions.h:746
boost::python::dict trilinosParams
Definition: SolverOptions.h:719
void setPackage(int package)
Definition: SolverOptions.cpp:414
double inner_tolerance
Definition: SolverOptions.h:730
int getIterMax() const
Definition: SolverOptions.cpp:549
@ SO_METHOD_ROWSUM_LUMPING
Definition: SolverOptions.h:141
@ SO_PRECONDITIONER_AMG
Definition: SolverOptions.h:145
int truncation
Definition: SolverOptions.h:735
@ SO_METHOD_ITERATIVE
Definition: SolverOptions.h:135
void setInnerToleranceAdaption(bool adaption)
Definition: SolverOptions.cpp:732
double tolerance
Definition: SolverOptions.h:728
bool using_default_method() const
Definition: SolverOptions.cpp:842
SolverOptions getReordering() const
Definition: SolverOptions.cpp:492
bool isSymmetric() const
Definition: SolverOptions.cpp:648
@ SO_REORDERING_NESTED_DISSECTION
Definition: SolverOptions.h:166
@ SO_METHOD_BICGSTAB
Definition: SolverOptions.h:123
SolverOptions getPreconditioner() const
Definition: SolverOptions.cpp:353
bool isDirectSolver(const SolverOptions &method)
returns true if the passed solver method refers to a direct solver type
Definition: SolverOptions.h:157
void setHermitianOff()
Definition: SolverOptions.cpp:681
SolverBuddy()
Definition: SolverOptions.cpp:36
void setInnerIterMax(int iter_max)
Definition: SolverOptions.cpp:530
void setInnerToleranceAdaptionOn()
Definition: SolverOptions.cpp:722
@ SO_TARGET_CPU
Definition: SolverOptions.h:113
@ SO_METHOD_MINRES
Definition: SolverOptions.h:137
void setVerbosityOn()
Definition: SolverOptions.cpp:699
@ SO_METHOD_DIRECT_PARDISO
Definition: SolverOptions.h:130
void setSolverMethod(int method)
Definition: SolverOptions.cpp:358
Definition: AbstractContinuousDomain.cpp:23
@ SO_METHOD_CR
Definition: SolverOptions.h:127
void setPreconditioner(int preconditioner)
Definition: SolverOptions.cpp:331
@ SO_METHOD_DIRECT_MUMPS
Definition: SolverOptions.h:129
void setSymmetry(bool symmetry)
Definition: SolverOptions.cpp:663
@ SO_PRECONDITIONER_GAUSS_SEIDEL
Definition: SolverOptions.h:146
@ SO_DEFAULT
Definition: SolverOptions.h:110
@ SO_PRECONDITIONER_NONE
Definition: SolverOptions.h:150
bool is_complex
Definition: SolverOptions.h:737
void setDropTolerance(double drop_tol)
Definition: SolverOptions.cpp:602
double cum_set_up_time
Definition: SolverOptions.h:763
void setVerbosity(bool verbose)
Definition: SolverOptions.cpp:709
void setODESolver(int solver)
Definition: SolverOptions.cpp:798
double coarse_level_sparsity
Definition: SolverOptions.h:758
LinearSystem(SystemMatrix_ptr A, double *b, Options *options)
Definition: Solver_Function.cpp:41
void setHermitian(bool hermitian)
Definition: SolverOptions.cpp:686
void setAcceptanceConvergenceFailureOff()
Definition: SolverOptions.cpp:750
void setInnerTolerance(double rtol)
Definition: SolverOptions.cpp:590
@ SO_TARGET_GPU
Definition: SolverOptions.h:114
@ SO_PRECONDITIONER_RILU
Definition: SolverOptions.h:152
@ SO_PACKAGE_TRILINOS
Definition: SolverOptions.h:119
void setTrilinosParameter(const std::string &name, const boost::python::object &value)
Definition: SolverOptions.cpp:817
bool adaptInnerTolerance() const
Definition: SolverOptions.cpp:717
Definition: BiCGStab.cpp:26
@ SO_PACKAGE_MKL
Definition: SolverOptions.h:117
@ SO_PRECONDITIONER_JACOBI
Definition: SolverOptions.h:149
double residual_norm
Definition: SolverOptions.h:754
void setLocalPreconditionerOn()
Definition: SolverOptions.cpp:768
@ SO_METHOD_PRES20
Definition: SolverOptions.h:140
@ NoError
Definition: Paso.h:72
double getDropStorage() const
Definition: SolverOptions.cpp:621
@ SO_PACKAGE_UMFPACK
Definition: SolverOptions.h:120
void setLocalPreconditionerOff()
Definition: SolverOptions.cpp:773
@ SO_METHOD_TFQMR
Definition: SolverOptions.h:142
bool converged
Definition: SolverOptions.h:755
@ SO_METHOD_PCG
Definition: SolverOptions.h:139
An exception class that signals an invalid argument value.
Definition: EsysException.h:103
int cum_num_iter
Definition: SolverOptions.h:761
boost::python::dict getTrilinosParameters() const
Definition: SolverOptions.cpp:825
SolverOptions getODESolver() const
Definition: SolverOptions.cpp:812
double cum_net_time
Definition: SolverOptions.h:764
@ SO_METHOD_CHOLEVSKY
Definition: SolverOptions.h:126
int getRestart() const
Definition: SolverOptions.cpp:505
int cum_num_inner_iter
Definition: SolverOptions.h:760
bool using_default_solver_method
Definition: SolverOptions.h:766
@ SO_INTERPOLATION_CLASSIC
Definition: SolverOptions.h:160