Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
for (key, value) in parameters.items():
if key == "linear_solver":
ksp = self.eps.getST().getKSP()
ksp.setType("preonly")
ksp.getPC().setType("lu")
if value == "default":
value = wrapping.get_default_linear_solver()
if hasattr(ksp.getPC(), "setFactorSolverType"): # PETSc >= 3.9
ksp.getPC().setFactorSolverType(value)
else:
ksp.getPC().setFactorSolverPackage(value)
elif key == "maximum_iterations":
eps_tolerances[1] = value
elif key == "problem_type":
if value == "hermitian":
self.eps.setProblemType(SLEPc.EPS.ProblemType.HEP)
elif value == "non_hermitian":
self.eps.setProblemType(SLEPc.EPS.ProblemType.NHEP)
elif value == "gen_hermitian":
self.eps.setProblemType(SLEPc.EPS.ProblemType.GHEP)
elif value == "gen_non_hermitian":
self.eps.setProblemType(SLEPc.EPS.ProblemType.GNHEP)
elif value == "pos_gen_non_hermitian":
self.eps.setProblemType(SLEPc.EPS.ProblemType.PGNHEP)
else:
raise RuntimeError("Invalid problem type")
elif key == "solver":
if value == "power":
self.eps.setType(SLEPc.EPS.Type.POWER)
elif value == "subspace":
self.eps.setType(SLEPc.EPS.Type.SUBSPACE)
elif value == "arnoldi":