Commit 20fd6b4f by Kirill Terekhov

Some updates

parent 6a0126bc
......@@ -1659,7 +1659,7 @@ namespace INMOST
enumerator maxk = i, maxq = i;//, temp2;
max = fabs(get_value(AtA(maxk,maxq)));
//Find best pivot
if( max < 1.0e-8 )
//if( max < 1.0e-8 )
{
for(enumerator k = i; k < m; k++) // over rows
{
......
......@@ -1200,7 +1200,7 @@ namespace INMOST
char have_perm = 0;
std::cout << std::scientific;
bool perform_splitting = false;
bool project_perm = false;
bool project_perm = true;
int split_degenerate = 1;
bool check_topology = false;
int verbosity = 0;
......@@ -4535,7 +4535,7 @@ namespace INMOST
if (!perm.empty())
{
if (verbosity > 0) std::cout << " PERM";
tagperm = CreateTag("PERM", DATA_REAL, CELL, NONE, project_perm ? 6 : 3);
tagperm = CreateTag("PERM", DATA_REAL, CELL, NONE, project_perm ? 9 : 3);
}
if (!satnum.empty())
{
......@@ -4626,7 +4626,7 @@ namespace INMOST
block_axis(c, 3, 3).SVD(U, S, V);
for (int r = 0; r < 3; ++r)
{
if (S(r, r) > 1.0e-8)
if (S(r, r) > 1.0e-4)
Sinv(r, r) = 1.0 / S(r, r);
else
Sinv(r, r) = 0.0;
......@@ -4641,9 +4641,12 @@ namespace INMOST
arr_perm[0] = K(0, 0);
arr_perm[1] = K(0, 1);
arr_perm[2] = K(0, 2);
arr_perm[3] = K(1, 1);
arr_perm[4] = K(1, 2);
arr_perm[5] = K(2, 2);
arr_perm[3] = K(1, 0);
arr_perm[4] = K(1, 1);
arr_perm[5] = K(1, 2);
arr_perm[6] = K(2, 0);
arr_perm[7] = K(2, 1);
arr_perm[8] = K(2, 2);
}
else
{
......
......@@ -4836,7 +4836,7 @@ namespace INMOST
#if defined(USE_MPI)
#if !defined(USE_PARALLEL_STORAGE)
parallel_storage ghost_elements, shared_elements;
GatherParallelStorage(ghost_elements,shared_elements,mask);
GatherParallelStorage(ghost_elements,shared_elements,FACE);
#endif //USE_PARALLEL_STORAGE
TagRealArray tag_nrm = CreateTag("TEMPORARY_NORMAL",DATA_REAL,FACE,NONE,3);
for(iteratorFace it = BeginFace(); it != EndFace(); ++it)
......
......@@ -10,12 +10,12 @@
#include "inmost_solver.h"
#define PERTURBATE_RTILDE
#define CONVEX_COMBINATION
//#define CONVEX_COMBINATION
#define PSEUDOINVERSE // same trick as in petsc with pseudoinverse
//#define USE_LAPACK_SVD // use lapack's dgesvd routine instead of built-in svdnxn
//#if !defined(NDEBUG)
//#define REPORT_RESIDUAL
#define REPORT_RESIDUAL
//#endif
//#define USE_OMP
......
......@@ -45,10 +45,10 @@ using namespace INMOST;
#define PIVOT_THRESHOLD
#define PIVOT_THRESHOLD_VALUE 1.0e-9
//#define DIAGONAL_PERTURBATION
#define DIAGONAL_PERTURBATION_REL 1.0e-10
#define DIAGONAL_PERTURBATION_REL 1.0e-7
#define DIAGONAL_PERTURBATION_ABS 1.0e-12
//#define DIAGONAL_PIVOT //probably there is some bug
#define DIAGONAL_PIVOT_TAU 0.1
#define DIAGONAL_PIVOT_TAU 0.01
//#define DIAGONAL_PIVOT_COND 100
#define ILUC2
#define TRACK_DIAGONAL
......
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