# DeePMD-kit

DeePMD-kit is a package written in Python/C++, designed to minimize the effort required to build deep learning-based models of interatomic potential energy and force field and to perform molecular dynamics (MD). This brings new hopes to addressing the accuracy-versus-efficiency dilemma in molecular simulations. Applications of DeePMD-kit span from finite molecules to extended systems and from metallic systems to chemically bonded systems.

## Input Section

Inference in CP2K is performed through the DEEPMD section. As an example, the relevant section for DeePMD-kit is:

    &DEEPMD
      ATOMS W
      ATOMS_DEEPMD_TYPE 0
      POT_FILE_NAME DeePMD/W.pb
    &END DEEPMD

where the `W.pb` refers to the DeePMD model that was deployed using DeePMD-kit. An example for the full input file can be found and on the regtests, see DeePMD_W.inp

### Input details

The tag ATOMS expects a list of elements/kinds and ATOMS_DEEPMD_TYPE expects a list of their index that is consistent with the `type_map` in DeePMD-kit parameters. If this is not done unphysical results will be obtained. Spotting such issues is quite straightforward as the energy is significantly wrong.

## Compiling CP2K with Libdeepmd_c

Running with DeePMD-kit requires compiling CP2K with the libdeepmd_c library. For the CP2K binaries, please install the toolchain using the flag `--with-deepmd`, which would download libdeepmd_c from DeePMD-kit Github release and compile. GPU support is enabled when CUDA envrionment exists.

## Further Resources

For additional references on Deep Potential and DeePMD-kit see:

- DeepMD paper Wang2018, Zeng2023 and code https://github.com/deepmodeling/deepmd-kit

- DeepModeling documentations