From fe9d03866763881f2259521eeaff1ee2dc8060ef Mon Sep 17 00:00:00 2001 From: Thomas Witkowski <thomas.witkowski@gmx.de> Date: Thu, 12 Jun 2008 08:05:13 +0000 Subject: [PATCH] * PardisoSolver bugfix --- AMDiS/src/PardisoSolver.cc | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/AMDiS/src/PardisoSolver.cc b/AMDiS/src/PardisoSolver.cc index 80e4ccaa..f53ef71c 100644 --- a/AMDiS/src/PardisoSolver.cc +++ b/AMDiS/src/PardisoSolver.cc @@ -151,7 +151,7 @@ namespace AMDiS { PARDISO(pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja, &idum, &nRhs, iparm, &msglvl, &ddum, &ddum, &error); - + TEST_EXIT(error == 0)("Intel MKL Pardiso error during symbolic factorization: %d\n", error); // Numerical factorization @@ -171,13 +171,6 @@ namespace AMDiS { TEST_EXIT(error == 0)("Intel MKL Pardiso error during solution: %d\n", error); - // Termination and release of memory - phase = -1; - - PARDISO(pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja, &idum, &nRhs, - iparm, &msglvl, &ddum, &ddum, &error); - - // Copy and resort solution. for (int i = 0; i < x->getSize(); i++) { DOFVector<double>::Iterator it(x->getDOFVector(i), USED_DOFS); @@ -198,12 +191,17 @@ namespace AMDiS { MSG("Residual: %e\n", this->residual); + // Termination and release of memory + phase = -1; + + PARDISO(pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja, &idum, &nRhs, + iparm, &msglvl, &ddum, &ddum, &error); free(a); free(ja); free(ia); - free(b); - free(x); + free(bvec); + free(xvec); return(1); } -- GitLab