DeePMD-kit’s documentation#
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.
Important
The project DeePMD-kit is licensed under GNU LGPLv3.0. If you use this code in any future publications, please cite the following publications for general purpose:
Han Wang, Linfeng Zhang, Jiequn Han, and Weinan E. “DeePMD-kit: A deep learning package for many-body potential energy representation and molecular dynamics.” Computer Physics Communications 228 (2018): 178-184.
Jinzhe Zeng, Duo Zhang, Denghui Lu, Pinghui Mo, Zeyu Li, Yixiao Chen, Marián Rynik, Li’ang Huang, Ziyao Li, Shaochen Shi, Yingze Wang, Haotian Ye, Ping Tuo, Jiabin Yang, Ye Ding, Yifan Li, Davide Tisi, Qiyu Zeng, Han Bao, Yu Xia, Jiameng Huang, Koki Muraoka, Yibo Wang, Junhan Chang, Fengbo Yuan, Sigbjørn Løland Bore, Chun Cai, Yinnian Lin, Bo Wang, Jiayan Xu, Jia-Xin Zhu, Chenxing Luo, Yuzhi Zhang, Rhys E. A. Goodall, Wenshuo Liang, Anurag Kumar Singh, Sikai Yao, Jingchao Zhang, Renata Wentzcovitch, Jiequn Han, Jie Liu, Weile Jia, Darrin M. York, Weinan E, Roberto Car, Linfeng Zhang, Han Wang. “DeePMD-kit v2: A software package for Deep Potential models.” J. Chem. Phys., 159, 054801 (2023).
In addition, please follow this page to cite the methods you used.
- 1. Backend
- 2. Installation
- 3. Data
- 4. Model
- 4.1. Overall
- 4.2. Descriptor
"se_e2_a"
- 4.3. Descriptor
"se_e2_r"
- 4.4. Descriptor
"se_e3"
- 4.5. Descriptor
"se_atten"
- 4.6. Descriptor DPA-2
- 4.7. Descriptor
"hybrid"
- 4.8. Determine
sel
- 4.9. Fit energy
- 4.10. Fit spin energy
- 4.11. Fit
tensor
likeDipole
andPolarizability
- 4.12. Fit electronic density of states (DOS)
- 4.13. Type embedding approach
- 4.14. Descriptor
"se_a_mask"
- 4.15. Descriptor
"se_e3_tebd"
- 4.16. Deep potential long-range (DPLR)
- 4.17. Deep Potential - Range Correction (DPRc)
- 4.18. Linear model
- 4.19. Interpolation or combination with a pairwise potential
- 4.20. Change the model output bias for trained model
- 4.21. Floating-point precision of the model
- 5. Training
- 6. Freeze and Compress
- 7. Test
- 8. Inference
- 9. Command line interface
- 10. Integrate with third-party packages
- 11. Use NVNMD
- 12. Runtime environment variables
- 13. FAQs
- 13.1. How to tune Fitting/embedding-net size ?
- 13.2. How to control the parallelism of a job?
- 13.3. Do we need to set rcut < half boxsize?
- 13.4. How to set sel?
- 13.5. Installation
- 13.6. The temperature undulates violently during the early stages of MD
- 13.7. MD: cannot run LAMMPS after installing a new version of DeePMD-kit
- 13.8. Model compatibility
- 13.9. Why does a model have low precision?
- Find DeePMD-kit C/C++ library from CMake
- Create a model in TensorFlow
- Create a model in other backends
- Atom Type Embedding
- Coding Conventions
- CI/CD
- Python API
- OP API
- op_module
AddFltNvnmd()
Annotated
Any
ConvertForwardMap()
CopyFltNvnmd()
Descrpt()
DescrptNorot()
DescrptSeA()
DescrptSeAEf()
DescrptSeAEfPara()
DescrptSeAEfVert()
DescrptSeAMask()
DescrptSeR()
DotmulFltNvnmd()
DprcPairwiseIdx()
EwaldRecp()
FltNvnmd()
Gelu()
GeluCustom()
GeluGrad()
GeluGradCustom()
GeluGradGrad()
GeluGradGradCustom()
MapAparam()
MapFltNvnmd()
MatmulFitnetNvnmd()
MatmulFlt2fixNvnmd()
MatmulFltNvnmd()
MulFltNvnmd()
NeighborStat()
PairTab()
ParallelProdForceSeA()
ProdEnvMatA()
ProdEnvMatAMix()
ProdEnvMatAMixNvnmdQuantize()
ProdEnvMatANvnmdQuantize()
ProdEnvMatR()
ProdForce()
ProdForceNorot()
ProdForceSeA()
ProdForceSeAMask()
ProdForceSeR()
ProdVirial()
ProdVirialNorot()
ProdVirialSeA()
ProdVirialSeR()
QuantizeNvnmd()
SoftMinForce()
SoftMinSwitch()
SoftMinVirial()
TabulateFusion()
TabulateFusionGrad()
TabulateFusionGradGrad()
TabulateFusionSeA()
TabulateFusionSeAGrad()
TabulateFusionSeAGradGrad()
TabulateFusionSeAtten()
TabulateFusionSeAttenGrad()
TabulateFusionSeAttenGradGrad()
TabulateFusionSeR()
TabulateFusionSeRGrad()
TabulateFusionSeRGradGrad()
TabulateFusionSeT()
TabulateFusionSeTGrad()
TabulateFusionSeTGradGrad()
Tanh4FltNvnmd()
UnaggregatedDy2Dx()
UnaggregatedDy2DxS()
UnaggregatedDyDx()
UnaggregatedDyDxS()
add_flt_nvnmd()
convert_forward_map()
copy_flt_nvnmd()
descrpt()
descrpt_norot()
descrpt_se_a()
descrpt_se_a_ef()
descrpt_se_a_ef_para()
descrpt_se_a_ef_vert()
descrpt_se_a_mask()
descrpt_se_r()
dotmul_flt_nvnmd()
dprc_pairwise_idx()
ewald_recp()
flt_nvnmd()
gelu()
gelu_custom()
gelu_grad()
gelu_grad_custom()
gelu_grad_grad()
gelu_grad_grad_custom()
map_aparam()
map_flt_nvnmd()
matmul_fitnet_nvnmd()
matmul_flt2fix_nvnmd()
matmul_flt_nvnmd()
mul_flt_nvnmd()
neighbor_stat()
pair_tab()
parallel_prod_force_se_a()
prod_env_mat_a()
prod_env_mat_a_mix()
prod_env_mat_a_mix_nvnmd_quantize()
prod_env_mat_a_nvnmd_quantize()
prod_env_mat_r()
prod_force()
prod_force_norot()
prod_force_se_a()
prod_force_se_a_mask()
prod_force_se_r()
prod_virial()
prod_virial_norot()
prod_virial_se_a()
prod_virial_se_r()
quantize_nvnmd()
soft_min_force()
soft_min_switch()
soft_min_virial()
tabulate_fusion()
tabulate_fusion_grad()
tabulate_fusion_grad_grad()
tabulate_fusion_se_a()
tabulate_fusion_se_a_grad()
tabulate_fusion_se_a_grad_grad()
tabulate_fusion_se_atten()
tabulate_fusion_se_atten_grad()
tabulate_fusion_se_atten_grad_grad()
tabulate_fusion_se_r()
tabulate_fusion_se_r_grad()
tabulate_fusion_se_r_grad_grad()
tabulate_fusion_se_t()
tabulate_fusion_se_t_grad()
tabulate_fusion_se_t_grad_grad()
tanh4_flt_nvnmd()
unaggregated_dy2_dx()
unaggregated_dy2_dx_s()
unaggregated_dy_dx()
unaggregated_dy_dx_s()
- op_grads_module
Annotated
Any
ProdForceGrad()
ProdForceSeAGrad()
ProdForceSeAMaskGrad()
ProdForceSeRGrad()
ProdVirialGrad()
ProdVirialSeAGrad()
ProdVirialSeRGrad()
SoftMinForceGrad()
SoftMinVirialGrad()
prod_force_grad()
prod_force_se_a_grad()
prod_force_se_a_mask_grad()
prod_force_se_r_grad()
prod_virial_grad()
prod_virial_se_a_grad()
prod_virial_se_r_grad()
soft_min_force_grad()
soft_min_virial_grad()
- op_module
- C++ API
- Class Hierarchy
- File Hierarchy
- Full API
- Namespaces
- Classes and Structs
- Enums
- Functions
- Function deepmd::convert_pbtxt_to_pb
- Function deepmd::get_env_nthreads
- Function deepmd::model_compatable
- Function deepmd::print_summary
- Template Function deepmd::select_by_type
- Template Function deepmd::select_map(typename std::vector<VT>::iterator, const typename std::vector<VT>::const_iterator, const std::vector<int>&, const int&, const int&, const int&, const int&)
- Template Function deepmd::select_map_inv(typename std::vector<VT>::iterator, const typename std::vector<VT>::const_iterator, const std::vector<int>&, const int&)
- Template Function deepmd::select_real_atoms_coord
- Template Function deepmd::session_get_scalar
- Template Function deepmd::session_input_tensors(std::vector<std::pair<std::string, tensorflow::Tensor>>&, const std::vector<VALUETYPE>&, const int&, const std::vector<int>&, const std::vector<VALUETYPE>&, const double&, const std::vector<VALUETYPE>&, const std::vector<VALUETYPE>&, const deepmd::AtomMap&, const std::string, const bool)
- Template Function deepmd::session_input_tensors_mixed_type
- Typedefs
- C API
- Class Hierarchy
- File Hierarchy
- Full API
- Namespaces
- Classes and Structs
- Functions
- Specialized Template Function _DP_DeepPotCompute< double >
- Template Function _DP_DeepPotComputeMixedType
- Specialized Template Function _DP_DeepPotComputeMixedType< float >
- Specialized Template Function _DP_DeepPotComputeNList< double >
- Template Function _DP_DeepPotModelDeviCompute
- Specialized Template Function _DP_DeepPotModelDeviCompute< float >
- Specialized Template Function _DP_DeepPotModelDeviComputeNList< double >
- Template Function _DP_DeepSpinCompute
- Specialized Template Function _DP_DeepSpinCompute< float >
- Specialized Template Function _DP_DeepSpinComputeNList< double >
- Template Function _DP_DeepSpinModelDeviCompute
- Specialized Template Function _DP_DeepSpinModelDeviCompute< float >
- Specialized Template Function _DP_DeepSpinModelDeviComputeNList< double >
- Template Function _DP_DeepTensorCompute
- Specialized Template Function _DP_DeepTensorCompute< float >
- Specialized Template Function _DP_DeepTensorComputeNList< double >
- Template Function _DP_DeepTensorComputeTensor
- Specialized Template Function _DP_DeepTensorComputeTensor< float >
- Specialized Template Function _DP_DeepTensorComputeTensorNList< double >
- Template Function _DP_DipoleChargeModifierComputeNList
- Specialized Template Function _DP_DipoleChargeModifierComputeNList< float >
- Function _DP_Get_Energy_Pointer(double&, const int)
- Function deepmd::hpp::convert_pbtxt_to_pb
- Template Function deepmd::hpp::select_by_type
- Function DP_ConvertPbtxtToPb
- Function DP_DeepBaseModelDeviCheckOK
- Function DP_DeepBaseModelDeviGetDimAParam
- Function DP_DeepBaseModelDeviGetNumbTypes
- Function DP_DeepBaseModelDeviIsAParamNAll
- Function DP_DeepBaseModelGetDimAParam
- Function DP_DeepBaseModelGetNumbTypes
- Function DP_DeepBaseModelGetTypeMap
- Function DP_DeepPotCheckOK
- Function DP_DeepPotCompute2
- Function DP_DeepPotComputef2
- Function DP_DeepPotComputeMixedTypef
- Function DP_DeepPotComputeNList2
- Function DP_DeepPotComputeNListf2
- Function DP_DeepPotGetDimAParam
- Function DP_DeepPotGetNumbTypes
- Function DP_DeepPotGetTypeMap
- Function DP_DeepPotModelDeviCheckOK
- Function DP_DeepPotModelDeviCompute2
- Function DP_DeepPotModelDeviComputef2
- Function DP_DeepPotModelDeviComputeNList2
- Function DP_DeepPotModelDeviComputeNListf2
- Function DP_DeepPotModelDeviGetDimAParam
- Function DP_DeepPotModelDeviGetNumbTypes
- Function DP_DeepPotModelDeviIsAParamNAll
- Function DP_DeepSpinCompute2
- Function DP_DeepSpinComputeNList2
- Function DP_DeepSpinGetCutoff
- Function DP_DeepSpinGetDimFParam
- Function DP_DeepSpinGetNumbTypesSpin
- Function DP_DeepSpinIsAParamNAll
- Function DP_DeepSpinModelDeviCompute2
- Function DP_DeepSpinModelDeviComputeNList2
- Function DP_DeepSpinModelDeviGetCutoff
- Function DP_DeepSpinModelDeviGetDimFParam
- Function DP_DeepSpinModelDeviGetNumbTypesSpin
- Function DP_DeepTensorCheckOK
- Function DP_DeepTensorComputef
- Function DP_DeepTensorComputeNListf
- Function DP_DeepTensorComputeTensorf
- Function DP_DeepTensorComputeTensorNListf
- Function DP_DeepTensorGetNumbSelTypes
- Function DP_DeepTensorGetOutputDim
- Function DP_DeepTensorGetTypeMap
- Function DP_DeleteDeepBaseModel
- Function DP_DeleteDeepPot
- Function DP_DeleteDeepSpin
- Function DP_DeleteDeepTensor
- Function DP_DeleteNlist
- Function DP_DipoleChargeModifierComputeNList
- Function DP_DipoleChargeModifierGetCutoff
- Function DP_DipoleChargeModifierGetNumbTypes
- Function DP_NewDeepPot
- Function DP_NewDeepPotModelDeviWithParam
- Function DP_NewDeepPotWithParam2
- Function DP_NewDeepSpinModelDevi
- Function DP_NewDeepSpinWithParam2
- Function DP_NewDeepTensorWithParam
- Function DP_NewDipoleChargeModifierWithParam
- Function DP_NewNlist_comm
- Function DP_NlistSetMapping
- Function DP_PrintSummary
- Function DP_ReadFileToChar2
- Function DP_SelectMapInt
- Defines
- Typedefs
- Core API
- Class Hierarchy
- File Hierarchy
- Full API
- Namespaces
- Classes and Structs
- Struct deepmd_exception_oom
- Struct InputNlist
- Template Struct DescrptSeRGPUExecuteFunctor
- Template Struct GeluGradGPUExecuteFunctor
- Template Struct ProdForceSeAGPUExecuteFunctor
- Template Struct ProdVirialSeAGPUExecuteFunctor
- Template Struct TabulateCheckerGPUExecuteFunctor
- Template Struct TabulateFusionGradGPUExecuteFunctor
- Unions
- Functions
- Function build_nlist(std::vector<std::vector<int>>&, std::vector<std::vector<int>>&, const std::vector<double>&, const int&, const double&, const double&, const std::vector<int>&, const std::vector<int>&, const std::vector<int>&, const std::vector<int>&, const SimulationRegion<double>&, const std::vector<int>&)
- Function build_nlist(std::vector<std::vector<int>>&, std::vector<std::vector<int>>&, const std::vector<double>&, const std::vector<int>&, const std::vector<int>&, const double&, const double&, const std::vector<int>&, const SimulationRegion<double>&)
- Function compute_descriptor(std::vector<double>&, std::vector<double>&, std::vector<double>&, const std::vector<double>&, const int&, const std::vector<int>&, const SimulationRegion<double>&, const bool&, const int&, const std::vector<int>&, const std::vector<int>&, const std::vector<int>&, const std::vector<int>&, const int, const int, const int, const int)
- Function compute_descriptor_se_a_ef_para
- Function compute_descriptor_se_a_extf
- Function compute_dRdT_1
- Function copy_coord
- Template Function deepmd::build_nlist_gpu
- Function deepmd::convert_nlist
- Template Function deepmd::convert_to_inter_cpu
- Template Function deepmd::convert_to_phys_cpu
- Template Function deepmd::copy_coord_cpu
- Function deepmd::cos_switch(const double&, const double&, const double&)
- Template Function deepmd::cprod
- Template Function deepmd::delete_device_memory
- Template Function deepmd::dot2
- Template Function deepmd::dot4
- Function deepmd::DPGetDeviceCount
- Function deepmd::DPSetDevice
- Template Function deepmd::env_mat_a_nvnmd_quantize_cpu
- Template Function deepmd::env_mat_r_cpu
- Function deepmd::filter_ftype_gpu
- Template Function deepmd::format_nlist_cpu
- Template Function deepmd::gelu_cpu
- Template Function deepmd::gelu_grad_cpu
- Template Function deepmd::gelu_grad_grad_cpu
- Function deepmd::group_atoms_cpu
- Template Function deepmd::invsqrt
- Specialized Template Function deepmd::invsqrt< float >
- Template Function deepmd::malloc_device_memory(FPTYPE *&, const int)
- Template Function deepmd::malloc_device_memory_sync(FPTYPE *&, const std::vector<FPTYPE>&)
- Template Function deepmd::malloc_device_memory_sync(FPTYPE *&, std::vector<FPTYPE>&)
- Function deepmd::max_numneigh
- Template Function deepmd::memcpy_device_to_host(const FPTYPE *, FPTYPE *, const int)
- Template Function deepmd::memcpy_host_to_device(FPTYPE *, const FPTYPE *, const int)
- Template Function deepmd::memset_device_memory
- Template Function deepmd::normalize_coord_cpu
- Template Function deepmd::pair_tab_cpu
- Template Function deepmd::prod_env_mat_a_gpu
- Template Function deepmd::prod_env_mat_r_cpu
- Template Function deepmd::prod_force_a_cpu(FPTYPE *, const FPTYPE *, const FPTYPE *, const int *, const int, const int, const int, const int)
- Template Function deepmd::prod_force_a_gpu
- Template Function deepmd::prod_force_grad_a_gpu
- Template Function deepmd::prod_force_grad_r_gpu
- Template Function deepmd::prod_force_r_gpu
- Template Function deepmd::prod_virial_a_gpu
- Template Function deepmd::prod_virial_grad_a_gpu
- Template Function deepmd::prod_virial_grad_r_gpu
- Template Function deepmd::prod_virial_r_gpu
- Template Function deepmd::soft_min_switch_force_cpu
- Template Function deepmd::soft_min_switch_virial_cpu
- Function deepmd::spline3_switch
- Template Function deepmd::tabulate_fusion_se_a_cpu
- Template Function deepmd::tabulate_fusion_se_a_grad_cpu
- Template Function deepmd::tabulate_fusion_se_a_grad_grad_cpu
- Template Function deepmd::tabulate_fusion_se_r_cpu
- Template Function deepmd::tabulate_fusion_se_r_grad_cpu
- Template Function deepmd::tabulate_fusion_se_r_grad_grad_cpu
- Template Function deepmd::tabulate_fusion_se_t_cpu
- Template Function deepmd::tabulate_fusion_se_t_grad_cpu
- Template Function deepmd::tabulate_fusion_se_t_grad_grad_cpu
- Template Function deepmd::test_encoding_decoding_nbor_info_gpu
- Function deepmd::use_nei_info_gpu
- Template Function deepmd::volume_cpu
- Template Function dotmul_flt_nvnmd
- Function DPAssert(hipError_t, const char *, int, bool)
- Function env_mat_r
- Template Function find_max_expo(int64_t&, T *, int64_t, int64_t)
- Function format_nlist_i_fill_a
- Function nborAssert(cudaError_t, const char *, int, bool)
- Function omp_get_num_threads
- Template Function split_flt
- Variables
- Defines
- Typedefs
- Namespaces