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
Uh oh!
There was an error while loading. Please reload this page.
-
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