From a7199660ef8718e5fa69f21e202f2480fe266bc4 Mon Sep 17 00:00:00 2001 From: "xiaojie.wu" Date: Sun, 19 Nov 2023 15:53:03 +0800 Subject: [PATCH] improved unit test --- gpu4pyscf/solvent/grad/pcm.py | 3 ++- gpu4pyscf/solvent/hessian/pcm.py | 3 ++- gpu4pyscf/solvent/tests/test_pcm_hessian.py | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/gpu4pyscf/solvent/grad/pcm.py b/gpu4pyscf/solvent/grad/pcm.py index d4420488..2a6d4904 100644 --- a/gpu4pyscf/solvent/grad/pcm.py +++ b/gpu4pyscf/solvent/grad/pcm.py @@ -185,7 +185,8 @@ def grad_qv(pcmobj, dm): # rebuild with aosym intopt.build(1e-14, diag_block_with_triu=True, aosym=False) coeff = intopt.coeff - dm_cart = cupy.einsum('pi,ij,qj->pq', coeff, dm, coeff) + dm_cart = coeff @ dm @ coeff.T + #dm_cart = cupy.einsum('pi,ij,qj->pq', coeff, dm, coeff) dvj, _ = int3c2e.get_int3c2e_ip_jk(intopt, 0, 'ip1', q_sym, None, dm_cart) dq, _ = int3c2e.get_int3c2e_ip_jk(intopt, 0, 'ip2', q_sym, None, dm_cart) diff --git a/gpu4pyscf/solvent/hessian/pcm.py b/gpu4pyscf/solvent/hessian/pcm.py index 394386cd..4fe16261 100644 --- a/gpu4pyscf/solvent/hessian/pcm.py +++ b/gpu4pyscf/solvent/hessian/pcm.py @@ -97,7 +97,8 @@ def hess_qv(pcmobj, dm, verbose=None): # rebuild with aosym intopt.build(1e-14, diag_block_with_triu=True, aosym=False) coeff = intopt.coeff - dm_cart = cupy.einsum('pi,ij,qj->pq', coeff, dm, coeff) + dm_cart = coeff @ dm @ coeff.T + #dm_cart = cupy.einsum('pi,ij,qj->pq', coeff, dm, coeff) dvj, _ = int3c2e.get_int3c2e_ipip1_hjk(intopt, q_sym, None, dm_cart, with_k=False) dq, _ = int3c2e.get_int3c2e_ipvip1_hjk(intopt, q_sym, None, dm_cart, with_k=False) diff --git a/gpu4pyscf/solvent/tests/test_pcm_hessian.py b/gpu4pyscf/solvent/tests/test_pcm_hessian.py index b6c650a3..5a21ca00 100644 --- a/gpu4pyscf/solvent/tests/test_pcm_hessian.py +++ b/gpu4pyscf/solvent/tests/test_pcm_hessian.py @@ -74,14 +74,13 @@ def _check_hessian(mf, h, ix=0, iy=0): _, g1 = g_scanner(pmol) h_fd = (g0 - g1)/2.0/eps - pmol.set_geom_(coords, unit='Bohr') - pmol.build() print(f'Norm of H({ix},{iy}) diff, {np.linalg.norm(h[ix,:,iy,:] - h_fd)}') assert(np.linalg.norm(h[ix,:,iy,:] - h_fd) < tol) class KnownValues(unittest.TestCase): def test_hess_cpcm(self): + print('testing C-PCM Hessian') mf = _make_mf(method='C-PCM') hobj = mf.Hessian() hobj.set(auxbasis_response=2) @@ -90,6 +89,7 @@ def test_hess_cpcm(self): _check_hessian(mf, h, ix=0, iy=1) def test_hess_iefpcm(self): + print("testing IEF-PCM hessian") mf = _make_mf(method='IEF-PCM') hobj = mf.Hessian() hobj.set(auxbasis_response=2)