- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Please show at least the calls to Pardiso and the declarations of the arguments in the calls.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
according to the linker adviser, i'm linking with the correct libraries.
WM_THX
-thomas
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
WM_THX
-thomas
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
instead linking mkl statically, i linked it dynamically. the problems went away.
WM_FYI
-thomas woelfer
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告