Skip to content

Commit

Permalink
Turn off automatic convergence in unit tests (#221)
Browse files Browse the repository at this point in the history
Make sure we can fully converge any test
  • Loading branch information
william-dawson authored Oct 3, 2023
1 parent c3bb365 commit 52b6c8a
Showing 1 changed file with 34 additions and 32 deletions.
66 changes: 34 additions & 32 deletions UnitTests/test_solvers.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ def setUp(self):
self.fsp = nt.SolverParameters()
self.fsp.SetVerbosity(True)
self.isp.SetVerbosity(True)
self.isp.SetMonitorConvergence(False)
self.fsp.SetMonitorConvergence(False)
if nt.GetGlobalIsRoot():
nt.ActivateLogger(log_file, True)

Expand Down Expand Up @@ -1055,38 +1057,38 @@ def test_svd(self):
comm.barrier()
self.check_result()

# def test_estimategap(self):
# '''Test routines to estimate homo-lumo gap.'''
# from scipy.linalg import eigh
# # Starting Matrix
# H = self.create_matrix(add_gap=True)
# self.write_matrix(H, self.input_file)

# # Check Matrix
# vals, _ = eigh(H.todense())
# nel = int(self.mat_dim/2)
# gap_gold = vals[nel] - vals[nel - 1]
# cp = vals[nel - 1] + 0.5 * gap_gold

# # Compute
# Hmat = nt.Matrix_ps(self.input_file, False)
# Kmat = nt.Matrix_ps(Hmat.GetActualDimension())

# # Density Part
# ISQ = nt.Matrix_ps(Hmat.GetActualDimension())
# ISQ.FillIdentity()
# SRoutine = nt.DensityMatrixSolvers.TRS4
# _, _ = SRoutine(Hmat, ISQ, nel, Kmat, self.isp)

# # Estimate Driver
# gap = nt.EigenSolvers.EstimateGap(Hmat, Kmat, cp, self.isp)

# # Check the value. Threshold has to be lose because of degenerate
# # eigenvalues near the gap.
# threshold = 0.5
# relative_error = abs(gap_gold - gap)
# global_error = comm.bcast(relative_error, root=0)
# self.assertLessEqual(global_error, threshold)
def test_estimategap(self):
'''Test routines to estimate homo-lumo gap.'''
from scipy.linalg import eigh
# Starting Matrix
H = self.create_matrix(add_gap=True)
self.write_matrix(H, self.input_file)

# Check Matrix
vals, _ = eigh(H.todense())
nel = int(self.mat_dim/2)
gap_gold = vals[nel] - vals[nel - 1]
cp = vals[nel - 1] + 0.5 * gap_gold

# Compute
Hmat = nt.Matrix_ps(self.input_file, False)
Kmat = nt.Matrix_ps(Hmat.GetActualDimension())

# Density Part
ISQ = nt.Matrix_ps(Hmat.GetActualDimension())
ISQ.FillIdentity()
SRoutine = nt.DensityMatrixSolvers.TRS4
_, _ = SRoutine(Hmat, ISQ, nel, Kmat, self.isp)

# Estimate Driver
gap = nt.EigenSolvers.EstimateGap(Hmat, Kmat, cp, self.isp)

# Check the value. Threshold has to be lose because of degenerate
# eigenvalues near the gap.
threshold = 0.5
relative_error = abs(gap_gold - gap)
global_error = comm.bcast(relative_error, root=0)
self.assertLessEqual(global_error, threshold)


class TestSolvers_r(TestSolvers):
Expand Down

0 comments on commit 52b6c8a

Please sign in to comment.