PyPardisoError: The Pardiso solver failed with error code -3. See Pardiso documentation for details. #2702
Replies: 1 comment
-
When this happens you just need to create a new virtualenv and reinstall from scratch. Some of your dependencies are out of sync and it's quite hard to fix. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
i tried running the relative permeability example from the openpnm website and this is what i'm getting,
PyPardisoError Traceback (most recent call last)
Cell In[9], line 6
4 sat = sat_occ_update(network=pn, nwp=air, wp=water, ip=ip, i=i)
5 Snwparr.append(sat)
----> 6 Rate_abs_nwp = Rate_calc(pn, air, flow_in, flow_out, conductance = 'throat.hydraulic_conductance')
7 Rate_abs_wp = Rate_calc(pn, water, flow_in, flow_out, conductance = 'throat.hydraulic_conductance')
8 Rate_enwp = Rate_calc(pn, air, flow_in, flow_out, conductance = 'throat.conduit_hydraulic_conductance')
Cell In[5], line 7, in Rate_calc(network, phase, inlet, outlet, conductance)
5 St_p.set_value_BC(pores=inlet, values=1)
6 St_p.set_value_BC(pores=outlet, values=0)
----> 7 St_p.run()
8 val = np.abs(St_p.rate(pores=inlet, mode='group'))
9 return val
File ~\anaconda3\envs\et\lib\site-packages\openpnm\algorithms_transport.py:207, in Transport.run(self, solver, x0, verbose)
205 # Build A and b, then solve the system of equations
206 self._update_A_and_b()
--> 207 self._run_special(solver=solver, x0=x0, verbose=verbose)
File ~\anaconda3\envs\et\lib\site-packages\openpnm\algorithms_reactive_transport.py:206, in ReactiveTransport._run_special(self, solver, x0, verbose)
204 logger.info(f"Solution converged, residual norm: {norm(res):.4e}")
205 return
--> 206 super()._run_special(solver=solver, x0=xold, w=w)
207 dx = self.x - xold
208 xold = self.x
File ~\anaconda3\envs\et\lib\site-packages\openpnm\algorithms_transport.py:213, in Transport._run_special(self, solver, x0, w, verbose)
211 self._validate_linear_system()
212 # Solve and apply under-relaxation
--> 213 x_new, exit_code = solver.solve(A=self.A, b=self.b, x0=x0)
214 self.x = w * x_new + (1 - w) * self.x
215 # Update A and b using the recent solution otherwise, for iterative
216 # algorithms, residual will be incorrectly calculated ~0, since A & b
217 # are outdated
File ~\anaconda3\envs\et\lib\site-packages\openpnm\solvers_pardiso.py:15, in PardisoSpsolve.solve(self, A, b, **kwargs)
13 if not isinstance(A, (csr_matrix, csc_matrix)):
14 A = A.tocsr()
---> 15 return (spsolve(A, b), 0)
File ~\anaconda3\envs\et\lib\site-packages\pypardiso\scipy_aliases.py:46, in spsolve(A, b, factorize, squeeze, solver, *args, **kwargs)
44 solver._check_A(A)
45 if factorize and not solver._is_already_factorized(A):
---> 46 solver.factorize(A)
48 x = solver.solve(A, b)
50 if squeeze:
File ~\anaconda3\envs\et\lib\site-packages\pypardiso\pardiso_wrapper.py:155, in PyPardisoSolver.factorize(self, A)
153 self.set_phase(12)
154 b = np.zeros((A.shape[0], 1))
--> 155 self._call_pardiso(A, b)
File ~\anaconda3\envs\et\lib\site-packages\pypardiso\pardiso_wrapper.py:286, in PyPardisoSolver._call_pardiso(self, A, b)
268 self._mkl_pardiso(self.pt.ctypes.data_as(ctypes.POINTER(self._pt_type[0])), # pt
269 ctypes.byref(ctypes.c_int32(1)), # maxfct
270 ctypes.byref(ctypes.c_int32(1)), # mnum
(...)
282 x.ctypes.data_as(c_float64_p), # x -> output
283 ctypes.byref(pardiso_error)) # pardiso error
285 if pardiso_error.value != 0:
--> 286 raise PyPardisoError(pardiso_error.value)
287 else:
288 return np.ascontiguousarray(x)
PyPardisoError: The Pardiso solver failed with error code -3. See Pardiso documentation for details.
Beta Was this translation helpful? Give feedback.
All reactions