- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

i have a strange problem using the pardiso solver. i have a 32bit (vc++2008) application that uses the pardiso solverand which works fine. i just recompiled the app for 64bits: in this version (no code changes), pardisoemmediately returns '-3' (reordering problems.) - iow: nothing gets solved.

i couldn't find any documentation for the error code besides 'a reordering problem occured'.

i already verified that the matrices passed to the 32bit and the 64bit version are completely identical. (just to make sure the input data did not get garbled due to some other error introduced by compiling for 64bit.). they _are_ identical.

any suggestions what might be causing this behaviour in the 64bit build ?

WM_THX

-thomas woelfer

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Please show at least the calls to Pardiso and the declarations of the arguments in the calls.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

according to the linker adviser, i'm linking with the correct libraries.

WM_THX

-thomas

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

compiler options:

/I"C:\Statik\kernel\include" /Zi /nologo /W4 /WX- /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_AFXEXT" /D "WINVER=0x500" /D "XFEM_DLL_EXPORTS" /D "_VC80_UPGRADE=0x0710" /D "_WINDLL" /D "_MBCS" /D "_AFXDLL" /Gm- /EHa /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"DebugX64\kernel.native.calculations.fem64.pch" /Fa"DebugX64" /Fo"DebugX64" /Fd"DebugX64\vc100.pdb" /Gd /errorReport:queue

prototype for the call:

extern

"C" int PARDISO( INT_PTR*, int*, int*, int*, int*, int*, double*, int*, int*, int*, int*, int*, int*, double*, double*, int*);

call:

int

FEMatrix::Pardiso( int targetPhase, double* rightHandSide, double* solution, int &uEquitation )

{

uEquitation=0;

if ( pardisoPhase == -1 ) PardisoInit();

int phase = pardisoPhase * 10 + targetPhase;

int mtype = 2; /* Real symmetric positive definite matrix */

int nrhs = 1; /* Number of right hand sides. */

int maxfct = 1; /* Maximum number of numerical factorizations. */

int mnum = 1; /* Which factorization to use. */

int msglvl = 0; /* Print statistical information in file */

int error = 0; /* Initialize error flag */

#ifdef

DBG_DUMP_INCLUDED

Dump();

#endif

PARDISO( pardisoInternalMemory, &maxfct, &mnum, &mtype, &phase, &dimension,

this->values, this->rowStartIndices, this->columIndices, NULL, &nrhs,

pardisoControl, &msglvl, rightHandSide, solution, &error );

if ( error )

{

PardisoCleanup();

uEquitation = pardisoControl[29];

}

else

{

pardisoPhase = targetPhase;

}

return error;

}

WM_THX

-thomas

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

WM_THX

-thomas

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

instead linking mkl statically, i linked it dynamically. the problems went away.

WM_FYI

-thomas woelfer

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

yes. i'm sure.

WM_FYI

-thomas

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page