hsulab / GDPy

Generating Deep Potential with Python
https://gdpx.readthedocs.io
GNU General Public License v3.0
58 stars 9 forks source link

Request: Driver for ABACUS calculator #2

Closed QuantumMisaka closed 3 months ago

QuantumMisaka commented 11 months ago

ABACUS is an open-source DFT package using both PW and LCAO as basis, which is developing by research group of Lixin He from USTC, Xinguo Ren from IPCAS, Mohan Chen from PKU, and also AI for Science Institute. This electronic structure software support LDA, GGA(PBE), mGGA(SCAN) and Hybrid Functional (HSE, PBE0) calculation, and by using LCAO basis, the calculation efficiency have large improvement in large system which can be more than hundreds and thousands of atoms.

From my personal usage, ABACUS have much efficiency improvement by VASP. Additionally, the input files of ABACUS is much easier than CP2K, and in most of magnetic system, ABACUS showed better SCF performance than CP2K, which is good to use in heterogenous catalysis calculation. I'm also developing ASE workflow for using ABACUS.

English doc : https://abacus.deepmodeling.com/en/latest/ Chinese doc: https://mcresearch.gitee.io/abacus-user-guide/

Now, ABACUS have interface with ASE https://gitlab.com/1041176461/ase-abacus, and also dpdata. It is not hard for us to implement ABACUS as a driver in GDPy code.

hsulab commented 3 months ago

Hi @QuantumMisaka,

Sorry for the late reply.

I have just added a very simple driver for abacus (See [e68cf1be6b44535f222194eb45e0e1995a664569]), which depends on the ase-abacus.

An example input to define abacus is

potter: name: abacus params: backend: abacus command: mpirun -n 2 abacus template: ./INPUT pseudo_dir: ./SG15_ONCV_v1.0_upf basis_dir: ./SG15-Version1p0__StandardOrbitals-Version2p0 type_info: Mg: pseudo: Mg_ONCV_PBE-1.0.upf # element name, atomic mass, pseudopotential file basis: Mg_gga_8au_100Ry_4s2p1d.orb O: pseudo: O_ONCV_PBE-1.0.upf basis: O_gga_7au_100Ry_2s2p1d.orb

The ase-abacus is great for parsing abacus inputs and outputs. But I have no idea why they developed a stand-alone package instead of contributing to the official one, which makes it difficult to organise the conda environment. Also, the abacus calculator inherits from a new calculator type - GenericFileIO, which makes its behaviour a little different from normal FileIOCalculators. Besides, it seems that ase_sort.dat is not properly saved to the actual calculation directory, which will make the atomic order inconsistent between the input and output structures. This sort issue may be fixed in the future but one should be very careful to run a high-throughput calculation of mixed composition structures by the abacus driver, for example, gdp compute.

Currently, the driver only supports scf calculation. More tests are needed for min and md in the future. Even only with scf, one can already integrate abacus in a lot of active learning workflows.

All the best, Jiayan

QuantumMisaka commented 3 months ago

@hsulab Thanks a lot! I have the will to do this but you have done it first lol About why ase-abacus is stand alone, the reason is simple : developers of ASE have no mind for maintaining it ()

I'll have a look and try, also give commits if needed