Beispiel #1
0
void pardiso_64init(void *pt, INT_TYPE *mtype, INT_TYPE iparm []) {
    int     iparm_copy[IPARM_SIZE], mtype_copy, i;
    mtype_copy = *mtype;
    pardisoinit(pt, &mtype_copy, iparm_copy);
    for(i = 0; i < IPARM_SIZE; i++)
        iparm[i] = iparm_copy[i];
}
Beispiel #2
0
PardisoSolver::PardisoSolver(SolverIF::MatrixType type):
	SolverIF(type)
{
	int solver = PARDISO_SOLVERTYPE;
	matrix = NULL; 
	assert(matrix == NULL);
	nrhs = 1;
	error = 0;
	print_stats = 0;
	matrix_type = (type == SolverIF::MATRIX_STRUCTURALLY_SYMMETRIC?MT_STRUCTURALLY_SYMMETRIC: 
					(type == SolverIF::MATRIX_SYMMETRIC?MT_STRUCTURALLY_SYMMETRIC:  //MT_SYMMETRIC: numerical errors make the mats slightly unsymmetric.
					MT_ANY));

	init_intParams(PARDISO_REFINEMENTSTEPS);
	pardisoinit(intern_memory, &matrix_type, &solver, int_params, double_params, &error);
	checkError_init();

	//matrixWasSet = false;
}