fix: Corr.GEVP now uses symmetrized correlator matrix also for sorting

methods.
This commit is contained in:
Fabian Joswig 2022-05-03 10:48:35 +01:00
parent a28ef38f00
commit a6deb52a04

View file

@ -259,16 +259,16 @@ class Corr:
"Eigenvector" - Use the method described in arXiv:2004.10472 [hep-lat] to find the set of v(t) belonging to the state.
The reference state is identified by its eigenvalue at t=ts
"""
symmetric_corr = self.matrix_symmetric()
if sorted_list is None:
if (ts is None):
raise Exception("ts is required if sorted_list=None")
if (self.content[t0] is None) or (self.content[ts] is None):
raise Exception("Corr not defined at t0/ts")
G0, Gt = np.empty([self.N, self.N], dtype="double"), np.empty([self.N, self.N], dtype="double")
symmetric_corr = self.matrix_symmetric()
for i in range(self.N):
for j in range(self.N):
G0[i, j] = symmetric_corr.content[t0][i, j].value
G0[i, j] = symmetric_corr[t0][i, j].value
Gt[i, j] = symmetric_corr[ts][i, j].value
sp_vecs = _GEVP_solver(Gt, G0)
@ -281,8 +281,8 @@ class Corr:
G0, Gt = np.empty([self.N, self.N], dtype="double"), np.empty([self.N, self.N], dtype="double")
for i in range(self.N):
for j in range(self.N):
G0[i, j] = self.content[t0][i, j].value
Gt[i, j] = self.content[t][i, j].value
G0[i, j] = symmetric_corr[t0][i, j].value
Gt[i, j] = symmetric_corr[t][i, j].value
sp_vecs = _GEVP_solver(Gt, G0)
if sorted_list == "Eigenvalue":