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]; }
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; }