Go to the documentation of this file.
17 #ifndef __ESCRIPT_SOLVEROPTIONS_H__
18 #define __ESCRIPT_SOLVEROPTIONS_H__
20 #include <boost/python/dict.hpp>
21 #include <boost/python/object.hpp>
166 std::string getSummary()
const;
173 const char* getName(
int key)
const;
181 void resetDiagnostics(
bool all=
false);
191 void updateDiagnosticsPy(
const std::string& key,
192 const boost::python::object& value);
194 void updateDiagnostics(
const std::string& key,
bool value);
195 void updateDiagnostics(
const std::string& key,
int value);
196 void updateDiagnostics(
const std::string& key,
double value);
226 double getDiagnostics(
const std::string name)
const;
235 bool hasConverged()
const;
251 void setPreconditioner(
int preconditioner);
278 void setSolverMethod(
int method);
297 void setPackage(
int package);
313 void setReordering(
int ordering);
328 void setRestart(
int restart);
334 int getRestart()
const;
340 int _getRestartForC()
const;
347 void setTruncation(
int truncation);
353 int getTruncation()
const;
360 void setInnerIterMax(
int iter_max);
365 int getInnerIterMax()
const;
372 void setIterMax(
int iter_max);
377 int getIterMax()
const;
385 void setNumSweeps(
int sweeps);
391 int getNumSweeps()
const;
398 void setTolerance(
double rtol);
403 double getTolerance()
const;
410 void setAbsoluteTolerance(
double atol);
415 double getAbsoluteTolerance()
const;
423 void setInnerTolerance(
double rtol);
428 double getInnerTolerance()
const;
435 void setDropTolerance(
double drop_tol);
440 double getDropTolerance()
const;
449 void setDropStorage(
double drop);
454 double getDropStorage()
const;
463 void setRelaxationFactor(
double factor);
469 double getRelaxationFactor()
const;
476 bool isComplex()
const;
483 void setComplex(
bool complex);
490 bool isSymmetric()
const;
496 void setSymmetryOn();
501 void setSymmetryOff();
508 void setSymmetry(
bool symmetry);
515 bool isHermitian()
const;
521 void setHermitianOn();
526 void setHermitianOff();
540 bool isVerbose()
const;
545 void setVerbosityOn();
550 void setVerbosityOff();
557 void setVerbosity(
bool verbose);
566 bool adaptInnerTolerance()
const;
571 void setInnerToleranceAdaptionOn();
576 void setInnerToleranceAdaptionOff();
583 void setInnerToleranceAdaption(
bool adaption);
595 bool acceptConvergenceFailure()
const;
600 void setAcceptanceConvergenceFailureOn();
605 void setAcceptanceConvergenceFailureOff();
613 void setAcceptanceConvergenceFailure(
bool acceptance);
621 bool useLocalPreconditioner()
const;
626 void setLocalPreconditionerOn();
631 void setLocalPreconditionerOff();
639 void setLocalPreconditioner(
bool local);
647 void setNumRefinements(
int refinements);
653 int getNumRefinements()
const;
662 void setODESolver(
int solver);
678 void setTrilinosParameter(
const std::string& name,
679 const boost::python::object& value);
685 boost::python::dict getTrilinosParameters()
const;
690 void setDim(
int dim);
700 bool using_default_method()
const;
704 boost::python::dict trilinosParams;
714 double absolute_tolerance;
715 double inner_tolerance;
716 double drop_tolerance;
726 bool adapt_inner_tolerance;
727 bool accept_convergence_failure;
729 bool use_local_preconditioner;
739 double residual_norm;
741 int preconditioner_size;
742 bool time_step_backtracking_used;
743 double coarse_level_sparsity;
744 int num_coarse_unknowns;
745 int cum_num_inner_iter;
748 double cum_set_up_time;
751 bool using_default_solver_method;
754 typedef boost::shared_ptr<SolverBuddy>
SB_ptr;
758 #endif // __ESCRIPT_SOLVEROPTIONS_H__
void setAcceptanceConvergenceFailure(bool acceptance)
Definition: SolverOptions.cpp:770
Definition: SolverOptions.h:155
double getDropTolerance() const
Definition: SolverOptions.cpp:624
SolverOptions
Definition: SolverOptions.h:90
Definition: SolverOptions.h:161
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:28
int iter_max
Definition: SolverOptions.h:729
Definition: SolverOptions.h:168
#define PASO_ONE
Definition: Paso.h:66
void setInnerToleranceAdaptionOff()
Definition: SolverOptions.cpp:742
void setDropStorage(double drop)
Definition: SolverOptions.cpp:629
SolverOptions reordering
Definition: SolverOptions.h:722
Definition: SolverOptions.h:127
double set_up_time
Definition: SolverOptions.h:748
bool accept_convergence_failure
Definition: SolverOptions.h:738
bool hasConverged() const
Definition: SolverOptions.cpp:328
double getDiagnostics(const std::string name) const
Definition: SolverOptions.cpp:304
bool useLocalPreconditioner() const
Definition: SolverOptions.cpp:778
void updateDiagnostics(const std::string &key, bool value)
Definition: SolverOptions.cpp:202
Definition: SolverOptions.h:126
Definition: SolverOptions.h:128
int getDim()
Definition: SolverOptions.cpp:852
void setTruncation(int truncation)
Definition: SolverOptions.cpp:533
int inner_iter_max
Definition: SolverOptions.h:730
Definition: SolverOptions.h:130
void setVerbosityOff()
Definition: SolverOptions.cpp:719
double getTolerance() const
Definition: SolverOptions.cpp:588
int sweeps
Definition: SolverOptions.h:723
Definition: SolverOptions.h:125
double drop_storage
Definition: SolverOptions.h:728
Definition: SolverOptions.h:122
std::string getSummary() const
Definition: SolverOptions.cpp:73
double time
Definition: SolverOptions.h:747
double getAbsoluteTolerance() const
Definition: SolverOptions.cpp:600
int num_coarse_unknowns
Definition: SolverOptions.h:755
Definition: SolverOptions.h:149
void setAcceptanceConvergenceFailureOn()
Definition: SolverOptions.cpp:760
int getTruncation() const
Definition: SolverOptions.cpp:540
bool symmetric
Definition: SolverOptions.h:734
Definition: SolverOptions.h:141
~SolverBuddy()
Definition: SolverOptions.cpp:68
SolverOptions getPackage() const
Definition: SolverOptions.cpp:487
void resetDiagnostics(bool all=false)
Definition: SolverOptions.cpp:179
int getNumSweeps() const
Definition: SolverOptions.cpp:576
void setReordering(int ordering)
Definition: SolverOptions.cpp:492
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:101
bool time_step_backtracking_used
Definition: SolverOptions.h:753
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:51
void setSymmetryOn()
Definition: SolverOptions.cpp:668
int num_iter
Definition: SolverOptions.h:744
SolverOptions getSolverMethod() const
Definition: SolverOptions.cpp:424
double absolute_tolerance
Definition: SolverOptions.h:725
bool convert(bp::object bpo, R &result)
Definition: SolverOptions.cpp:24
double cum_time
Definition: SolverOptions.h:758
int getNumRefinements() const
Definition: SolverOptions.cpp:808
int num_inner_iter
Definition: SolverOptions.h:746
void setRestart(int restart)
Definition: SolverOptions.cpp:512
Definition: SolverOptions.h:151
bool use_local_preconditioner
Definition: SolverOptions.h:740
void setSymmetryOff()
Definition: SolverOptions.cpp:673
Definition: SolverOptions.h:145
Definition: SolverOptions.h:159
boost::shared_ptr< SolverBuddy > SB_ptr
Definition: SolverOptions.h:765
bool hermitian
Definition: SolverOptions.h:735
Definition: SolverOptions.h:142
bool isHermitian() const
Definition: SolverOptions.cpp:686
bool isComplex() const
Definition: SolverOptions.cpp:653
void setHermitianOn()
Definition: SolverOptions.cpp:691
int num_level
Definition: SolverOptions.h:745
void updateDiagnosticsPy(const std::string &key, const boost::python::object &value)
Definition: SolverOptions.cpp:245
SolverOptions preconditioner
Definition: SolverOptions.h:720
Definition: SolverOptions.h:132
bool verbose
Definition: SolverOptions.h:736
Definition: SolverOptions.h:156
void setIterMax(int iter_max)
Definition: SolverOptions.cpp:557
void setNumSweeps(int sweeps)
Definition: SolverOptions.cpp:569
void setNumRefinements(int refinements)
Definition: SolverOptions.cpp:801
void setDim(int dim)
Definition: SolverOptions.cpp:845
void setAbsoluteTolerance(double atol)
Definition: SolverOptions.cpp:593
void setLocalPreconditioner(bool local)
Definition: SolverOptions.cpp:793
bool isVerbose() const
Definition: SolverOptions.cpp:709
int refinements
Definition: SolverOptions.h:741
int restart
Definition: SolverOptions.h:732
Definition: SolverOptions.h:112
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:110
void setRelaxationFactor(double factor)
Definition: SolverOptions.cpp:641
double net_time
Definition: SolverOptions.h:749
SolverOptions ode_solver
Definition: SolverOptions.h:721
bool adapt_inner_tolerance
Definition: SolverOptions.h:737
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:914
Definition: SolverOptions.h:158
bool acceptConvergenceFailure() const
Definition: SolverOptions.cpp:755
void setComplex(bool complex)
Definition: SolverOptions.cpp:658
double relaxation
Definition: SolverOptions.h:739
double drop_tolerance
Definition: SolverOptions.h:727
SolverOptions package
Definition: SolverOptions.h:718
double getRelaxationFactor() const
Definition: SolverOptions.cpp:648
int getInnerIterMax() const
Definition: SolverOptions.cpp:552
SolverResult
Definition: Paso.h:53
double getInnerTolerance() const
Definition: SolverOptions.cpp:612
void setTolerance(double rtol)
Definition: SolverOptions.cpp:581
int _getRestartForC() const
Definition: SolverOptions.cpp:525
Definition: SolverOptions.h:150
SolverOptions method
Definition: SolverOptions.h:719
const char * getName(int key) const
Definition: SolverOptions.cpp:117
Definition: SolverOptions.h:119
int preconditioner_size
Definition: SolverOptions.h:752
Definition: SolverOptions.h:118
int dim
Definition: SolverOptions.h:742
boost::python::dict trilinosParams
Definition: SolverOptions.h:715
void setPackage(int package)
Definition: SolverOptions.cpp:429
double inner_tolerance
Definition: SolverOptions.h:726
int getIterMax() const
Definition: SolverOptions.cpp:564
Definition: SolverOptions.h:135
Definition: SolverOptions.h:139
int truncation
Definition: SolverOptions.h:731
Definition: SolverOptions.h:129
void setInnerToleranceAdaption(bool adaption)
Definition: SolverOptions.cpp:747
double tolerance
Definition: SolverOptions.h:724
bool using_default_method() const
Definition: SolverOptions.cpp:857
SolverOptions getReordering() const
Definition: SolverOptions.cpp:507
bool isSymmetric() const
Definition: SolverOptions.cpp:663
Definition: SolverOptions.h:160
Definition: SolverOptions.h:117
SolverOptions getPreconditioner() const
Definition: SolverOptions.cpp:355
bool isDirectSolver(const SolverOptions &method)
returns true if the passed solver method refers to a direct solver type
Definition: SolverOptions.h:153
void setHermitianOff()
Definition: SolverOptions.cpp:696
SolverBuddy()
Definition: SolverOptions.cpp:34
void setInnerIterMax(int iter_max)
Definition: SolverOptions.cpp:545
void setInnerToleranceAdaptionOn()
Definition: SolverOptions.cpp:737
Definition: SolverOptions.h:107
Definition: SolverOptions.h:131
void setVerbosityOn()
Definition: SolverOptions.cpp:714
Definition: SolverOptions.h:124
void setSolverMethod(int method)
Definition: SolverOptions.cpp:360
Definition: AbstractContinuousDomain.cpp:22
Definition: SolverOptions.h:121
void setPreconditioner(int preconditioner)
Definition: SolverOptions.cpp:333
Definition: SolverOptions.h:123
void setSymmetry(bool symmetry)
Definition: SolverOptions.cpp:678
Definition: SolverOptions.h:140
Definition: SolverOptions.h:104
Definition: SolverOptions.h:144
bool is_complex
Definition: SolverOptions.h:733
void setDropTolerance(double drop_tol)
Definition: SolverOptions.cpp:617
double cum_set_up_time
Definition: SolverOptions.h:759
void setVerbosity(bool verbose)
Definition: SolverOptions.cpp:724
void setODESolver(int solver)
Definition: SolverOptions.cpp:813
double coarse_level_sparsity
Definition: SolverOptions.h:754
LinearSystem(SystemMatrix_ptr A, double *b, Options *options)
Definition: Solver_Function.cpp:37
void setHermitian(bool hermitian)
Definition: SolverOptions.cpp:701
void setAcceptanceConvergenceFailureOff()
Definition: SolverOptions.cpp:765
void setInnerTolerance(double rtol)
Definition: SolverOptions.cpp:605
Definition: SolverOptions.h:108
Definition: SolverOptions.h:146
Definition: SolverOptions.h:113
void setTrilinosParameter(const std::string &name, const boost::python::object &value)
Definition: SolverOptions.cpp:832
bool adaptInnerTolerance() const
Definition: SolverOptions.cpp:732
Definition: BiCGStab.cpp:25
Definition: SolverOptions.h:111
Definition: SolverOptions.h:143
double residual_norm
Definition: SolverOptions.h:750
void setLocalPreconditionerOn()
Definition: SolverOptions.cpp:783
Definition: SolverOptions.h:134
double getDropStorage() const
Definition: SolverOptions.cpp:636
Definition: SolverOptions.h:114
void setLocalPreconditionerOff()
Definition: SolverOptions.cpp:788
Definition: SolverOptions.h:136
bool converged
Definition: SolverOptions.h:751
Definition: SolverOptions.h:133
An exception class that signals an invalid argument value.
Definition: EsysException.h:99
int cum_num_iter
Definition: SolverOptions.h:757
boost::python::dict getTrilinosParameters() const
Definition: SolverOptions.cpp:840
SolverOptions getODESolver() const
Definition: SolverOptions.cpp:827
double cum_net_time
Definition: SolverOptions.h:760
Definition: SolverOptions.h:120
int getRestart() const
Definition: SolverOptions.cpp:520
int cum_num_inner_iter
Definition: SolverOptions.h:756
bool using_default_solver_method
Definition: SolverOptions.h:762
Definition: SolverOptions.h:154