Commit 099bb160 authored by Kirill Terekhov's avatar Kirill Terekhov

Various updates

Changed default parameters.
Fixed bug for trilinos-aztec, when non-converged solution was accepted.
Enchanced dropping rules in INNER_MLILUC solver.
parent 73080371
......@@ -6,18 +6,18 @@
#include "inmost_common.h"
//#include "solver_prototypes.hpp"
#define DEFAULT_ADDITIVE_SCHWARTZ_OVERLAP 2
#define DEFAULT_ADDITIVE_SCHWARTZ_OVERLAP 1
#define DEFAULT_ABSOLUTE_TOLERANCE 1.0e-5
#define DEFAULT_RELATIVE_TOLERANCE 1.0e-12
#define DEFAULT_DIVERGENCE_TOLERANCE 1.0e+100
#define DEFAULT_MAXIMUM_ITERATIONS 2500
#define DEFAULT_SOLVER_GMRES_SUBSTEPS 3
#define DEFAULT_PRECONDITIONER_DROP_TOLERANCE 0.0005
#define DEFAULT_PRECONDITIONER_REUSE_TOLERANCE 0.000001
#define DEFAULT_SOLVER_GMRES_SUBSTEPS 2
#define DEFAULT_PRECONDITIONER_DROP_TOLERANCE 0.005
#define DEFAULT_PRECONDITIONER_REUSE_TOLERANCE 0.00005
#define DEFAULT_PRECONDITIONER_FILL_LEVEL 3
#define DEFAULT_PRECONDITIONER_DDPQ_TOLERANCE 0.9
#define DEFAULT_PRECONDITIONER_REORDER_NONZEROS 0
#define DEFAULT_PRECONDITIONER_RESCALE_ITERS 8
#define DEFAULT_PRECONDITIONER_DDPQ_TOLERANCE 0.75
#define DEFAULT_PRECONDITIONER_REORDER_NONZEROS 1
#define DEFAULT_PRECONDITIONER_RESCALE_ITERS 6
#define DEFAULT_PRECONDITIONER_CONDITION_ESTIMATION 1
#define DEFAULT_PRECONDITIONER_ADAPT_DDPQ_TOLERANCE 1
......
......@@ -2109,8 +2109,8 @@ namespace INMOST
break;
case AZ_loss:
return_reason = "Numerical loss precision occurred.";
ret = false;
break;
ret = false;
case AZ_ill_cond:
return_reason = "The Hessenberg matrix within GMRES is illconditioned."
"This could be caused by a number"
......
......@@ -167,6 +167,7 @@ namespace INMOST
info->GetVectorRegion(vbeg,vend);
rhs_norm = info->ScalarProd(RHS,RHS,vlocbeg,vlocend);
//rhs_norm = 1;
//r[0] = b
std::copy(RHS.Begin(),RHS.End(),r[0].Begin());
{
......@@ -189,7 +190,7 @@ namespace INMOST
//std::cout << "iter " << last_it << " residual " << resid << std::endl;
//std::cout << "iter " << last_it << " resid " << resid << "\r";
//printf("iter %3d resid %12g | %12g relative %12g | %12g\r", last_it, resid, atol, resid / resid0, rtol);
printf("iter %3d resid %12g | %g\n", last_it, resid, atol);
printf("iter %3d resid %12g | %g\r", last_it, resid, atol);
fflush(stdout);
}
#endif
......@@ -320,7 +321,7 @@ namespace INMOST
//std::cout << "iter " << last_it << " residual " << resid << " time " << tt << " matvec " << ts*0.5/l << " precond " << tp*0.5/l << std::endl;
//std::cout << "iter " << last_it << " resid " << resid << "\r";
//printf("iter %3d resid %12g | %12g relative %12g | %12g\r", last_it, resid, atol, resid / resid0, rtol);
printf("iter %3d resid %12g | %g\n", last_it, resid, atol);
printf("iter %3d resid %12g | %g\r", last_it, resid, atol);
fflush(stdout);
}
#endif
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment