Releases: deepmodeling/abacus-develop
Releases · deepmodeling/abacus-develop
v3.8.3
What's Changed
Feature
- Feature: Add
CG
algorithm topyabacus.hsolver
by @a1henu in #5398 - Feature: apply CG eigensolver to LR-TDDFT by @maki49 in #5399
- Feature: Optimized memory management on DSP by @Critsium-xy in #5361
- Feature: build-in DFTD3 parameters by @kirk0830 in #5378
- Feature: enable ABACUS can finish SCF if charge density oscillation is found by @WHUweiqingzhou in #5421
- Feature: add interface
Gint::psir_func
by @PeizeLin in #5380 - Feature:Now sDFT support GPU by @Qianruipku in #5423
- Feature: change the default value of
printe
from100
toscf_nmax
by @WHUweiqingzhou in #5462 - Feature: (minor) support various boolean expressions for outputting flags by @kirk0830 in #5489
- Feature: Ground state projection tool for RT-TDDFT by @ESROAMER in #5477
- Feature: GPU Memory Recorder by @Critsium-xy in #5471
- Feature: make force and stress of sDFT support GPU by @Qianruipku in #5487
- Feature: LR-TDDFT support reading fxc from file or calculating fxc by a specified charge file by @maki49 in #5393
Fix
- Fix cal_edm_tddft by @ESROAMER in #5396
- Fix: disable the XC in LibXC in which nonlocal dispersion correction is required by @kirk0830 in #5391
- Fix: not build useless library without ENABLE_LCAO by @dyzheng in #5412
- Fix: update the example of vdwd3 acoording to the latest impl. by @kirk0830 in #5418
- Fix R-index mismatch in lr_util_hcontainer by @maki49 in #5456
- fixing the sigma value in example input files and adding comments to the ecutwfc keyword (Useful Information: lower the barrier for users who is not familiar with 'ecut' in the INPUT file)) by @qq270814845 in #5451
- Fix: Compiling error for ROCM by @dyzheng in #5464
- Fix the repeated initial guess and use diagonal precondition in LR::HSolver; Fix a segfault and non-hermitian in multi-k op_lr_exx by @maki49 in #5468
- Fix: let the coverage test pass without checking for its correctness by @WHUweiqingzhou in #5469
- Fix: compile cuda without openmp by @Qianruipku in #5488
- Fix GPU memory recorder's memory leak by @Critsium-xy in #5491
- Fix: nscf for hse by @YuLiu98 in #5499
- Fix: provide more information on 2d process grid error message by @jinzx10 in #5509
- Fix: support lmax of orbital 5, 6, 7 by @kirk0830 in #5519
- Fix: fix the compilation failure with DFTD3 autoset implementation by @kirk0830 in #5517
- Fix: fix a bug of
relax_nmax
default by @WHUweiqingzhou in #5506 - Fix: init nonlocal beta orbitals only when necessary by @maki49 in #5511
- Fix: fix the stoi failure for output flag
out_chg
by @kirk0830 in #5526 - Fix: set zero for unused psi data for nspin4 by @dyzheng in #5524
- Fix: support lmax of orbital 8,9 by @QuantumMisaka in #5528
- Fix: recover the use of -1 value of out_chg by @kirk0830 in #5540
- Fix: swap the sizeof() be the first multiplier to avoid overflow of int by @kirk0830 in #5561
- fix bug: change Mixing_Data::length from int to size_t by @linpeize in #5545
Doc
- Docs: Add Chinese wiki page link to README by @Cstandardlib in #5382
Refactor
- Refactor: wrap exx-routine in
iter_finish
intoExx_LRI_Interface
by @maki49 in #5413 - Refactor: remove useless functions in esolver by @YuLiu98 in #5416
- Refactor: modify EXX realx/md calculation framework by @1041176461 in #5403
- Refactor: refactor iter_finish and iter_init by @YuLiu98 in #5426
- Fix&Refactor: soc force/stress error for LCAO code, refactor the force/stress code into operator by @dyzheng in #5381
- Remove git submodule LibRI and LibComm by @PeizeLin in #5428
- Refactor: runner() of esolver_ks by @YuLiu98 in #5445
- update toolchain LibComm sha256 by @PeizeLin in #5454
- Add function to support reading cereal binary format HexxR files. by @ErjieWu in #5453
- Code: divide charge_mixing.cpp into some files by @WHUweiqingzhou in #5427
- Refactor:Replace the current fft with templates and polymorphism by @A-006 in #5410
- update code format of Exx_LIP by @PeizeLin in #5473
- Refactor: move io_npz to ModuleIO by @YuLiu98 in #5475
- Refactor: remove lcao_fun.cpp by @YuLiu98 in #5481
- Update esolver_ks.h by @mohanchen in #5495
- Update esolver_ks_lcao.cpp by @mohanchen in #5494
- Update esolver_ks_lcao_tddft.h by @mohanchen in #5496
- Refactor: replace pvpr with hcontainer by @dzzz2001 in #5490
- Update esolver_ks_pw.cpp by @mohanchen in #5498
- Refactor: move cal_edm_tddft to module_dm by @YuLiu98 in #5485
- Refactor: remove nscf() by @YuLiu98 in #5455
- Refactor:Add cuda support for fft_bundle by @A-006 in #5508
- Refactor: move dftu_cal_occup_m to dftu by @YuLiu98 in #5512
- Refactor: remove the redundant macro in source file of VDW module by @kirk0830 in #5562
- Update init_orb.cpp by @mohanchen in #5551
- Update gint_gamma.h by @mohanchen in #5550
- Update mult_psi_dmr.cpp by @mohanchen in #5552
- Refactor: remove
init_wfc
&mem_saver
&out_wfc_pw
&out_wfc_r
of wavefunc in abacus by @haozhihan in #5557 - Refactor: make get_S a new esolver by @YuLiu98 in #5515
- Refactor: refactor the relevant code for psi initializer by @haozhihan in #5474
- Refactor: remove init_after_vc by @YuLiu98 in #5547
- Refactor: remove set_matrix_grid by @YuLiu98 in #5558
- Refactor: remove pw_init_globalc.cpp by @YuLiu98 in #5559
- Refactor: remove dpks_cal_e_delta_band.cpp by @YuLiu98 in #5560
- Refactor: merge before_all_runners of tddft and lcao by @YuLiu98 in #5531
- Refactor: refactor psi init & wfinit class by @haozhihan in #5533
- Update gint.h by @mohanchen in #5525
- Refactor: replace raw pointers to vector in atom_spec.h by @dyzheng in #5521
- Refactor atom_input and unify the fake atom data structure of grid and atom_input by @goodchong in #5546
Test
- Integration test: Rename folders for consistency with
get_pchg
andget_wf
by @AsTonyshment in #5431 - Additional explanations to the example files and fixing result.ref file in examples/bsse/water by @qq270814845 in #5484
- Tests: supplementing some tests with OPENMP...
v3.8.2
Feature
- Feature: LR-TDDFT for open-shell systems by @maki49 in #5312
- Feature: Porting abacus to DSP hardware (mtblas part) by @Critsium-xy in #5301
- Feature: MPI available on ABACUS DSP version by @Critsium-xy in #5351
- Feature: make SCF converges only if drho and dene is smaller than threshold by @WHUweiqingzhou in #5357
- Feature: make init stochastic WF support GPU by @Qianruipku in #5365
- Feature: move scf_ene_thr before mix_rho by @WHUweiqingzhou in #5375
- Feature: change the default value of ecutwfc based on basis_type by @WHUweiqingzhou in #5390
- Feature: Add Cell for pyabacus by @jieli-matrix in #5247
- Unify the output of BFGS, CG, and FIRE relaxation method by @sunliang98 in #5374
Refactor
- Refactor: replace sto_hchi by HamiltSdftPW::hPsi by @Qianruipku in #5298
- Refactor: remove read_rho and make read_cube independent of esolver_type by @maki49 in #5323
- Refactor: Organize code structure to improve maintainability in pyabacus by @a1henu in #5346
- Refactor: move print_rhofft and print_wfcfft to ModuleIO by @YuLiu98 in #5358
- Refactor IO cube (Useful Information: excellent example for discussions and actions among ABACUS developers) by @maki49 in #5362
- Remove DiagH class in hsolver by @Cstandardlib in #5307
- Remove diagh.h in module_hsolver by @Cstandardlib in #5332
- Remove install_dsp.sh by @Critsium-xy in #5337
Fix
- Fix: cannot compile without OPENMP by @Qianruipku in #5316
- Fix: fix nspin=4 error when device=gpu by @dzzz2001 in #5319
- Fix: PR conflicts of #5298 and #5312 by @Qianruipku in #5329
- Fix::Change the gamma_only_lcao when nspin=4 by @A-006 in #5322
- Fix: boost Davidson by removal of useless scc by @Cstandardlib in #4874
- Fix: do not bcast my_rank by @YuLiu98 in #5339
- Fix: Fix Consts memory leak by directly removing custome consts by @Critsium-xy in #5344
- Fix: make EXX symmetry consistent with the fixed irreducible k-points by @maki49 in #5348
- Change the default setting for symmetry when berry_phase=1 by @ErjieWu in #5349
- Add number of threads output in stdout by @QuantumMisaka in #5281
- Fix: make the symmetry condition in RPA consistent with EXX by @maki49 in #5355
- Fix: force and stress calculation with noncollinear-spin or SOC for PW code by @dyzheng in #5377
- Fix: widen the range of support on STRU file of Molden interface by @kirk0830 in #5388
- Fix: disable four rarely used functionals which involves the laplacian of rho by @kirk0830 in #5392
Doc
- doc: fix typo in kpt.md by @pxlxingliang in #5320
- docs: replace sphinx-rtd-theme with sphinx-book-theme by @njzjz-bot in #5360
- Docs: update the docs about DeePKS by @WHUweiqingzhou in #5385
- Docs: add the docs about DeePTB by @WHUweiqingzhou in #5386
Perf
- Performance: change the position of open mp by @Qianruipku in #5327
Build
- Toolchain: fix build scripts by @QuantumMisaka in #5350
Test
New Contributors
Full Changelog: v3.8.1...v3.8.2
v3.8.1
What's Changed
Build(deps)
- Bump pre-commit-ci/lite-action from 1.0.3 to 1.1.0 by @dependabot in #5227
CI
- Align test commands for coverage tests by @caic99 in #5219
- add back missing command for codecov by @caic99 in #5222
Docs
- Modify the berry phase document. by @jingan-181 in #5293
- update default behaviors on building built-in libm by @caic99 in #5218
- update the documentation about pseudopotential and orbitals by @kirk0830 in #5294
Feature
- Becke's partition for multi-center grid integration by @jinzx10 in #5292
- Enable PyTorch backend for DeePMD-kit v3 by @YuLiu98 in #5253
- Support outputting real space wave functions in Gaussian CUBE format by @AsTonyshment in #5140
- update new version of dav_subspace with higher performance by @dyzheng in #5199
- TDDFT now can use
ks_solver=cusolver
, and velocity gauge is able to use Heaviside external field by @AsTonyshment in #5238
Fix
- Fix a segfault in rhog_symmetry by @maki49 in #5303
- Fix memory bug in XC_Functional_Libxc::cal_gdr() by @PeizeLin in #5208
- Fix minor bug of EXX operator and default value by @maki49 in #5252
- Fix the memory leak in integrated test case 919_OF_out_elf by @sunliang98 in #5211
- fix a deadlock bug in CUDA version of gint by @dzzz2001 in #5210
- fix undefined behavior in cusolver by @dzzz2001 in #5251
- md restart can not read STRU by @YuLiu98 in #5215
- nupdown = 0 for spin-unpolarized calculation by @jinzx10 in #5305
- performance and memory for NSPIN=4 in LCAO base by @dyzheng in #5249
- remove unnecessary gpu memory allocation under LCAO basis by @dzzz2001 in #5258
- revert pre-commit update by @caic99 in #5244
Refactor
- Change the variable type. by @A-006 in #5201
- Change wrapper
spsi_func
in hsolver-dav by @Cstandardlib in #5205 - Refactor XC_Functional_Libxc::convert_vtxc_v() by @PeizeLin in #5212
- Refactor class
DensityMatrix
: remove the dependence onK_Vectors
and the ambiguity of_nks
by @maki49 in #5224 - Refactor hpsi_func in hsolver by @Cstandardlib in #5202
- Remove Base class DiagH in LCAO code by @Cstandardlib in #5239
- Remove DiagH Base class in pw by @Cstandardlib in #5225
- Remove DiagH of lcao PEXSI by @Cstandardlib in #5259
- Seperate BLAS functions' declaration and implementation, and add a device_type flag for blas kernels by @Critsium-xy in #5242
- Sorting out the calculation logic of pexsi in hsolver-lcao by @haozhihan in #5299
- Unify the interfaces of Pulay terms of force and stress by @maki49 in #5130
- Use memory_op to set diag_const_nums by @Critsium-xy in #5246
- refactor
solve
func inhsolver-lcao
class by @haozhihan in #5257 - remove nspin dependence form Gint by @maki49 in #5304
- Use PARAM instead of GlobalV::NBAND,NLocal by @A-006 in #5193
Test
- add cases for wfcinit by @Qianruipku in #5197
- fix some incorrect INPUT files by @dzzz2001 in #5284
Tools
- Toolchain fix stage4 by @QuantumMisaka in #5233
- toolchain bug fix by @QuantumMisaka in #5223
Full Changelog: v3.8.0...v3.8.1
v3.8.0
What's Changed
Feature
- Add
davidson
function topyabacus
by @a1henu in #5112 - Calculate and output electron localization function (ELF) with KSDFT and OFDFT by @sunliang98 in #5139
- Delley's grid for quadrature on the unit sphere by @jinzx10 in #5131
- RI-Hartree for LR-TDDFT benchmark with FHI-aims by @maki49 in #5084
- Radial quadrature grid by @jinzx10 in #5173
- Space group symmetry for EXX based on LibRI v0.2.1.0 by @maki49 in #5063
- add new init_chg method with wavefunctions by @Qianruipku in #5082
Fix
- Fix docs according to #5133 by @Cstandardlib in #5169
- Fix parallel LR-EXX and add a test case by @maki49 in #5188
- Fix read/write HexxR at nspin=4 by @maki49 in #5142
- Fix serial version compiling bug by @Critsium-xy in #5079
- Fix the undefined behavior in sph_bessel_recursive by @maki49 in #5158
- If the number of NAOs for an angular momentum is 0, filter the NAOs in exx by @PeizeLin in #5152
- Update function calls in
pyabacus
to align with new function signature inhpsi_func
by @a1henu in #5176 timer
not closed in TDDFT code by @AsTonyshment in #5172- add MPI_Barrier in unittest of CifParser when necessary to avoid unexpected behavoir by @kirk0830 in #5167
- add threshold file and enlarge ecut in exx test cases to prevent CI test failure by randomness by @maki49 in #5096
- bug of cal_ux by @Qianruipku in #5165
- discourage
out_mul
for PW to prohibit segfault error by @kirk0830 in #5102 - enlarge the threshold of case 281 by @maki49 in #5117
- fix a bug in diago_elpa_native.cpp by @dzzz2001 in #5155
- fix a cuda runtime error introduced by PR #5061 by @dzzz2001 in #5071
- init_chg wfc support npsin = 4 by @Qianruipku in #5166
- let only one rank do file I/O in unittest of orb_io by @kirk0830 in #5185
- minor fixes in LR by @maki49 in #5187
- move back Kpoint when basis_type="pw" by @A-006 in #5129
- optimize the memory usage by psi_initializer by @kirk0830 in #5120
- recover the wannier90 interface for lcao_in_pw case by @kirk0830 in #5177
- segmentation fault when deepks_scf=0 but deepks_out_labels=1 by @xuan112358 in #5090
- support kpar > 1 case to write rhog by @kirk0830 in #5145
- wrong STRU read in md restart case by @YuLiu98 in #5157
- fix cusolvermp compiling error with icpc and update ks_solver doc by @dzzz2001 in #5196
Perf
- change default pw_seed=0 by @WHUweiqingzhou in #5179
- optimize td_current by @dzzz2001 in #5181
Refactor
- Refactor
ModuleIO::read/write_cube()
by @PeizeLin in #5150 - USE PARAM instead of GlobalV by @A-006 in #5053
- Use PARAM instead of GlobalV::dir* by @A-006 in #5097
- Use PARAM instead of GlobalV::domag* by @A-006 in #5115
- Use PARAM instead of GlobalV::test* by @A-006 in #5065
- Use PARAM instead of deepks* by @A-006 in #5104
- Use PARAM instead of ks_solver,nb2d,search_radius by @A-006 in #5138
- Use Param.inp insetead of GlobalV::MIXING* by @A-006 in #5070
- add CalAtomsInfo to modify parameter by @Qianruipku in #5132
- add
namespace XC_Functional_Libxc
by @PeizeLin in #5151 - consistent order of hpsi by @Cstandardlib in #5134
- optimize the performanace of psi_initializer with omp by @kirk0830 in #5146
- refactor HsolverPW & HsolverPW_SDFT func by @haozhihan in #5094
- refactor hsolver-lcao func by @haozhihan in #5148
- refactor paw code in HSolverLIP by @haozhihan in #5126
- remove GlobalC::ORB by @jinzx10 in #5085
- remove GlobalC::ORB in module_hamilt_lcao by @jinzx10 in #5068
- remove
hsolver
base class frommodule_hsolver
by @haozhihan in #5093 - remove my_conj func from hsolver_lcao by @haozhihan in #5128
- remove useless warning for dp by @YuLiu98 in #5153
- use ELPA_WITH_NVIDIA_GPU_VERSION to judge elpa setup gpu by @goodchong in #5163
- Use PARAM instead of nspin,cal_stress by @A-006 in #5136
Tools
- Toochain update: new download url and MPICH/OpenMPI version by @QuantumMisaka in #5088
- Toolchain 202403 by @QuantumMisaka in #5144
Build
- Bump pre-commit-ci/lite-action from 1.0.2 to 1.0.3 by @dependabot in #5110
Docs
- update hpsi_func requirements by @Cstandardlib in #5190
Full Changelog: v3.7.5...v3.8.0
v3.7.5
What's Changed
Feature
- Feature: support automatic binary output of charge density by @kirk0830 in #4991
- add elpa native to solver generate eigen by @goodchong in #4969
- Feature: add fparam and aparam for dp esolver by @YuLiu98 in #5047
- Feature: add rescaling parameter into dp by @Qianruipku in #5050
Performance
- Perf: optimize the openmp strategy in calculate_HR by @dzzz2001 in #5037
- Perf: optimize function snap_psibeta_half_tddft by @dzzz2001 in #5041
Fix
- Build: Fix ENABLE_CNPY Link Errors by @jieli-matrix in #5003
- Fix: bug in charge extrapolation by @YuLiu98 in #5007
- Fix toolchain scalapack problem by @QuantumMisaka in #5014
- Fix HexxR readin directory by @maki49 in #5025
- Fix bug in reallocating HContainter when not all the processors have elements of (0,0) atom pair by @maki49 in #5028
- Fix: close mixing_gg0 after PBE-loop in no-separate-loop EXX process by @maki49 in #5034
- Fix: fix the issue that
out_chg -1
not really work by @kirk0830 in #5046 - Fix: Assert the mesh of <PP_BETA> not exceeding pp.mesh. by @sunliang98 in #5049
- fix wrong dp_potential after rescaling by @Qianruipku in #5055
Refactor
- Refactor: refactor set_diagethr func and remove phsol from esolver [version 2] by @haozhihan in #5017
- Refactor:Replace GlobalV::KSPACING with PARAM.inp.kspacing. by @A-006 in #5040
- Fix&Refactor: support naive and complete CIF file I/O interface by @kirk0830 in #5023
- Refactor: remove GlobalC::ORB from module_io by @jinzx10 in #5056
- Refactor: remove useless code about phsol by @haozhihan in #5054
Full Changelog: v3.7.4...v3.7.5
v3.7.4
What's Changed
Feature
- Feature: update LibRI v0.2.0 by @PeizeLin in #4830
- Feature: support control on precison of charge cube output by @kirk0830 in #4958
- Feature: Add diago_dav_subspace module to pyabacus by @a1henu in #4883
- Feature: output T(k) by @jinzx10 in #4982
Fix
- Fix an EXX bug with out_mat_hs2 by @maki49 in #4956
- fix bug in catching properties for out_eband_terms by @maki49 in #4962
- Fix: Fix the I/O problem of Rappe pseudopotential caused by the change of mesh. by @sunliang98 in #4973
- Fix: do not always output HexxR but only for NSCF by @maki49 in #4994
- Fix: enable scf_ene_thr for EXX outer loop by @maki49 in #4993
- Fix compile warnings about after_scf by @maki49 in #4996
Refactor
- Refactor: rescale vel to temperature when read in vel by @YuLiu98 in #4953
- Refactor: reset_diag_ethr && cal_hsolve_error func in hsolver by @haozhihan in #4940
- Refactor: Remove Dependency on Custom Class const_nums in david by @Cstandardlib in #4950
- Refactor: update charge extra to accelerate md by @YuLiu98 in #4954
- Refactor: Remove the inheritance relationship between hsolverLCAO/hsolverLIP and hsolver by @haozhihan in #4960
- Refactor: remove template in Chebyshev by @Qianruipku in #4972
- Performance: heterogeneous operator of npw loop in force_cc. by @grysgreat in #4978
Tools
- Toolchain : libcomm version update by @QuantumMisaka in #4966
- add elpa gpu in docker cuda image by @goodchong in #4980
- update version by @pxlxingliang in #5001
New Contributors
Full Changelog: v3.7.3...v3.7.4
v3.7.3
What's Changed
Feature
- (for development) support general realspace projection onto PW basis: SphericalBesselTransformer-based-FourierTransformation by @kirk0830 in #4864
- Support outputting partial charge densities for different k-points and spins separately when using PW basis set by @AsTonyshment in #4829
- automatically use gpu if possible by @caic99 in #4826
- enable SCF can converge if SCF reach a chosen energy threshold by @WHUweiqingzhou in #4898
- enable multi-k calculation for CUDA version of module_gint by @dzzz2001 in #4839
- stop abacus manually according to the keyword in EXIT by @YuLiu98 in #4822
Doc
- real spherical harmonics and basis ordering clarified by @jinzx10 in #4922
- SchmidtOrth in david by @Cstandardlib in #4855
Fix
- Fix a bug in stress op that could cause errors in OpenMP multithreading calculations. by @grysgreat in #4932
- Fix bug due to the forgotten
fix_gamma
in writing eband terms by @maki49 in #4934 - Fix bug in
add_HexxR
at nspin=4 by @maki49 in #4893 - Fix the issue of mete-vlocal not being initialized. by @A-006 in #4933
- Fix the issue of some
timer
instances not being closed, resulting in incorrect time statistics by @AsTonyshment in #4939 - Incorrect negative signs in length gague RT-TDDFT by @AsTonyshment in #4871
- Revert "Move the cal_nnrg file and modify the variable length. (#4886)" by @A-006 in #4921
- a possible bug when dir is auto by @Qianruipku in #4948
- avoid nan in the output of time percentage by @pxlxingliang in #4857
- avoid the redundant file-reading and remove the useless output in write_Vxc by @maki49 in #4902
- correct the behavior of profile1d function in cube_manipulator.py by @kirk0830 in #4892
- dcu error in pw_force calculation by @grysgreat in #4786
- delete the unexpected debug info during scf by @kirk0830 in #4936
- error with DFTU force&stress with NSPIN=4 by @dyzheng in #4825
- fix the bug induced by pseudo_dir and orbital_dir default value by @Qianruipku in #4881
- improve the experience of using
molden.py
postprocessing tool by both developer and user by @kirk0830 in #4942 - reference to parameter instead of global variable in tool functions in DiagoDavid by @Cstandardlib in #4873
Perf
- optimize the construction of HexxR in NSCF by @maki49 in #4952
- use openmp to accelerate fvnl_dbeta_gamma.cpp by @dzzz2001 in #4814
Refactor
- Add heterogeneous parallel code for the stress loc module. by @grysgreat in #4854
- Continue to move the deepks output files into the OUT folder by @xuan112358 in #4924
- Heterogeneous parallel acceleration hsolver-pw force_scc. by @grysgreat in #4759
- Make Hsolver_sdft a local variable in hamilt_to_density function by @Qianruipku in #4941
- Move
pseudo::set_pseudo
toPseudopot::complete_default
. by @sunliang98 in #4811 - Move the cal_nnrg file and modify the variable length. by @A-006 in #4886
- Relate to PEXSI-related changes caused by refactor #4767 by @Flying-dragon-boxing in #4858
- Remove INPUT class by @Qianruipku in #4815
- Replace
Esolver_OF::mu_
withefermi
. by @sunliang98 in #4849 - Replace the pointers in
pseudo
andPseudopot_upf
with std::vector. by @sunliang98 in #4862 - Use lambda expressions to reduce if conditions. by @grysgreat in #4828
- Use pointers instead of function calls in OpenMP by @A-006 in #4827
- add
cal_becp
-like example for radial projector-involving PW operators development by @kirk0830 in #4887 - change
HsolverPW
call manner by @haozhihan in #4795 - change hsolver-lcao call manner in SpinConstrain by @haozhihan in #4946
- change hsolver-lip call manner by @haozhihan in #4931
- change hsolver_lcao call manner by @haozhihan in #4929
- change the order of initializing member variables by @kirk0830 in #4865
- discourage part of the use of c-style array in psi initializer by @kirk0830 in #4866
- merge after_scf by @YuLiu98 in #4889
- move
set_is_occupied
func from hsolver to elecstate by @haozhihan in #4847 - remove
pelec
frome hsolverpwsolve
func by @haozhihan in #4846 - remove do_after_converge by @YuLiu98 in #4910
- remove function mult_psi_DM and mult_psi_DM_new by @dzzz2001 in #4926
- remove pes from hsolver by @haozhihan in #4861
- remove the inheritance of HSolverLR by @maki49 in #4917
- remove uncessary interfaces in module_io by @YuLiu98 in #4835
- remove useless values in Hsolverpw by @haozhihan in #4875
- replace dsytrf & dsytri & gemv by dsysv in
Broyden_mixing
by @WHUweiqingzhou in #4842
Tools
- Toolchain 202402 by @QuantumMisaka in #4945
- support molden file generation from ABACUS LCAO calculation via NAO2GTO by @kirk0830 in #4937
Full Changelog: v3.7.2...v3.7.3
v3.7.2
Feature
- Feature: LR-TDDFT by @maki49 in #4472
- Feature: enable multiple species in LJ by @YuLiu98 in #4659
- Feature : Add deepks_v_delta, which can help to train DeepKS model with loss term about Hamiltonian, psi and band by @xuan112358 in #4594
- Feature: nspin=2 LR-TDDFT solving singlet/triplet by @maki49 in #4710
- Feature: read a slice of bands from WFC_NAO files & enable custom close-to-HOMO nocc for LR by @maki49 in #4691
- Feature: Support calculation of multi-k point band-decomposed charge density under LCAO basis by @AsTonyshment in #4698
- Feature: output vacuum level when output electrostatic potential by @YuLiu98 in #4799
- Feature: write band energy of T, VL, VNL, Hartree and XC terms separately by @maki49 in #4805
- Feature: Partial function heterogeneous parallel acceleration of force/stress_cc. by @grysgreat in #4555
- Add normalization procedure for partial charge in multi-k calculations when if_separate_k=1 by @AsTonyshment in #4724
- Feature: support k-parallelism diagonalization in lcao basis by @hongriTianqi in #4650
- update out_dos_lcao of '2' for output PDOS by @Chentao168 in #4782
CI
- test: add an option to set thread number in Autotest.sh by @pxlxingliang in #4668
- Test: Unit test for diago_lapack, add a build test and update the document by @Critsium-xy in #4610
- Test: add ccache installation step to cuda.yml by @dzzz2001 in #4688
- test: to make test fail when execute catch_properties.sh failed by @pxlxingliang in #4700
- test: correct the inputs in /examples by @pxlxingliang in #4717
- Test: add return value for mock in tests to suppress compile warning by @Cstandardlib in #4775
Perf
- Perf: optimize function grad_rl_sph_harm by @dzzz2001 in #4671
- Perf: optimize function pow in module_gint by @dzzz2001 in #4680
- Perf: optimize force calculation in module_gint (Useful information about how to take advantages of data locality to improve the code efficiency) by @dzzz2001 in #4727
Fix
- Fix MKL problem in pyabacus example ex_s_rotate.py by @maki49 in #4669
- Fix a possible compile error in module_lr/lr_spectrum.cpp by @maki49 in #4672
- Fix the problematic logic in catch_properties.sh induced by #4472 by @maki49 in #4678
- Fix the exx-md/relax bug induced by LM refactor by @maki49 in #4686
- Fix: change C++14 codes to C++11 by @Qianruipku in #4682
- Fix the missing EXX operator and minor refactor in LR-HSE by @maki49 in #4696
- Fix: fix a typo related to pexsi in fedm_gamma.cpp by @Flying-dragon-boxing in #4702
- Fix the bug causing incorrect Berry phase calculations under the pw basis. by @jingan-181 in #4704
- Fix: error of non-diagonal nonlocal pseudopotential with LCAO by @dyzheng in #4705
- Fix: replace part of GlobalV::var by parameter by @Qianruipku in #4706
- Fix: memory leak of basis set in david by @Cstandardlib in #4731
- Fix: replace most of bare pointers with weak/unique_ptr in module_lr to prevent memory leak (Useful information about how to use smart pointers in C++11)) by @maki49 in #4720
- Fix: DeePKS MD calculation restart by DMK and fixed the lack of DeePKS tests by @dyzheng in #4605
- Fix: eliminate compilaton error due to the #define private public macro in all unittests by @kirk0830 in #4733
- Fix: no Fail of read_input_serial_test.cpp by @Qianruipku in #4749
- Fix: Fix the memory leak cause by kbeta in read_pp.cpp by @sunliang98 in #4758
- Fix: fix a memory leak in module_gint by @dzzz2001 in #4721
- Fix: consider fractional electron number by @Qianruipku in #4770
- Fix: eliminate the implicit type conversion when calculating number of electrons of system and repair bessel_nao_rcut behavior by @kirk0830 in #4788
- Fix a memory leak in LR constructor by @maki49 in #4793
- Fix bugs in deepks_v_delta by @xuan112358 in #4780
- fix: wrong use of bessel_nao_rcut by @Qianruipku in #4792
- Fix the incorrect calculation of partial charge for multi-k-points under both PW and LCAO when symmetry is turned on by @AsTonyshment in #4803
Refactor
- Refactor: adjust cif file output by @hongriTianqi in #4584
- Refactor: remove EXX in LM and finally remove LM by @maki49 in #4679
- Refactor: remove comm_2D from Parallel_2D (Useful Information: BLACS encapsulates MPI and maintains its own internal data structure for MPI communicators) by @jinzx10 in #4658
- delete redundant setting in STRU by @Satinelamp in #4689
- Refactor: replace most of input varibles by parameter by @Qianruipku in #4693
- Refactor david: transitionally replace the Psi-type variables basis and psi by @Cstandardlib in #4701
- Refactor david: remove HamiltPW::sPsi inside DiagoDavid by @Cstandardlib in #4708
- Refactor: reorganized HSolverPW<T, Device>::solve function in HSolverPW by @haozhihan in #4675
- Refactor: Remove useless variables from read_pp.h. by @sunliang98 in #4711
- Remove redundant code about david in hsolver by @Cstandardlib in #4713
- Refactor: separate parallel_comm from parallel_global by @haozhihan in #4715
- Refactor ESolver, separate out some functions that will be moved to other places later. by @mohanchen in #4812
- Refactor: enable const md_para as md_line passing parameter by @YuLiu98 in #4808
- Refactor david: complete removal of Psi and Hamilt datatypes by @Cstandardlib in #4722
- Refactor hsolver: redesign david interface to be consistent with dav_subspace by @Cstandardlib in #4726
- Refactor: Remove most usage of pdiagh in hsolver_lcao.cpp by @Critsium-xy in #4742
- Refactor: remove the explicit use of std::make_unique use in unittest by @kirk0830 in #4745
- Remove init_basis_lcao from ESolver_LCAO to LCAO_domain (Useful information about how to clean up ESolver) by @mohanchen in #4746
- Refactor for the DeePKS module by @mohanchen in #4762
- Refactor david: add docs and standardize the code by @Cstandardlib in #4734
- Refactor: Remove usage of pdiag_parak in hsolver_lcao by @Critsium-xy in #4767
- Reduce the size of LCAO_deepks_torch.cpp by @mohanchen in #4773
- Style: add braces to avoid dangling else in module_io/restart.cpp by @Cstandardlib in #4774
- Refactor: refactor set_diagethr, cal_hsolerror, cal_hsolerror func in hsolver class by @haozhihan in #4769
- Refactor: move GPU deallocation code in david by @Cstandardlib in #4794
- Refactor DeepKS (the fourth one) by @mohanchen in #4784
- Refactor: reorder INPUT parameters by @Qianruipku in https://github.com/deepmodeling/a...
v3.7.1
CI
Fix
- Move Vxc output from after_scf to after_all_runners by @maki49 #4497
- Remove the dependency of write_dmr on globalV::NLOCAL by @pxlxingliang #4500
- Fix no STRU_ION_1 file output by @hongriTianqi #4506
- Fix init_Table_Spherical_Bessel with correct k & r mesh multiple by @jinzx10 #4516
- Fix the bug which SCF restart for unconverged cases by @WHUweiqingzhou #4538
- Fix compile failure of main.cpp by @Qianruipku #4638
- Fix MKL scalapack linking by @caic99 #4644
- Fix DeePKS MD/Relax/Cell-relax calculation convergence by @dyzheng #4575
- Fix oneAPI runtime error when build with libtorch by @caic99 #4613
- Fix esolver.cpp by @pxlxingliang #4612
- Fix misunderstanding absolute path as annotation by @Qianruipku #4629
- Fix missing head of running.log by @Qianruipku #4630
- Fix the memory problem in berryphase by @pxlxingliang #4631
- Fix wrong running_*.log by @Qianruipku #4648
- Fix MKL finding problem in pyabacus by @maki49 #4656
- Fix some minor security risks with ModuleESolver::init_esolver() by @PeizeLin #4590
- Fix some minor security risks with ModuleIO::read_wfc_nao by @PeizeLin #4558
- Address the atomicAdd error by @denghuilu #4234
- Fix cusolver error under multi-k situation by @dzzz2001 #4278
- Fix makefile cannot compile tests in module_pw by @Qianruipku #4270
- Fix orb_matrix file is not safely written/renamed by @kirk0830 #4299
- Fix the bug in dav gpu code and add more integrate test for GPU by @haozhihan #4265
Refactor
- Remove pdiagh pointer and redundant code by @Cstandardlib #4520
- Change nkstot_ibz and kvec_d_ibz from members into local variables by @maki49 #4515
- Remove some variables from LCAO_Matrix class by @WHUweiqingzhou #4519
- Remove BasedOnStyle: Microsoft from clang-format by @haozhihan #4522
- Remove the useless loc in veff by @pxlxingliang #4532
- Removal of ORB_table_phi by @jinzx10 #4503
- Remove check_structure() from UnitCell by @sunliang98 #4499
- Remove some members from LCAO_Matrix class by @WHUweiqingzhou #4546
- Replace the interface of out_dm by using DensityMatrix.DMK instead of loc.DM by @pxlxingliang #4509
- Remove initDiagh function in hsolver by @Cstandardlib #4527
- Fully refactored original obsolete lapack hsolver by @Critsium-xy #4581
- Separate Class diag_comm_info and Class const_nums by @haozhihan #4582
- Remove additional dependencies of parallel_reduce.h by @haozhihan #4585
- Remove Hloc, Hloc2, Sloc, Sloc2 in LCAO_Matrix by @dyzheng #4574
- Remove some variables from LCAO_Matrix class by @WHUweiqingzhou #4568
- Remove the useless variables and functions in unkOverlap_lcao by @pxlxingliang #4569
- Remove redundant Local_Orbital_Charge in class Veff and DeepKS by @PeizeLin #4572
- Use alicloud image sync by @caic99 #4567
- Fix the wrong type of ibz2bz by @maki49 #4577
- Login to use alicloud image sync by @caic99 #4573
- Fix get_S failed when smearing_method is gauss by @hongriTianqi #4571
- Correct the warning message about ntype by @pxlxingliang #4562
- Split the function into different functionalities by @A-006 #4566
- Remove module_device additional dependencies by @haozhihan #4579
Full Changelog: v3.7.0...v3.7.1
v3.7.0
What's Changed
Feature
- Feature: add the output of energy for all esolver types in abacus.json by @pxlxingliang in #4413
- Feature: add command line option --check-input to check input only by @hongriTianqi in #4424
- Feature: support nupdown = 0.0 calculation by @hongriTianqi in #4425
- Feature: add function get_nbasis in class HContainer by @pxlxingliang in #4447
- Add INPUT parameter
bands_to_print
forget_wf
calculation by @AsTonyshment in #4466
Fix
- Fix: BLACS lib in unit test by @jinzx10 in #4338
- Fix: report error when fr-uspp used in linear calculations by @YuLiu98 in #4348
- Fix: address memory leak with single precision by @denghuilu in #4492
- Fix: correct the dimension of wfc_k_grid for allocating memory in istate_envelope function by @kirk0830 in #4494
- fix the output format in aveElecStatPot.py by @xdzhu in #4367
- Fix: support cross-boundary structures in orbital generation by @jinzx10 in #4376
- Fix: matrix bug in uspp by @YuLiu98 in #4397
- Fix: no inversion symmetry, reset symmetry of SOC calculation to -1 by @dyzheng in #4375
- Fix: improve the precision according to issue#4183 by @kirk0830 in #4460
- Fix: remove the warning_quit when there are more than 50 basis of one atom by @kirk0830 in #4461
- Fix: correct function read_abacus_lowf by @kirk0830 in #4433
- fix: fix the incorrect usage of macro #elif by @pxlxingliang in #4478
- Fix: bug in mulliken output by @hongriTianqi in #4463
Test
- Test: fix clang-format settings by @haozhihan in #4382
- Test: compare the relative difference for Onsager.txt by @Qianruipku in #4378
- test: update the path of SR.csr in examples/matrix_hs/out_s_multik/run.sh by @pxlxingliang in #4352
- Test: use origin python in test.yml to support numpy by @dyzheng in #4383
- Test: accelerate integrate tests by @YuLiu98 in #4358
- Test: fix precommit failure by @caic99 in #4426
- test: support reading threshold from file 'threshold' in integrate test by @pxlxingliang in #4450
- CI: modify clang-tidy setting by @haozhihan in #4488
- CI: enable clang-tidy in CI by pre-commit-config by @haozhihan in #4384
- CI: add clang-tidy
readability-braces-around-statements
setting by @haozhihan in #4390
Perf
- Perf: Optimize
hsolver
GPU code (useful information of GPU optimization: __syncwarp() should be used instead of __syncthreads()) by @OldDriver233 in #4295 - Perf: remove unnecessary sync for cuda ops by @caic99 in #4361
- Perf: reduce data transmission in the GPU code of module_gint by @dzzz2001 in #4356
- Perf: use less memory and optimize performance to calculate force and stress in pw base by @dyzheng in #4047
Docs
- doc: correct the typo in input-main.md by @pxlxingliang in #4423
- Docs: add docs for --version and --check-input by @hongriTianqi in #4428
Refactor
- Refactor: redesign the constructor and member variables of davsubspace class by @haozhihan in #4330
- Update before_all_runners in ESolver by @mohanchen in #4334
- Add and Remove some functions in klist.h etc by @Haerxile in #4257
- Update write_potential and "others" function in ESolver by @mohanchen in #4336
- Update the 'calculation' description in the documents and fix a small bug in elecstate_energy.cpp, update set_force and set_stress in LCAO_matrix by @mohanchen in #4340
- refactor: separate the print_psi from wfc_2d_to_grid and remove the invalid call by @pxlxingliang in #4268
- refactor: remove the usused LOC in getForceStress by @pxlxingliang in #4343
- Modify the average electrostatic potential script (Useful Information:How to plot electrostatic potential) by @xdzhu in #4350
- Refactor: replace cudamalloc and cudafree with cuda_mem_wrapper by @dzzz2001 in #4347
- Refactor: Remove DiagoIterAssist dependencies in DiagoDavid by @Cstandardlib in #4346
- CI: add pre-commit.ci to apply clang-format and clang-tidy fixes by @caic99 in #4225
- Using the standard CUDA <<<...>>> syntax to avoid compilation errors. by @LiuXiaohui123321 in #4362
- Refactor: add alternatives to functions
LOWF::gamma_file
andLOWF::allocate_k
by @kirk0830 in #4331 - Refactor: change
R_index
in classAtomPair
to typeModuleBase::vector3<int>
by @DylanWRh in #4243 - Refactor: remove Kubo-Greenwood and DOS functions from esolver by @Qianruipku in #4355
- Add header file when using memset() function to avoid compi… by @LiuXiaohui123321 in #4380
- Refactor: replace pointer to Diago_DavSubspace with object by @Cstandardlib in #4386
- Refactor: delete some useless files in
module_psi/kernel/
folder by @haozhihan in #4391 - bug: warning_quit when reading WFC file failed. by @pxlxingliang in #4388
- Refactor
istate_charge.cpp
using new DensityMatrix class by @AsTonyshment in #4392 - Refactor: remove unused class Output_Interface by @hongriTianqi in #4394
- Update LCAO_matrix and related functions and delete LCAO_gen_fixedH by @mohanchen in #4400
- Add several warning quits in
DensityMatrix
andGint
when parameters are not initialized by @AsTonyshment in #4389 - delete 31 double arrays in LCAO_matrix, add a new class named force_stress_arrays.h used in force and stress calcualtions by @mohanchen in #4407
- Refactor: Initial removal of Hamilt from diag_once func in Davsubspace by @haozhihan in #4398
- Refactor: Mulliken output codes with more flexible io interfaces by @hongriTianqi in #4359
- Refactor: extracted transpose parameter checking routine of gemm/v by @OldDriver233 in #4279
- Adding comments and modifying properties in the PW module by @DoctorDra in #4405
- Refactor: remove useless function from wavefunc by @Qianruipku in #4408
- Refactor: move snap_psibeta_half_tddft to module_tddft by @jinzx10 in #4414
- Refactor: Initial removal of psi::Psi<T, Device> from Diago_DavSubspace by @haozhihan in #4416
- Use Vector to replace new and delete in gint,spilt gint_tools and change Makefile,remove ORB in gint by @A-006 in #4353
- Refactor: 1. change "enum calculation_type" to "enum class calculation_type" for safety by @PeizeLin in #4319
- Refactor: delete some variables of LCAO_Matrix by @WHUweiqingzhou in #4415
- refactor: output sparse DMR by Output_HContainer instead of output_dm1.h/cpp by @pxlxingliang in #4374
- Refactor: replace pointer to Diago classes with object by @Cstandardlib in #4409
- Build: disable build libm by default by @caic99 in https://github.com/deepmodeling/a...