Initial commit. Stage one work done.

This commit is contained in:
2026-07-23 11:35:25 -05:00
parent a7be272917
commit dd3b0f9c45
37 changed files with 3429 additions and 171 deletions

28
scratch_scan_probe.py Normal file
View File

@@ -0,0 +1,28 @@
import sys, numpy as np
import jax; jax.config.update("jax_enable_x64", True)
sys.path.insert(0, "libxc")
import funxc
from pylibxc import LibXCFunctional
# spread of points: vary rho, sigma, tau to hit small/moderate/large s and alpha
rho = np.array([[0.5,0.5],[0.3,0.2],[1.0,0.8],[0.1,0.1],[2.0,1.0],[0.05,0.04]])
sigma = np.array([[0.1,0.05,0.1],[0.02,0.01,0.02],[0.5,0.3,0.4],
[0.001,0.0005,0.001],[3.0,2.0,2.5],[1e-4,5e-5,1e-4]])
tau = np.array([[0.3,0.3],[0.2,0.15],[0.9,0.7],[0.05,0.05],[1.5,0.8],[0.02,0.015]])
lapl = np.zeros_like(tau)
lf = LibXCFunctional("MGGA_X_SCAN","polarized")
o = lf.compute({"rho":np.ascontiguousarray(rho.reshape(-1)),
"sigma":np.ascontiguousarray(sigma.reshape(-1)),
"lapl":np.ascontiguousarray(lapl.reshape(-1)),
"tau":np.ascontiguousarray(tau.reshape(-1))})
lib_zk=o["zk"].reshape(-1); lib_vrho=o["vrho"].reshape(-1,2)
f=funxc.functional("MGGA_X_SCAN",polarized=True)
fx=f.exc_vxc(rho,sigma,lapl,tau)
fz=np.asarray(fx["zk"]).reshape(-1); fv=np.asarray(fx["vrho"])
print("pt lib_zk fx_zk relerr_zk relerr_vrhoA relerr_vrhoB")
for i in range(len(rho)):
rz=(fz[i]-lib_zk[i])/lib_zk[i]
ra=(fv[i,0]-lib_vrho[i,0])/lib_vrho[i,0]
rb=(fv[i,1]-lib_vrho[i,1])/lib_vrho[i,1]
print(f"{i} {lib_zk[i]: .6e} {fz[i]: .6e} {rz: .2e} {ra: .2e} {rb: .2e}")