def get_esystem(basis,traj_edges,test_set=None,delay=1):
"""
"""
if test_set is None:
test_set = basis
# Calculate Generator, Stiffness matrix
L = get_generator(basis,traj_edges,test_set=test_set,delay=delay,dt_eff=1)
# L = get_transop(basis,traj_edges,test_set=test_set,delay=delay)
S = get_stiffness_mat(basis,traj_edges,test_set=test_set,delay=delay)
# Calculate, sort eigensystem
evals, evecs_l, evecs_r = spl.eig(L,b=S,left=True,right=True,overwrite_a=False,overwrite_b=False)
idx = evals.argsort()[::-1]
evals = evals[idx]
evecs_l = evecs_l[:,idx]
evecs_r = evecs_r[:,idx]
# Expand eigenvectors into real space.
expanded_evecs_l = np.dot(test_set,evecs_l)
expanded_evecs_r = np.dot(basis,evecs_r)
return evals, expanded_evecs_l, expanded_evecs_r
评论列表
文章目录