Skip to content

Commit 2035e07

Browse files
Remove printing that's specific to gradient-based VQE (#262)
* Remove printing that's specific to gradient-based VQE
1 parent 49aad21 commit 2035e07

File tree

3 files changed

+31
-22
lines changed

3 files changed

+31
-22
lines changed

src/qforte/abc/uccvqeabc.py

+17-22
Original file line numberDiff line numberDiff line change
@@ -312,34 +312,29 @@ def report_iteration(self, x):
312312
self._k_counter += 1
313313

314314
if self._k_counter == 1:
315-
print(
316-
"\n k iteration Energy dE Ngvec ev Ngm ev* ||g||"
317-
)
318-
print(
319-
"--------------------------------------------------------------------------------------------------"
320-
)
315+
header = "\n k iteration Energy dE"
316+
if self._use_analytic_grad:
317+
header += " Ngvec ev Ngm ev* ||g||"
318+
header += "\n------------------------------------------------------"
319+
if self._use_analytic_grad:
320+
header += "--------------------------------------------"
321+
print(header)
321322
if self._print_summary_file:
322-
f = open("summary.dat", "w+", buffering=1)
323-
f.write(
324-
"\n# k iteration Energy dE Ngvec ev Ngm ev* ||g||"
325-
)
326-
f.write(
327-
"\n#--------------------------------------------------------------------------------------------------"
328-
)
329-
f.close()
323+
header.replace("\n ", "\n# ").replace("\n-", "\n#--")
324+
with open("summary.dat", "w+", buffering=1) as f:
325+
f.write(header)
330326

331327
# else:
332328
dE = self._curr_energy - self._prev_energy
333-
print(
334-
f" {self._k_counter:7} {self._curr_energy:+12.10f} {dE:+12.10f} {self._res_vec_evals:4} {self._res_m_evals:6} {self._curr_grad_norm:+12.10f}"
335-
)
329+
update = f" {self._k_counter:7} {self._curr_energy:+12.10f} {dE:+12.10f}"
330+
if self._use_analytic_grad:
331+
update += f" {self._res_vec_evals:4} {self._res_m_evals:6} {self._curr_grad_norm:+12.10f}"
332+
print(update)
336333

337334
if self._print_summary_file:
338-
f = open("summary.dat", "a", buffering=1)
339-
f.write(
340-
f"\n {self._k_counter:7} {self._curr_energy:+12.12f} {dE:+12.12f} {self._res_vec_evals:4} {self._res_m_evals:6} {self._curr_grad_norm:+12.12f}"
341-
)
342-
f.close()
335+
with open("summary.dat", "a", buffering=1) as f:
336+
update = "\n " + update
337+
f.write(header)
343338

344339
self._prev_energy = self._curr_energy
345340

src/qforte/ucc/adaptvqe.py

+7
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,13 @@ def run(
9696
self._opt_maxiter = opt_maxiter
9797
self._use_analytic_grad = use_analytic_grad
9898
self._optimizer = optimizer
99+
if self._use_analytic_grad and self._optimizer in {
100+
"nelder-mead",
101+
"powell",
102+
"cobyla",
103+
}:
104+
print(f"{self._optimizer} optimizer doesn't support analytic grads.")
105+
self._use_analytic_grad = False
99106
self._pool_type = pool_type
100107
self._use_cumulative_thresh = use_cumulative_thresh
101108
self._add_equiv_ops = add_equiv_ops

src/qforte/ucc/uccnvqe.py

+7
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ def run(
5454
self._opt_maxiter = opt_maxiter
5555
self._use_analytic_grad = use_analytic_grad
5656
self._optimizer = optimizer
57+
if self._use_analytic_grad and self._optimizer in {
58+
"nelder-mead",
59+
"powell",
60+
"cobyla",
61+
}:
62+
print(f"{self._optimizer} optimizer doesn't support analytic grads.")
63+
self._use_analytic_grad = False
5764
self._pool_type = pool_type
5865
self._noise_factor = noise_factor
5966

0 commit comments

Comments
 (0)