Skip to content

Commit 1576c3c

Browse files
jiangtong1000liwt31
authored andcommitted
a trick but greatly accelerate h_qc construction.
1 parent 9583324 commit 1576c3c

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

renormalizer/model/h_qc.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,16 @@ def process_op(old_op: Op):
143143
return Op.product(new_ops)
144144

145145
# 1-e terms
146-
for p, q in itertools.product(range(norbs), repeat=2):
146+
pairs = np.argwhere(h1e!=0)
147+
for p, q in pairs:
147148
op = process_op(a_dag_ops[p] * a_ops[q])
148149
ham_terms.append(op * h1e[p, q])
149150

150151
# 2-e terms.
151-
for q,s in itertools.product(range(norbs),repeat = 2):
152-
for p,r in itertools.product(range(q),range(s)):
153-
op = process_op(Op.product([a_dag_ops[p], a_dag_ops[q], a_ops[r], a_ops[s]]))
154-
ham_terms.append(op * h2e[p, q, r, s])
152+
pairs = np.argwhere(h2e!=0)
153+
for p, q, r, s in pairs:
154+
op = process_op(Op.product([a_dag_ops[p], a_dag_ops[q], a_ops[r], a_ops[s]]))
155+
ham_terms.append(op * h2e[p, q, r, s])
155156

156157

157158
basis = []

0 commit comments

Comments
 (0)