Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
elif value == "jacobi-davidson":
self.eps.setType(SLEPc.EPS.Type.JD)
elif value == "generalized-davidson":
self.eps.setType(SLEPc.EPS.Type.GD)
else:
raise RuntimeError("Invalid solver type")
elif key == "spectral_shift":
st = self.eps.getST()
st.setShift(value)
elif key == "spectral_transform":
assert value == "shift-and-invert"
st = self.eps.getST()
st.setType(SLEPc.ST.Type.SINVERT)
elif key == "spectrum":
if value == "largest magnitude":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.LARGEST_MAGNITUDE)
elif value == "smallest magnitude":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.SMALLEST_MAGNITUDE)
elif value == "largest real":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.LARGEST_REAL)
elif value == "smallest real":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.SMALLEST_REAL)
elif value == "largest imaginary":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.LARGEST_IMAGINARY)
elif value == "smallest imaginary":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.SMALLEST_IMAGINARY)
elif value == "target magnitude":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.TARGET_MAGNITUDE)
if "spectral_shift" in parameters:
self.eps.setTarget(parameters["spectral_shift"])
elif value == "target real":
self.eps.setWhichEigenpairs(SLEPc.EPS.Which.TARGET_REAL)