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>
169 std::string getSummary()
const;
176 const char* getName(
int key)
const;
184 void resetDiagnostics(
bool all=
false);
194 void updateDiagnosticsPy(
const std::string& key,
195 const boost::python::object& value);
197 void updateDiagnostics(
const std::string& key,
bool value);
198 void updateDiagnostics(
const std::string& key,
int value);
199 void updateDiagnostics(
const std::string& key,
double value);
229 double getDiagnostics(
const std::string name)
const;
238 bool hasConverged()
const;
254 void setPreconditioner(
int preconditioner);
281 void setSolverMethod(
int method);
300 void setPackage(
int package);
316 void setReordering(
int ordering);
331 void setRestart(
int restart);
337 int getRestart()
const;
343 int _getRestartForC()
const;
350 void setTruncation(
int truncation);
356 int getTruncation()
const;
363 void setInnerIterMax(
int iter_max);
368 int getInnerIterMax()
const;
375 void setIterMax(
int iter_max);
380 int getIterMax()
const;
388 void setNumSweeps(
int sweeps);
394 int getNumSweeps()
const;
401 void setTolerance(
double rtol);
406 double getTolerance()
const;
413 void setAbsoluteTolerance(
double atol);
418 double getAbsoluteTolerance()
const;
426 void setInnerTolerance(
double rtol);
431 double getInnerTolerance()
const;
438 void setDropTolerance(
double drop_tol);
443 double getDropTolerance()
const;
452 void setDropStorage(
double drop);
457 double getDropStorage()
const;
466 void setRelaxationFactor(
double factor);
472 double getRelaxationFactor()
const;
479 bool isComplex()
const;
486 void setComplex(
bool complex);
493 bool isSymmetric()
const;
499 void setSymmetryOn();
504 void setSymmetryOff();
511 void setSymmetry(
bool symmetry);
518 bool isHermitian()
const;
524 void setHermitianOn();
529 void setHermitianOff();
543 bool isVerbose()
const;
548 void setVerbosityOn();
553 void setVerbosityOff();
560 void setVerbosity(
bool verbose);
569 bool adaptInnerTolerance()
const;
574 void setInnerToleranceAdaptionOn();
579 void setInnerToleranceAdaptionOff();
586 void setInnerToleranceAdaption(
bool adaption);
598 bool acceptConvergenceFailure()
const;
603 void setAcceptanceConvergenceFailureOn();
608 void setAcceptanceConvergenceFailureOff();
616 void setAcceptanceConvergenceFailure(
bool acceptance);
624 bool useLocalPreconditioner()
const;
629 void setLocalPreconditionerOn();
634 void setLocalPreconditionerOff();
642 void setLocalPreconditioner(
bool local);
650 void setNumRefinements(
int refinements);
656 int getNumRefinements()
const;
665 void setODESolver(
int solver);
681 void setTrilinosParameter(
const std::string& name,
682 const boost::python::object& value);
688 boost::python::dict getTrilinosParameters()
const;
693 void setDim(
int dim);
703 bool using_default_method()
const;
757 typedef boost::shared_ptr<SolverBuddy>
SB_ptr;
761 #endif // __ESCRIPT_SOLVEROPTIONS_H__
void setAcceptanceConvergenceFailure(bool acceptance)
Definition: SolverOptions.cpp:796
@ SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING
Definition: SolverOptions.h:135
double getDropTolerance() const
Definition: SolverOptions.cpp:650
SolverOptions
Definition: SolverOptions.h:82
@ SO_REORDERING_NONE
Definition: SolverOptions.h:141
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:30
int iter_max
Definition: SolverOptions.h:721
Definition: SolverOptions.h:161
#define PASO_ONE
Definition: Paso.h:68
void setInnerToleranceAdaptionOff()
Definition: SolverOptions.cpp:768
void setDropStorage(double drop)
Definition: SolverOptions.cpp:655
SolverOptions reordering
Definition: SolverOptions.h:714
@ SO_METHOD_GMRES
Definition: SolverOptions.h:107
double set_up_time
Definition: SolverOptions.h:740
bool accept_convergence_failure
Definition: SolverOptions.h:730
bool hasConverged() const
Definition: SolverOptions.cpp:331
double getDiagnostics(const std::string name) const
Definition: SolverOptions.cpp:311
bool useLocalPreconditioner() const
Definition: SolverOptions.cpp:804
void updateDiagnostics(const std::string &key, bool value)
Definition: SolverOptions.cpp:209
@ SO_METHOD_DIRECT_TRILINOS
Definition: SolverOptions.h:106
@ SO_METHOD_HRZ_LUMPING
Definition: SolverOptions.h:108
int getDim()
Definition: SolverOptions.cpp:878
void setTruncation(int truncation)
Definition: SolverOptions.cpp:559
int inner_iter_max
Definition: SolverOptions.h:722
@ SO_METHOD_LSQR
Definition: SolverOptions.h:110
void setVerbosityOff()
Definition: SolverOptions.cpp:745
double getTolerance() const
Definition: SolverOptions.cpp:614
int sweeps
Definition: SolverOptions.h:715
@ SO_METHOD_DIRECT_SUPERLU
Definition: SolverOptions.h:105
SolverOptions target
Definition: SolverOptions.h:709
double drop_storage
Definition: SolverOptions.h:720
@ SO_METHOD_DIRECT
Definition: SolverOptions.h:102
std::string getSummary() const
Definition: SolverOptions.cpp:79
double time
Definition: SolverOptions.h:739
double getAbsoluteTolerance() const
Definition: SolverOptions.cpp:626
int num_coarse_unknowns
Definition: SolverOptions.h:747
@ SO_ODESOLVER_BACKWARD_EULER
Definition: SolverOptions.h:129
void setAcceptanceConvergenceFailureOn()
Definition: SolverOptions.cpp:786
dim_t n
Definition: Functions.h:59
int getTruncation() const
Definition: SolverOptions.cpp:566
bool symmetric
Definition: SolverOptions.h:726
@ SO_PRECONDITIONER_ILU0
Definition: SolverOptions.h:121
~SolverBuddy()
Definition: SolverOptions.cpp:74
SolverOptions getPackage() const
Definition: SolverOptions.cpp:513
void resetDiagnostics(bool all=false)
Definition: SolverOptions.cpp:186
int getNumSweeps() const
Definition: SolverOptions.cpp:602
void setReordering(int ordering)
Definition: SolverOptions.cpp:518
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:745
void setSymmetryOn()
Definition: SolverOptions.cpp:694
int num_iter
Definition: SolverOptions.h:736
SolverOptions getSolverMethod() const
Definition: SolverOptions.cpp:441
double absolute_tolerance
Definition: SolverOptions.h:717
bool convert(bp::object bpo, R &result)
Definition: SolverOptions.cpp:30
double cum_time
Definition: SolverOptions.h:750
int getNumRefinements() const
Definition: SolverOptions.cpp:834
int num_inner_iter
Definition: SolverOptions.h:738
void setRestart(int restart)
Definition: SolverOptions.cpp:538
@ SO_ODESOLVER_LINEAR_CRANK_NICOLSON
Definition: SolverOptions.h:131
bool use_local_preconditioner
Definition: SolverOptions.h:732
void setSymmetryOff()
Definition: SolverOptions.cpp:699
@ SO_PRECONDITIONER_REC_ILU
Definition: SolverOptions.h:125
@ SO_REORDERING_MINIMUM_FILL_IN
Definition: SolverOptions.h:139
boost::shared_ptr< SolverBuddy > SB_ptr
Definition: SolverOptions.h:757
bool hermitian
Definition: SolverOptions.h:727
double * tmp
Definition: Functions.h:57
@ SO_PRECONDITIONER_ILUT
Definition: SolverOptions.h:122
bool isHermitian() const
Definition: SolverOptions.cpp:712
bool isComplex() const
Definition: SolverOptions.cpp:679
void setHermitianOn()
Definition: SolverOptions.cpp:717
int num_level
Definition: SolverOptions.h:737
void updateDiagnosticsPy(const std::string &key, const boost::python::object &value)
Definition: SolverOptions.cpp:252
SolverOptions preconditioner
Definition: SolverOptions.h:712
@ SO_METHOD_NONLINEAR_GMRES
Definition: SolverOptions.h:112
bool verbose
Definition: SolverOptions.h:728
@ SO_INTERPOLATION_DIRECT
Definition: SolverOptions.h:136
void setIterMax(int iter_max)
Definition: SolverOptions.cpp:583
void setNumSweeps(int sweeps)
Definition: SolverOptions.cpp:595
void setNumRefinements(int refinements)
Definition: SolverOptions.cpp:827
boost::shared_ptr< SystemMatrix< T > > SystemMatrix_ptr
Definition: SystemMatrix.h:42
void setDim(int dim)
Definition: SolverOptions.cpp:871
void setAbsoluteTolerance(double atol)
Definition: SolverOptions.cpp:619
void setLocalPreconditioner(bool local)
Definition: SolverOptions.cpp:819
bool isVerbose() const
Definition: SolverOptions.cpp:735
int refinements
Definition: SolverOptions.h:733
int restart
Definition: SolverOptions.h:724
@ SO_PACKAGE_PASO
Definition: SolverOptions.h:91
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:88
void setRelaxationFactor(double factor)
Definition: SolverOptions.cpp:667
@ SO_PACKAGE_MUMPS
Definition: SolverOptions.h:94
double net_time
Definition: SolverOptions.h:741
SolverOptions ode_solver
Definition: SolverOptions.h:713
bool adapt_inner_tolerance
Definition: SolverOptions.h:729
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
Definition: Functions.h:29
@ SO_REORDERING_DEFAULT
Definition: SolverOptions.h:138
bool acceptConvergenceFailure() const
Definition: SolverOptions.cpp:781
void setComplex(bool complex)
Definition: SolverOptions.cpp:684
double relaxation
Definition: SolverOptions.h:731
double drop_tolerance
Definition: SolverOptions.h:719
SolverOptions package
Definition: SolverOptions.h:710
double getRelaxationFactor() const
Definition: SolverOptions.cpp:674
int getInnerIterMax() const
Definition: SolverOptions.cpp:578
SolverResult
Definition: Paso.h:44
double getInnerTolerance() const
Definition: SolverOptions.cpp:638
void setTolerance(double rtol)
Definition: SolverOptions.cpp:607
int _getRestartForC() const
Definition: SolverOptions.cpp:551
@ SO_ODESOLVER_CRANK_NICOLSON
Definition: SolverOptions.h:130
virtual ~LinearSystem()
Definition: Solver_Function.cpp:36
SolverOptions method
Definition: SolverOptions.h:711
const char * getName(int key) const
Definition: SolverOptions.cpp:123
@ SO_METHOD_CGS
Definition: SolverOptions.h:99
int preconditioner_size
Definition: SolverOptions.h:744
@ SO_METHOD_CGLS
Definition: SolverOptions.h:98
int dim
Definition: SolverOptions.h:734
boost::python::dict trilinosParams
Definition: SolverOptions.h:707
void setPackage(int package)
Definition: SolverOptions.cpp:446
double inner_tolerance
Definition: SolverOptions.h:718
int getIterMax() const
Definition: SolverOptions.cpp:590
@ SO_METHOD_ROWSUM_LUMPING
Definition: SolverOptions.h:115
@ SO_PRECONDITIONER_AMG
Definition: SolverOptions.h:119
int truncation
Definition: SolverOptions.h:723
@ SO_METHOD_ITERATIVE
Definition: SolverOptions.h:109
void setInnerToleranceAdaption(bool adaption)
Definition: SolverOptions.cpp:773
double tolerance
Definition: SolverOptions.h:716
bool using_default_method() const
Definition: SolverOptions.cpp:883
SolverOptions getReordering() const
Definition: SolverOptions.cpp:533
bool isSymmetric() const
Definition: SolverOptions.cpp:689
SystemMatrix_ptr< double > mat
Definition: Functions.h:56
@ SO_REORDERING_NESTED_DISSECTION
Definition: SolverOptions.h:140
@ SO_METHOD_BICGSTAB
Definition: SolverOptions.h:97
SolverOptions getPreconditioner() const
Definition: SolverOptions.cpp:358
bool isDirectSolver(const SolverOptions &method)
returns true if the passed solver method refers to a direct solver type
Definition: SolverOptions.h:145
void setHermitianOff()
Definition: SolverOptions.cpp:722
SolverBuddy()
Definition: SolverOptions.cpp:40
void setInnerIterMax(int iter_max)
Definition: SolverOptions.cpp:571
void setInnerToleranceAdaptionOn()
Definition: SolverOptions.cpp:763
virtual SolverResult call(double *value, const double *arg, Performance *pp)
sets value=F(arg)
Definition: Solver_Function.cpp:44
@ SO_TARGET_CPU
Definition: SolverOptions.h:86
@ SO_METHOD_MINRES
Definition: SolverOptions.h:111
double * b
Definition: Functions.h:58
void setVerbosityOn()
Definition: SolverOptions.cpp:740
@ SO_METHOD_DIRECT_PARDISO
Definition: SolverOptions.h:104
void setSolverMethod(int method)
Definition: SolverOptions.cpp:363
Definition: AbstractContinuousDomain.cpp:23
@ SO_METHOD_CR
Definition: SolverOptions.h:101
void setPreconditioner(int preconditioner)
Definition: SolverOptions.cpp:336
@ SO_METHOD_DIRECT_MUMPS
Definition: SolverOptions.h:103
void setSymmetry(bool symmetry)
Definition: SolverOptions.cpp:704
@ SO_PRECONDITIONER_GAUSS_SEIDEL
Definition: SolverOptions.h:120
@ SO_DEFAULT
Definition: SolverOptions.h:83
@ SO_PRECONDITIONER_NONE
Definition: SolverOptions.h:124
bool is_complex
Definition: SolverOptions.h:725
void setDropTolerance(double drop_tol)
Definition: SolverOptions.cpp:643
double cum_set_up_time
Definition: SolverOptions.h:751
void setVerbosity(bool verbose)
Definition: SolverOptions.cpp:750
void setODESolver(int solver)
Definition: SolverOptions.cpp:839
double coarse_level_sparsity
Definition: SolverOptions.h:746
void setHermitian(bool hermitian)
Definition: SolverOptions.cpp:727
void setAcceptanceConvergenceFailureOff()
Definition: SolverOptions.cpp:791
void setInnerTolerance(double rtol)
Definition: SolverOptions.cpp:631
@ SO_TARGET_GPU
Definition: SolverOptions.h:87
@ SO_PRECONDITIONER_RILU
Definition: SolverOptions.h:126
@ SO_PACKAGE_TRILINOS
Definition: SolverOptions.h:92
void setTrilinosParameter(const std::string &name, const boost::python::object &value)
Definition: SolverOptions.cpp:858
bool adaptInnerTolerance() const
Definition: SolverOptions.cpp:758
Definition: BiCGStab.cpp:25
@ SO_PACKAGE_MKL
Definition: SolverOptions.h:90
@ SO_PRECONDITIONER_JACOBI
Definition: SolverOptions.h:123
double residual_norm
Definition: SolverOptions.h:742
void setLocalPreconditionerOn()
Definition: SolverOptions.cpp:809
@ SO_METHOD_PRES20
Definition: SolverOptions.h:114
@ NoError
Definition: Paso.h:45
double getDropStorage() const
Definition: SolverOptions.cpp:662
@ SO_PACKAGE_UMFPACK
Definition: SolverOptions.h:93
void setLocalPreconditionerOff()
Definition: SolverOptions.cpp:814
@ SO_METHOD_TFQMR
Definition: SolverOptions.h:116
bool converged
Definition: SolverOptions.h:743
@ SO_METHOD_PCG
Definition: SolverOptions.h:113
An exception class that signals an invalid argument value.
Definition: EsysException.h:100
int cum_num_iter
Definition: SolverOptions.h:749
boost::python::dict getTrilinosParameters() const
Definition: SolverOptions.cpp:866
SolverOptions getODESolver() const
Definition: SolverOptions.cpp:853
LinearSystem(SystemMatrix_ptr< double > A, double *b, Options *options)
Definition: Solver_Function.cpp:26
double cum_net_time
Definition: SolverOptions.h:752
@ SO_METHOD_CHOLEVSKY
Definition: SolverOptions.h:100
int getRestart() const
Definition: SolverOptions.cpp:546
int cum_num_inner_iter
Definition: SolverOptions.h:748
bool using_default_solver_method
Definition: SolverOptions.h:754
@ SO_INTERPOLATION_CLASSIC
Definition: SolverOptions.h:134