-
Notifications
You must be signed in to change notification settings - Fork 75
Expand file tree
/
Copy pathCHANGELOG
More file actions
456 lines (409 loc) · 21 KB
/
Copy pathCHANGELOG
File metadata and controls
456 lines (409 loc) · 21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
v1.8.1 (2026-08-09)
-------------------
* Fixes
- Support ghost atom for PCM
- GPU OOM because of incorrect DF workspace size estimation
- Remove a redundant DF get_k for RSH functionals
- contract_2e bug for FCI solver
- np.log underflow in extract_pgto_params
- multigrid OOM due to the overhead in cp.einsum
v1.8.0 (2026-07-23)
-------------------
* New Features
- geometry optimization for PM6.
- spin_square methods for the RHF and GHF classes
- X2C1e support and density fitting for GHF/GKS
- Spin-free X2C1e for PBC calculations
- Second-order SCF for PBC DFT
- Time-reversal symmetry support for k-point sampling calculations
- Stress tensor using the multigrid integrator
* Improvements
- Refactor the VV10 Hessian implementation to improve performance.
- Eigenvalue decomposition is now used by default to handle the auxiliary basis linear dependency in PBC GDF.
- Refactor the molecular J/K matrix construction, improving K-matrix performance for range-separated hybrid functionals.
- Optimize int3c2e and auxvec contraction using the MD J-engine algorithm.
- Optimize multigrid density kernel (`evaluate_density_kernel`).
- Improve the stability of Hessian calculations for very large systems. (#783)
- Improve the stability of gradient calculations: changing DF gradient routine full-/short-range j2c inversion algorithm to CD. (#803)
- Refactor the density fitting generation code to reduce memory usage, improve density fitting initialization time.
- Optimize density fitting integral evaluation for generally contracted basis sets.
- Improve the memory efficiency of loading and decompressing the cderi tensor.
- Refactor the density fitting Hessian implementation to reduce memory usage, support larger systems, and enable multi-GPU execution.
- Optimize density-fitting Coulomb matrix computation (the get_j function)
- Optimize one-electron integral derivatives for Gradients and Hessians
- Enhance scf_summary to include the energy gap, Ecoul, and Exc.
- Reduce memory usage and Optimize memory allocation efficiency in numint.eval_xc_eff (#787)
- Reduce memory footprint and increase the speed for C-PCM on large molecule (#809)
* Fixes
- Host memory limit checks and early termination when allocating large mapped memory. (#781)
- OOM error in get_j computation for all-electron KHF (#782)
- Incorrect gout_pattern in molecular JK build kernel (#791)
- pseudopotential gradient when nexp parameter is zero (#795)
- Avoid int32 overflow in multigrid v2 kernel
- OOM issue caused by low ke_cutoff. (#804)
- Setting per-device shared memory attributes on each GPU, fixing shared memory configuration for kernels running on multiple GPUs.
- Fix a bug when ghost atom has no grid with significant density, vv10 grid response gradient/hessian fails
* API Updates
- Function numint.eval_xc_eff now returns exc as a vector with shape (N,) instead of an array with shape (N, 1).
v1.7.6 (2026-07-14)
-------------------
* Fixes
- Excessive memory usage in TDDFT caused by cupy.einsum
- Fix the bad atomic radii assigned to ghost atom, which causes a bad Becke partition and a negative BSSE (#814)
v1.7.5 (2026-07-10)
-------------------
* Improvements
- Update dispersion parser for wb97x-d4 backward compatibility (resolve to d4:wb97x-2008)
v1.7.4 (2026-06-23)
-------------------
* Improvements
- Check host memory limits before allocating large mapped memory
v1.7.3 (2026-06-17)
-------------------
* Fixes
- Restore the grids_response_cc and grids_noresponse_cc APIs that were removed in 1.7.1
v1.7.2 (2026-06-15)
-------------------
* Improvements
- A dedicated SCF class to handle one-electron systems
- Add spin_square methods for all SCF classes
- Add HF1e (#785)
* Fixes
- Attempt to improve the stability of Hessian calculation on a very big system (#783)
v1.7.1 (2026-05-28)
-------------------
* New Features
- SCF and analytical gradients for the PM6 semi-empirical method
- Density matrix purification methods for PM6
- Analytic gradient and NACV for spin-flip TDDFT/TDA
- qmmm.pbc for UKS
* Improvements
- Accelerated vv10 energy calculation (#751)
- Optimized vv10 grid response gradient performance (#749)
- Optimized XC gradient performance with grid response (#755)
- Applied sparsity to XC Hessian (#766)
- GPU-accelerated vppnl_nuc_grad for GTH pseudopotentials (#740)
- SCF initial guess to include MO coefficients to accelerate the first Fock build
* Fixes
- SG1 grid radius for ghost atoms
- Convergence threshold checks in the UCDFT second-order solver
v1.7.0 (2026-04-15)
-------------------
* New Features
- Enabling integration with Nvidia cuEST for more efficient evaluation of density fitting J and K matrices.
- Support Stratmann-impoved Becke grid partition scheme (#702)
* Improvements
- TDDFT Gradient and NACV batched calculations for FSSH MD
- Support 'default' key in Grids.atom_grid assignment
- Support explicit dispersion and nonlocal correlation specification in EDA interface (#719)
- In TDDFT-FSSH, use x/y and z-vector from the previous step as initial guess (#716)
- Print HOMO-LUMO gap in SCF iteration (#714)
* Fixes
- DF-UKS grid pruning
- Compatable with _smearing_optimize in newest pyscf version
- Fix insufficient memory issue for DF gradients when handling multiple density matrices (#709)
- Fix FFTDF divergence for f/g-orbital elements: cp.empty -> cp.zeros
- Fix int32 overflow in PBC CUDA kernel pointer arithmetic
- Fix a bug when computing vv10 gradient with grid response and natm == 1 (#734)
- TagArray bug and workaround in damping and level shift code(#732)
- fix multigrid vpplocG bug
* API updates
- Disable density-based grid pruning by default (#715)
- Disable the MAX_SPACE_INC parameter in TDDFT diagonalization routine (#704)
- Changed storage of TDDFT XY amplitudes from NumPy arrays to CuPy arrays
v1.6.1 (2026-03-20)
-------------------
* New Features
- Support PCM ISWIG surface discretization method
* Improvements
- Optimize memory usage for TDDFT gradients and NACV
- Change the default solvent to water for SMD model
* Fixes
- Bug in batch processing for density fitting deriviatives
- Wrong sign for external field
- NLC dimension error for TDUKS
- PCM finds wrong radius of ECP atoms
- Fix int3c2e J-engine due to an inplace overwritten bug
- Fix to_cpu interface for SMD solvent model
v1.6.0 (2026-03-10)
-------------------
* New Features (PBC systems)
- Analytical nuclear gradients for periodic density-fitting methods.
- Constrained DFT (CDFT) SCF and nuclear gradient support.
* New Features (molecular systems)
- C6 coefficient calculation via Casimir-Polder integration (#619)
- Unrestricted KS vv10 gradient and hessian (#640)
- Constrained DFT (CDFT) SCF and nuclear gradients
- Function to compute grid density with density gradient and tau (#659)
- Density-Fitting MP2 (#662)
- Fewest-switches surface hopping (FSSH) non-adiabatic dynamics with TDDFT.
* Improvements (PBC systems)
- Performance optimizations for 2c2e integrals and their derivatives.
- The default numerical precision for one-center overlap and kinetic integrals under PBC.
- Accelerated Becke weight evaluation.
- Added support for disabling radii adjustment in Becke derivative kernels.
- Support for Becke grid derivatives under PBC.
- PySCF `Mole` and `Cell` class counterparts, with a new `from_cpu` method for CPU to GPU conversion.
- `multigrid_v2` is now the default integrator (#656).
* Improvements (molecular systems)
- Refactored derivative integrals of the J and K terms in density-fitting methods, improving performance.
- Improved efficiency of derivative integral evaluation for TDDFT gradients and NACVs.
- Optimized CUDA kernels for derivative integrals (#627).
- Refactored the libxc interface and removed rarely used XC functionals (#635).
- Upgraded pyscf/dispersion and made gpu4pyscf self-contained with respect to dispersion implementations (#657).
- Canonical orthogonalization added to the SCF eigenvalue solver.
- Basis-set linear dependency detection and removal enabled by default.
* Fixes
- Fixed an issue where the `lebedev_order` attribute in the SMD module was not recognized.
- Handle zero strides for cutensor (fix #614)
- Fix grid dimension overflow bug in ft_ao in fftdf pseudopotential evaluation (#626)
- Fix a bug that `get_rho()` provides wrong result if dm has no attached mo_coeff fields (#654)
* API updates
- Removed the `get_veff` method from gradient classes.
v1.5.2 (2025-12-29)
-------------------
* Improvements
- Accelerate grid response computation efficiency in DFT gradients calculations
- PCM low memory mode that avoids storing ngrids^2 intermediates
- Introduced SortedMole and SortedCell classes to support general contracted basis
- Refactored SMD classes to improve compatibility with PySCF SMD implementation across multiple PySCF versions
* Fixes
- int32 overflow error for empty_mapped function
- Internal state gets overwritten during int3c2e batch evaluation
v1.5.1 (2025-12-17)
-------------------
* New Features
- RIS-approximated Z-vector solver for TD-RKS gradients and NACs
* Improvements
- Save cycle counts for SCF methods.
- Reduce memory usage when initializing JK builder
* Fixes
- The ECP bug on Blackwell cards is fixed in CUDA 13.1
- Illegal memory addresses in 3c2e generator caused by integer overflow
- PCM hessian bug caused by atoms without PCM grids
- Fix UHF.eigh bug caused by overwriting overlap matrix
v1.5.0 (2025-11-24)
-------------------
* New Features (PBC systems)
- PBC GDF extended to k-mesh computations; k-point GDF integrals stored in host memory with compression.
- Multigrid algorithm supports PBC k-point SCF and band structure calculations.
- Add the .analyze() method for PBC gamma-point and k-mesh DFT to summarize results and charge populations.
- Fermi and Gaussian smearing for PBC and molecular DFT.
- PBC RSJK algorithm for J/K matrix evaluation (J via MD J-engine; K via Rys quadrature).
- Analytical nuclear gradients using RSJK and AFTDF for PBC gamma-point HF, k-mesh HF, and hybrid DFT.
- Stress tensor evaluation using RSJK and AFTDF for PBC gamma-point HF, k-mesh HF, and hybrid DFT.
- Geometry optimizer for PBC DFT.
* New Features (molecular systems)
- Support for QMMM point charges and external electric fields.
- 3c2e integrals contracted with density matrices and auxiliary vectors for memory-efficient DF Coulomb matrix evaluation.
- DFT Hessian second-derivative grid response.
- Minimum energy crossing point (MECP) search functionality.
- PCM support for TDDFT derivative coupling calculations.
- Basic GKS and two-component numerical integration, including GPU-accelerated multi-collinear functionals.
- Multi-collinear spin-flip TDA/TDDFT excitation energies and analytical gradients.
* Improvements (PBC systems)
- Linear-dependency handling for basis functions in molecular and PBC DFT calculations.
- Refactored PBC nuclear gradients for more efficient GTH pseudopotential evaluation.
- Faster GTH pseudopotential evaluation using the multigrid algorithm on large systems.
* Improvements (molecular systems)
- Optimized DFT numerical integration memory usage, achieving ~20% performance gains.
- Refactored and optimized molecular four-center-integral J/K builder, achieving 50-100% speed-up.
- Improved phase determination method for NACV.
- More numerically stable Hessian integrals for large-exponent GTOs.
- MD J-engine optimized with reduced CUDA register pressure.
- Third-order XC derivatives can be evaluated on GPU (requires gpu4pyscf-libxc 0.7).
- Default auxbasis_response level increased to 2 for Hessian calculations with DF integrals.
- Dimension checks for eigh, enabling scipy fallback for large arrays (size > 21350).
* Fixes
- Handle eps=inf in solvent models.
- Fixed an edge case in EDA electrostatics when cross-fragment nocc is 1.
- Fixed EDA crash caused by fragments accessing JK matrices after DF 3-index tensors were freed.
- Workaround for CUDA 13 compiler bugs affecting ECP kernels (disabling compilier optimizations)
- Molecular and PBC 3c2e integral dimension issues for generally contracted basis sets.
- Removed pre-allocated streams that caused inconsistent synchronization.
- SMD Hessian.
- UHF crash when level_shift is enabled.
* API updates
- Fix to_gpu/to_cpu interface in SMD, TDDFT, and PCM-TDDFT
- Added from_cpu hook on the GPU side, allowing pyscf to invoke this hook in its to_gpu method.
v1.4.3 (2025-08-20)
-------------------
* New Features
- Geometry optimization for excited states using TDDFT-ris methods.
- Non-adiabatic coupling vectors for TDDFT-ris methods.
- Analytical gradients for DFT+U with k-point sampling.
- Stress tensor calculations for semi-local DFT with k-point sampling and at the gamma-point.
- ASE interface to support crystal lattice optimization.
- Multigrid v2 algorithm for meta-GGA functionals.
* Improvements
- GPU kernels for PBC overlap and kinetic integrals.
- Reduced GPU memory usage for TDDFT-ris by storing tensors in host memory.
- In PBC methods, scaled k-points (fractional coordinates) are stored to
simplify lattice optimization calculations.
- A preconditioned Krylov solver to accelerate convergence in TDDFT and
dynamic polarizability calculations.
* Fixes
- Basis decontraction issue for d and f orbitals.
- A bug in Multigrid v2 algorithm related to non-orthogonal lattices.
- Incorrect virtual orbital energies when level_shift was enabled.
v1.4.2 (2025-07-20)
-------------------
* New Features
- Raman spectrum calculations.
- Non-adiabatic coupling vector for time-dependent RKS, including the coupling.
between ground state and excited states as well as among excited states.
- DFT+U for molecule and PBC systems.
- ALMO EDA 2 method.
- Analytical gradients for TDDFT-ris method.
- Analytical gradients for PBC k-point DFT.
- Efficient analytical gradients for PBC Gamma-point DFT using the multigrid algorithm.
- A custom CuPy memory pool to reduce GPU memory usage.
* Improvements
- Improved PBC GDF integral computation at the Gamma point, including reduced.
GPU memory usage and enhanced computational efficiency.
- Set the J engine as the defult Coulomb matrix algorithm in the direct SCF driver.
- Efficient Multigrid integral algorithm for various functions in PBC DFT.
Gamma point computation such as get_nuc, get_pp, and GGA functionals.
- Supporting xc='HF' setting in DFT.
* Fixes
- Ensured compatibility with CUDA 12.3.
- Issues related to the combination of density fitting, PCM solvent, and TDDFT.
v1.4.1 (2025-05-20)
-------------------
* New Features
- Analytical hessian for VV10 functionals
- DFT polarizability with VV10 functionals
- TDDFT for VV10 functionals
- Non-adiabatic coupling constants for TDDFT states
- TDDFT gradients and geometry optimization solver for excited states
- LR-PCM for TDDFT and TDDFT gradients
- TDDFT-ris method
* Improvements
- Optimization CUDA kernel and integral screening for MD J-engine. The MD
J-engine is utilized by default for large system HF and DFT computation.
- Optimization for PBC gaussian density fitting at gamma point.
- ECP gradients CUDA kernel
- Reduced atomicAdd overhead in Rys JK kernel
* Fixes
- MINAO initial guess for ghost atoms
v1.4.0 (2025-03-27)
-------------------
* New Features
- RKS and UKS TDDFT Gradients for density fitting and direct-SCF methods.
- ECP integrals and its first and second derivatives accelerated on GPU.
- Multigrid algorithm for Coulomb matrix and LDA, GGA, MGGA functionals computation.
- PBC Gaussian density fitting integrals.
- ASE interface for molecular systems.
* Improvements
- Reduce memory footprint in SCF driver.
- Reduce memory requirements for PCM energy and gradients.
- Reduce memory requirements for DFT gradients.
- Utilize the sparsity in cart2sph coefficients in the cart2sph transformation in scf.jk kernel
- Molecular 3c2e integrals generated using the block-divergent alogrithm.
- Support I orbitals in DFT.
* Fixes
- LRU cached cart2sph under the multiple GPU environment.
- A maxDynamicSharedMemorySize setting bug in gradient and hessian calculation under the multiple GPU environment.
- Remove the limits of 6000 GTO shells in DFT numerical integration module.
v1.3.2 (2025-03-10)
-------------------
* Improvements
- Dump xc info and grids into to log file
- Optimize 4-center integral evaluation CUDA kernels using warp divergent algorithm
- Support up to I orbitals in DFT
- Fix out-of-bound issue in DFT hessian for heavy atoms (>=19)
* Deprecation
- SM60 is not supported in PyPi package
v1.3.1 (2025-02-04)
-------------------
* New Features
- Analytical Hessian for PCM solvent model
- Driver for 3c methods (wB97x-3c, R2Scan-3c, B97-3c, etc.)
* Improvements
- Preconditioner and computation efficiency of Davidson iterations for TDDFT
v1.3.0 (2025-01-07)
-------------------
* New Features
- PBC analytical Fourier transform on GPU
* Improvements
- Optimized computation efficiency and memory footprint for density fitting Hessian
- Support pickle serialization for most classes (SCF, DF, PCM, etc.)
- Efficiency of moving CuPy arrays between GPU cards
v1.2.1 (2024-12-20)
-------------------
* New Features
- Change the license from GPL v3.0 to Apache 2.0
- Multi-GPU support for SCF, Gradients, and Hessian computation using AO-direct algorithm
- Add PBC HF and DFT with k-points, UHF/UKS, and density fitting
* Improvements
- Change the default conv_tol_cpscf = 1e-3 / batch of atoms to conv_tol_cpscf = 1e-6 / atom
- Fix numerical instability in complex-valued TDHF diagonalization
- Improve PCM and QMMM with int1e_grids kernel
- Support non-symmetric int3c2e integral
- Optimize Hessian calculation with direct SCF
- Improve the numerical stability of int3c2e for point charge
- Add CI workflow for multi-GPU
* Fixes
- Fix non-contiguous array error in p2p transfer between GPUs.
- Fix bugs in NMR calculations
v1.2.0 (2024-12-09)
-------------------
* New Features
- Spin-conserved TDA and TDDFT methods
- Spin-flip TDA method.
- J-engine using McMuchie-Davidson integral algorithm
- Support multi-GPU density fitting energy, gradients and Hessian computation.
- Second order SCF solver
* Improvements
- Support non-hermitian density matrix in J/K builder
- Secondary grids for CPHF solver
- 3-center integral computation efficiency for gradients and hessian
- One-electron Coulomb integrals against point charges and Gaussian charge distributions on grids.
- Automatically apply SCF initial guess from existing wavefunction
v1.1.0 (2024-10-29)
-------------------
* New Features
- Add esp charge and resp charge by @wxj6000 in #208
- New Rys kernel by @sunqm in #221
- Optimize nuclear gradients using new Rys kernel by @sunqm in #224
- GPU kernel for analytical hessian by @sunqm in #227
- Add QM/MM by @MoleOrbitalHybridAnalyst in #218
* Improvements
- Improved compatiability with pyscf 2.7.0 by @wxj6000 in #216
- Add skipping SCF cycles by @kvkarandashev in #229
- Skip building gint, gvhf, ... when building libxc by @wxj6000 in #210
* Bugfix
- Typo in build_wheels.sh by @wxj6000 in #209
- Typo in dft_driver.py by @wxj6000 in #220
- Bugfix: cusolver error when specifying gpu by @wxj6000 in #213
- Bugfix: error in int2c2e by @wxj6000 in #212
- Bugfix: inconsistent gradient with CPU. Improved to_cpu, uks gradient, and grid_response by @wxj6000 in #230
- Bugfix: recompute int3c2e in DF UHF by @wxj6000 in #226
- New Contributors
- @MoleOrbitalHybridAnalyst made their first contribution in #218
- @kvkarandashev made their first contribution in #229
v1.0.2 (2024-09-03)
-------------------
* Bugfix: append data in h5 file by @wxj6000 in #200
* Support customized CHELPG radii by @wxj6000 in #202
* Add cupy installation guide for developer installation instructions by @henryw7 in #204
* Bugfix: save density when spin unrestricted by @wxj6000 in #205
* Add chkfile support for pysisyphus by @henryw7 in #203
v1.0.1 (2024-08-24)
-------------------
* Bugfix in rks.reset by @wxj6000 in #191. The bug leads to the failure of geometry optimization with direct SCF (#190)
* Bugfix when CUDA unified memory is disabled. Removed CUDA unified memory in libxc, and reduced the overhead in calling libxc @wxj6000 in #180, #189
* Bugfix and Improvement in opt_driver by @wxj6000 in #187 #197
* Support SMD in opt_driver and dft driver @liuyu-chem1996 in #196
* Support thermo calculation in dft_driver @liuyu-chem1996 in #192
v1.0.0 (2024-07-23)
-------------------
Released features:
* Density fitting scheme and direct SCF scheme
* SCF, analytical gradient, and analytical Hessian calculations for Hartree-Fock and DFT
* Spin-conserved and spin-flip TDA and TDDFT for excitated states
* Nonlocal functional correction (vv10) for SCF and gradient
* PCM models, SMD model, their analytical gradients, and semi-analytical Hessian matrix
* Unrestricted Hartree-Fock and unrestricted DFT, gradient, and Hessian
* MP2/DF-MP2 and CCSD (experimental)
* Polarizability, IR, and NMR shielding (experimental)