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:754
Definition: SolverOptions.h:158
double getDropTolerance() const
Definition: SolverOptions.cpp:608
SolverOptions
Definition: SolverOptions.h:92
Definition: SolverOptions.h:164
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:29
int iter_max
Definition: SolverOptions.h:731
Definition: SolverOptions.h:170
#define PASO_ONE
Definition: Paso.h:67
void setInnerToleranceAdaptionOff()
Definition: SolverOptions.cpp:726
void setDropStorage(double drop)
Definition: SolverOptions.cpp:613
SolverOptions reordering
Definition: SolverOptions.h:724
Definition: SolverOptions.h:130
double set_up_time
Definition: SolverOptions.h:750
bool accept_convergence_failure
Definition: SolverOptions.h:740
bool hasConverged() const
Definition: SolverOptions.cpp:325
double getDiagnostics(const std::string name) const
Definition: SolverOptions.cpp:305
bool useLocalPreconditioner() const
Definition: SolverOptions.cpp:762
void updateDiagnostics(const std::string &key, bool value)
Definition: SolverOptions.cpp:203
Definition: SolverOptions.h:129
Definition: SolverOptions.h:131
int getDim()
Definition: SolverOptions.cpp:836
void setTruncation(int truncation)
Definition: SolverOptions.cpp:517
int inner_iter_max
Definition: SolverOptions.h:732
Definition: SolverOptions.h:133
void setVerbosityOff()
Definition: SolverOptions.cpp:703
double getTolerance() const
Definition: SolverOptions.cpp:572
int sweeps
Definition: SolverOptions.h:725
Definition: SolverOptions.h:128
double drop_storage
Definition: SolverOptions.h:730
Definition: SolverOptions.h:125
std::string getSummary() const
Definition: SolverOptions.cpp:74
double time
Definition: SolverOptions.h:749
double getAbsoluteTolerance() const
Definition: SolverOptions.cpp:584
int num_coarse_unknowns
Definition: SolverOptions.h:757
Definition: SolverOptions.h:152
void setAcceptanceConvergenceFailureOn()
Definition: SolverOptions.cpp:744
int getTruncation() const
Definition: SolverOptions.cpp:524
bool symmetric
Definition: SolverOptions.h:736
Definition: SolverOptions.h:144
~SolverBuddy()
Definition: SolverOptions.cpp:69
SolverOptions getPackage() const
Definition: SolverOptions.cpp:471
void resetDiagnostics(bool all=false)
Definition: SolverOptions.cpp:180
int getNumSweeps() const
Definition: SolverOptions.cpp:560
void setReordering(int ordering)
Definition: SolverOptions.cpp:476
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:102
bool time_step_backtracking_used
Definition: SolverOptions.h:755
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:53
void setSymmetryOn()
Definition: SolverOptions.cpp:652
int num_iter
Definition: SolverOptions.h:746
SolverOptions getSolverMethod() const
Definition: SolverOptions.cpp:408
double absolute_tolerance
Definition: SolverOptions.h:727
bool convert(bp::object bpo, R &result)
Definition: SolverOptions.cpp:25
double cum_time
Definition: SolverOptions.h:760
int getNumRefinements() const
Definition: SolverOptions.cpp:792
int num_inner_iter
Definition: SolverOptions.h:748
void setRestart(int restart)
Definition: SolverOptions.cpp:496
Definition: SolverOptions.h:154
bool use_local_preconditioner
Definition: SolverOptions.h:742
void setSymmetryOff()
Definition: SolverOptions.cpp:657
Definition: SolverOptions.h:148
Definition: SolverOptions.h:162
boost::shared_ptr< SolverBuddy > SB_ptr
Definition: SolverOptions.h:767
bool hermitian
Definition: SolverOptions.h:737
Definition: SolverOptions.h:145
bool isHermitian() const
Definition: SolverOptions.cpp:670
bool isComplex() const
Definition: SolverOptions.cpp:637
void setHermitianOn()
Definition: SolverOptions.cpp:675
int num_level
Definition: SolverOptions.h:747
void updateDiagnosticsPy(const std::string &key, const boost::python::object &value)
Definition: SolverOptions.cpp:246
SolverOptions preconditioner
Definition: SolverOptions.h:722
Definition: SolverOptions.h:135
bool verbose
Definition: SolverOptions.h:738
Definition: SolverOptions.h:159
void setIterMax(int iter_max)
Definition: SolverOptions.cpp:541
void setNumSweeps(int sweeps)
Definition: SolverOptions.cpp:553
void setNumRefinements(int refinements)
Definition: SolverOptions.cpp:785
void setDim(int dim)
Definition: SolverOptions.cpp:829
void setAbsoluteTolerance(double atol)
Definition: SolverOptions.cpp:577
void setLocalPreconditioner(bool local)
Definition: SolverOptions.cpp:777
bool isVerbose() const
Definition: SolverOptions.cpp:693
int refinements
Definition: SolverOptions.h:743
int restart
Definition: SolverOptions.h:734
Definition: SolverOptions.h:115
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:113
void setRelaxationFactor(double factor)
Definition: SolverOptions.cpp:625
double net_time
Definition: SolverOptions.h:751
SolverOptions ode_solver
Definition: SolverOptions.h:723
bool adapt_inner_tolerance
Definition: SolverOptions.h:739
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:915
Definition: SolverOptions.h:161
bool acceptConvergenceFailure() const
Definition: SolverOptions.cpp:739
void setComplex(bool complex)
Definition: SolverOptions.cpp:642
double relaxation
Definition: SolverOptions.h:741
double drop_tolerance
Definition: SolverOptions.h:729
SolverOptions package
Definition: SolverOptions.h:720
double getRelaxationFactor() const
Definition: SolverOptions.cpp:632
int getInnerIterMax() const
Definition: SolverOptions.cpp:536
SolverResult
Definition: Paso.h:55
double getInnerTolerance() const
Definition: SolverOptions.cpp:596
void setTolerance(double rtol)
Definition: SolverOptions.cpp:565
int _getRestartForC() const
Definition: SolverOptions.cpp:509
Definition: SolverOptions.h:153
SolverOptions method
Definition: SolverOptions.h:721
const char * getName(int key) const
Definition: SolverOptions.cpp:118
Definition: SolverOptions.h:122
int preconditioner_size
Definition: SolverOptions.h:754
Definition: SolverOptions.h:121
int dim
Definition: SolverOptions.h:744
boost::python::dict trilinosParams
Definition: SolverOptions.h:717
void setPackage(int package)
Definition: SolverOptions.cpp:413
double inner_tolerance
Definition: SolverOptions.h:728
int getIterMax() const
Definition: SolverOptions.cpp:548
Definition: SolverOptions.h:138
Definition: SolverOptions.h:142
int truncation
Definition: SolverOptions.h:733
Definition: SolverOptions.h:132
void setInnerToleranceAdaption(bool adaption)
Definition: SolverOptions.cpp:731
double tolerance
Definition: SolverOptions.h:726
bool using_default_method() const
Definition: SolverOptions.cpp:841
SolverOptions getReordering() const
Definition: SolverOptions.cpp:491
bool isSymmetric() const
Definition: SolverOptions.cpp:647
Definition: SolverOptions.h:163
Definition: SolverOptions.h:120
SolverOptions getPreconditioner() const
Definition: SolverOptions.cpp:352
bool isDirectSolver(const SolverOptions &method)
returns true if the passed solver method refers to a direct solver type
Definition: SolverOptions.h:155
void setHermitianOff()
Definition: SolverOptions.cpp:680
SolverBuddy()
Definition: SolverOptions.cpp:35
void setInnerIterMax(int iter_max)
Definition: SolverOptions.cpp:529
void setInnerToleranceAdaptionOn()
Definition: SolverOptions.cpp:721
Definition: SolverOptions.h:110
Definition: SolverOptions.h:134
void setVerbosityOn()
Definition: SolverOptions.cpp:698
Definition: SolverOptions.h:127
void setSolverMethod(int method)
Definition: SolverOptions.cpp:357
Definition: AbstractContinuousDomain.cpp:23
Definition: SolverOptions.h:124
void setPreconditioner(int preconditioner)
Definition: SolverOptions.cpp:330
Definition: SolverOptions.h:126
void setSymmetry(bool symmetry)
Definition: SolverOptions.cpp:662
Definition: SolverOptions.h:143
Definition: SolverOptions.h:107
Definition: SolverOptions.h:147
bool is_complex
Definition: SolverOptions.h:735
void setDropTolerance(double drop_tol)
Definition: SolverOptions.cpp:601
double cum_set_up_time
Definition: SolverOptions.h:761
void setVerbosity(bool verbose)
Definition: SolverOptions.cpp:708
void setODESolver(int solver)
Definition: SolverOptions.cpp:797
double coarse_level_sparsity
Definition: SolverOptions.h:756
LinearSystem(SystemMatrix_ptr A, double *b, Options *options)
Definition: Solver_Function.cpp:39
void setHermitian(bool hermitian)
Definition: SolverOptions.cpp:685
void setAcceptanceConvergenceFailureOff()
Definition: SolverOptions.cpp:749
void setInnerTolerance(double rtol)
Definition: SolverOptions.cpp:589
Definition: SolverOptions.h:111
Definition: SolverOptions.h:149
Definition: SolverOptions.h:116
void setTrilinosParameter(const std::string &name, const boost::python::object &value)
Definition: SolverOptions.cpp:816
bool adaptInnerTolerance() const
Definition: SolverOptions.cpp:716
Definition: BiCGStab.cpp:26
Definition: SolverOptions.h:114
Definition: SolverOptions.h:146
double residual_norm
Definition: SolverOptions.h:752
void setLocalPreconditionerOn()
Definition: SolverOptions.cpp:767
Definition: SolverOptions.h:137
double getDropStorage() const
Definition: SolverOptions.cpp:620
Definition: SolverOptions.h:117
void setLocalPreconditionerOff()
Definition: SolverOptions.cpp:772
Definition: SolverOptions.h:139
bool converged
Definition: SolverOptions.h:753
Definition: SolverOptions.h:136
An exception class that signals an invalid argument value.
Definition: EsysException.h:101
int cum_num_iter
Definition: SolverOptions.h:759
boost::python::dict getTrilinosParameters() const
Definition: SolverOptions.cpp:824
SolverOptions getODESolver() const
Definition: SolverOptions.cpp:811
double cum_net_time
Definition: SolverOptions.h:762
Definition: SolverOptions.h:123
int getRestart() const
Definition: SolverOptions.cpp:504
int cum_num_inner_iter
Definition: SolverOptions.h:758
bool using_default_solver_method
Definition: SolverOptions.h:764
Definition: SolverOptions.h:157