mlatom 3.5.0__tar.gz → 3.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mlatom-3.5.0/src/mlatom.egg-info → mlatom-3.6.0}/PKG-INFO +3 -3
- {mlatom-3.5.0 → mlatom-3.6.0}/README.md +2 -2
- {mlatom-3.5.0 → mlatom-3.6.0}/setup.py +1 -1
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatom.py +2 -2
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/args_class.py +3 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/data.py +1 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/doc.py +3 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/header.py +12 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/initial_conditions.py +1 -1
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/__init__.py +4 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/gaussian_interface.py +6 -6
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/pyscf_interface.py +48 -2
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/torchani_interface.py +132 -1
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/md.py +7 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/md_cmd.py +14 -3
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/models.py +3 -2
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/ref.json +5 -1
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/simulations.py +1 -1
- {mlatom-3.5.0 → mlatom-3.6.0/src/mlatom.egg-info}/PKG-INFO +3 -3
- {mlatom-3.5.0 → mlatom-3.6.0}/LICENSE.txt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/setup.cfg +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLTPA.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/ML_NEA.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/A_KRR.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/A_KRR_kernel.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/D_CoulombMatrix.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/D_ID.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/D_rel2eq.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/MLatomF.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/MLatomFInfo.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/MLmodel.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/Makefile +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/Makefile.intel +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/__init__.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/analyze.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/constants.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/cs.cpp +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/dataset.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/mathUtils.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/molDescr.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/optionsModule.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/precision.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/recover.sh +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/sampling.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/statistics.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/stopper.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/strings.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/timing.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLatomF_src/types.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/MLtasks.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/__init__.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/__init__.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv0.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv1.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv2.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv3.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv4.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv5.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv6.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_cc_cv7.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv0.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv1.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv2.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv3.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv4.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv5.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv6.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/aiqm1_model/aiqm1_dft_cv7.pt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/ccsdtstarcbs.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/composite_methods.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/constants.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/conversions.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/cs.so +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/decorators.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/fortran/KREG.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/fortran/__init__.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/fortran/compile.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/fortran/mathUtils.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/fortran/stopper.f90 +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interface_MLatomF.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/ase_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/columbus_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/dftd4_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/dpmd_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/gap_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/mace_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/mndo_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/orca_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/physnet_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/sgdml_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/sparrow_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/turbomole_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/interfaces/xtb_interface.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/kreg_api.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/log.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/md2vibr.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/md2vibr_cmd.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/mlatom_gui.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/mltpa/__init__.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/mltpa/mff.txt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/mltpa/mltpa2022_2.pkl +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/mltpa/mltpa2022_2_new_.pkl +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/namd.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/plot.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/shell_cmd.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/sliceData.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/stats.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/stopper.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/thermostat.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/utils.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom/xyz.py +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom.egg-info/SOURCES.txt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom.egg-info/dependency_links.txt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom.egg-info/entry_points.txt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom.egg-info/requires.txt +0 -0
- {mlatom-3.5.0 → mlatom-3.6.0}/src/mlatom.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mlatom
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.6.0
|
|
4
4
|
Summary: A Package for Atomistic Simulations with Machine Learning
|
|
5
5
|
Home-page: http://mlatom.com
|
|
6
6
|
Author: Pavlo O. Dral
|
|
@@ -27,7 +27,7 @@ Requires-Dist: tqdm
|
|
|
27
27
|
# About Program
|
|
28
28
|
MLatom: a Package for Atomistic Simulations with Machine Learning
|
|
29
29
|
|
|
30
|
-
Version 3.
|
|
30
|
+
Version 3.6.0
|
|
31
31
|
|
|
32
32
|
**Official website**: http://mlatom.com/
|
|
33
33
|
**Manual**: http://mlatom.com/manual/
|
|
@@ -60,7 +60,7 @@ When this Software or its derivatives are used in scientific publications, it sh
|
|
|
60
60
|
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Mario Barbatti, Olexandr Isayev, Cheng Wang, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Lina Zhang, Shuang Zhang, Arif Ullah, Quanhao Zhang, Yanchi Ou. [MLatom 3: A Platform for Machine Learning-enhanced Computational Chemistry Simulations and Workflows](https://doi.org/10.1021/acs.jctc.3c01203). *J. Chem. Theory Comput.* **2024**, *20*, 1193--1213.
|
|
61
61
|
* Pavlo O. Dral, Fuchun Ge, Bao-Xin Xue, Yi-Fan Hou, Max Pinheiro Jr, Jianxing Huang, Mario Barbatti. [MLatom 2: An Integrative Platform for Atomistic Machine Learning](http://doi.org/10.1007/s41061-021-00339-5). *Top. Curr. Chem.* **2021**, *379*, 27.
|
|
62
62
|
* Pavlo O. Dral. [MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning](http://dx.doi.org/10.1002/jcc.26004). *J. Comput. Chem.* **2019**, *40*, 2339--2347.
|
|
63
|
-
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.
|
|
63
|
+
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.6.0, Xiamen University, Xiamen, China, 2013-2024.
|
|
64
64
|
[MLatom.com](http://mlatom.com).
|
|
65
65
|
|
|
66
66
|
The citations for MLatom's interfaces and features shall be eventually
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# About Program
|
|
2
2
|
MLatom: a Package for Atomistic Simulations with Machine Learning
|
|
3
3
|
|
|
4
|
-
Version 3.
|
|
4
|
+
Version 3.6.0
|
|
5
5
|
|
|
6
6
|
**Official website**: http://mlatom.com/
|
|
7
7
|
**Manual**: http://mlatom.com/manual/
|
|
@@ -34,7 +34,7 @@ When this Software or its derivatives are used in scientific publications, it sh
|
|
|
34
34
|
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Mario Barbatti, Olexandr Isayev, Cheng Wang, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Lina Zhang, Shuang Zhang, Arif Ullah, Quanhao Zhang, Yanchi Ou. [MLatom 3: A Platform for Machine Learning-enhanced Computational Chemistry Simulations and Workflows](https://doi.org/10.1021/acs.jctc.3c01203). *J. Chem. Theory Comput.* **2024**, *20*, 1193--1213.
|
|
35
35
|
* Pavlo O. Dral, Fuchun Ge, Bao-Xin Xue, Yi-Fan Hou, Max Pinheiro Jr, Jianxing Huang, Mario Barbatti. [MLatom 2: An Integrative Platform for Atomistic Machine Learning](http://doi.org/10.1007/s41061-021-00339-5). *Top. Curr. Chem.* **2021**, *379*, 27.
|
|
36
36
|
* Pavlo O. Dral. [MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning](http://dx.doi.org/10.1002/jcc.26004). *J. Comput. Chem.* **2019**, *40*, 2339--2347.
|
|
37
|
-
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.
|
|
37
|
+
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.6.0, Xiamen University, Xiamen, China, 2013-2024.
|
|
38
38
|
[MLatom.com](http://mlatom.com).
|
|
39
39
|
|
|
40
40
|
The citations for MLatom's interfaces and features shall be eventually
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
!---------------------------------------------------------------------------!
|
|
5
5
|
! !
|
|
6
6
|
! MLatom: a Package for Atomistic Simulations with Machine Learning !
|
|
7
|
-
! MLatom 3.
|
|
7
|
+
! MLatom 3.6.0 !
|
|
8
8
|
! @ !
|
|
9
9
|
! Xiamen Atomistic Computing Suite (XACS) !
|
|
10
10
|
! !
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
! Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, !
|
|
37
37
|
! Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, !
|
|
38
38
|
! MLatom: A Package for Atomistic Simulations with Machine Learning, !
|
|
39
|
-
! version 3.
|
|
39
|
+
! version 3.6.0, Xiamen University, Xiamen, China, 2013-2024. !
|
|
40
40
|
! !
|
|
41
41
|
! The citations for MLatom's interfaces and features shall be eventually !
|
|
42
42
|
! included too. See header.py, ref.json and http://mlatom.com. !
|
|
@@ -462,6 +462,9 @@ class mlatom_args(ArgsBase):
|
|
|
462
462
|
self.set_keyword_alias('ANI-2x', ['ani2x'])
|
|
463
463
|
self.set_keyword_alias('ANI-1x-D4', ['ani1xd4'])
|
|
464
464
|
self.set_keyword_alias('ANI-2x-D4', ['ani2xd4'])
|
|
465
|
+
self.set_keyword_alias('ANI-1xnr', ['ani1xnr'])
|
|
466
|
+
self.set_keyword_alias('AIMNet2@B973c', ['aimnet2atb973c'])
|
|
467
|
+
self.set_keyword_alias('AIMNet2@wb97M-D3', ['aimnet2atwb97md3'])
|
|
465
468
|
self.set_keyword_alias('GFN2-xTB', ['gfn2xtb'])
|
|
466
469
|
self.set_keyword_alias('MNDO/dH', ['mndodh'])
|
|
467
470
|
self.set_keyword_alias('MNDO/H', ['mndoh'])
|
|
@@ -1486,6 +1486,7 @@ class molecular_trajectory():
|
|
|
1486
1486
|
moldb.write_file_with_properties(filename+'.ekin',property_to_write='kinetic_energy')
|
|
1487
1487
|
moldb.write_file_with_properties(filename+'.epot',property_to_write='energy')
|
|
1488
1488
|
moldb.write_file_with_properties(filename+'.etot',property_to_write='total_energy')
|
|
1489
|
+
moldb.write_file_with_properties(filename+'.temp',property_to_write='temperature')
|
|
1489
1490
|
if 'dipole_moment' in moldb.molecules[0].__dict__.keys():
|
|
1490
1491
|
with open(filename+'.dp','w') as dpf:
|
|
1491
1492
|
for imolecule in moldb.molecules:
|
|
@@ -179,6 +179,9 @@ class Doc():
|
|
|
179
179
|
ANI-2x perform ANI-2x calculations
|
|
180
180
|
ANI-1x-D4 perform ANI-1x-D4 calculations
|
|
181
181
|
ANI-2x-D4 perform ANI-2x-D4 calculations
|
|
182
|
+
ANI-1xnr perform ANI-1xnr calculations
|
|
183
|
+
AIMNet2@B973c perform AIMNet2@B97-3c calculations
|
|
184
|
+
AIMNet2@wB97M-D3 perform AIMNet2@wB97M-D3 calculations
|
|
182
185
|
ODM2
|
|
183
186
|
ODM2*
|
|
184
187
|
GFN2-xTB
|
|
@@ -128,6 +128,18 @@ def printHeader(args):
|
|
|
128
128
|
if args.ani2xd4:
|
|
129
129
|
refItems['D4'] = refs['D4']
|
|
130
130
|
refItems['D4 program'] = refs['D4prog']
|
|
131
|
+
|
|
132
|
+
if args.method:
|
|
133
|
+
if 'DM21' in args.method.upper():
|
|
134
|
+
refItems['DM21'] = refs['DM21']
|
|
135
|
+
|
|
136
|
+
if args.ani1xnr:
|
|
137
|
+
refItems['ANI-1xnr'] = refs['ANI-1xnr']
|
|
138
|
+
if args.aimnet2atb973c:
|
|
139
|
+
refItems['AIMNet2@B973c'] = refs['AIMNet2']
|
|
140
|
+
if args.aimnet2atwb97md3:
|
|
141
|
+
refItems['AIMNet2@wb97M-D3'] = refs['AIMNet2']
|
|
142
|
+
|
|
131
143
|
|
|
132
144
|
if args.geomopt:
|
|
133
145
|
if 'optprog=ase' in ' '.join(args.args2pass).lower():
|
|
@@ -202,7 +202,7 @@ def generate_initial_conditions(molecule=None, generation_method=None, number_of
|
|
|
202
202
|
mass = mass_.reshape(Natoms,1)
|
|
203
203
|
total_mass = np.sum(mass_)
|
|
204
204
|
for irepeat in range(number_of_initial_conditions):
|
|
205
|
-
if eliminate_angular_momentum:
|
|
205
|
+
if eliminate_angular_momentum and not molecule.is_it_linear():
|
|
206
206
|
velocities_all[irepeat] = getridofang(coordinates_all[irepeat],velocities_all[irepeat],mass_)
|
|
207
207
|
v_cm = sum(velocities_all[irepeat]*mass)/total_mass
|
|
208
208
|
velocities_all[irepeat] -= v_cm
|
|
@@ -10,6 +10,10 @@ def ani(**kwargs):
|
|
|
10
10
|
from .torchani_interface import ani_methods as interface
|
|
11
11
|
return interface(**kwargs)
|
|
12
12
|
|
|
13
|
+
def aimnet2(**kwargs):
|
|
14
|
+
from .torchani_interface import aimnet2_methods as interface
|
|
15
|
+
return interface(**kwargs)
|
|
16
|
+
|
|
13
17
|
def mndo(**kwargs):
|
|
14
18
|
from .mndo_interface import mndo_methods as interface
|
|
15
19
|
return interface(**kwargs)
|
|
@@ -186,13 +186,18 @@ def run_gaussian_job(**kwargs):
|
|
|
186
186
|
memory = f"%mem={kwargs['memory']}\n"
|
|
187
187
|
gaussian_keywords = f'{memory}%nproc={nthreads}\n' + gaussian_keywords
|
|
188
188
|
|
|
189
|
+
if 'cwd' in kwargs:
|
|
190
|
+
cwd = kwargs['cwd']
|
|
191
|
+
else:
|
|
192
|
+
cwd='.'
|
|
193
|
+
|
|
189
194
|
if 'model_predict_kwargs' in kwargs:
|
|
190
195
|
model_predict_kwargs_str = str(kwargs['model_predict_kwargs'])
|
|
191
196
|
else:
|
|
192
197
|
model_predict_kwargs_str = "{}"
|
|
193
198
|
|
|
194
199
|
model_predict_kwargs_str_file = 'model_predict_kwargs'
|
|
195
|
-
with open(model_predict_kwargs_str_file, 'w') as f:
|
|
200
|
+
with open(os.path.join(cwd, model_predict_kwargs_str_file), 'w') as f:
|
|
196
201
|
f.write(model_predict_kwargs_str)
|
|
197
202
|
|
|
198
203
|
if 'external_task' in kwargs:
|
|
@@ -227,11 +232,6 @@ def run_gaussian_job(**kwargs):
|
|
|
227
232
|
kwargs['method'] = 'p ' + kwargs['method']
|
|
228
233
|
gaussian_keywords += '# '+kwargs['method']+'\n'
|
|
229
234
|
|
|
230
|
-
if 'cwd' in kwargs:
|
|
231
|
-
cwd = kwargs['cwd']
|
|
232
|
-
else:
|
|
233
|
-
cwd='.'
|
|
234
|
-
|
|
235
235
|
if 'writechk' in kwargs:
|
|
236
236
|
writechk = kwargs['writechk']
|
|
237
237
|
else:
|
|
@@ -72,6 +72,10 @@ class pyscf_methods(OMP_pyscf):
|
|
|
72
72
|
pyscf_mol.unit = 'Ang'
|
|
73
73
|
pyscf_mol.build()
|
|
74
74
|
|
|
75
|
+
# DM21
|
|
76
|
+
if 'DM21' in self.method.upper():
|
|
77
|
+
self.predict_for_molecule_DM21(molecule=molecule, pyscf_mol=pyscf_mol, calculate_energy=calculate_energy, calculate_energy_gradients=calculate_energy_gradients, calculate_hessian=calculate_hessian, **kwargs)
|
|
78
|
+
return
|
|
75
79
|
|
|
76
80
|
# HF
|
|
77
81
|
if 'HF' == self.method.upper():
|
|
@@ -193,8 +197,50 @@ class pyscf_methods(OMP_pyscf):
|
|
|
193
197
|
h[ii*3:(ii+1)*3, jj*3:(jj+1)*3] = hess[ii][jj]
|
|
194
198
|
molecule.hessian = h / constants.Bohr2Angstrom**2
|
|
195
199
|
|
|
196
|
-
|
|
197
|
-
|
|
200
|
+
def predict_for_molecule_DM21(self, molecule=None, pyscf_mol=None, calculate_energy=True, calculate_energy_gradients=False, calculate_hessian=False, **kwargs):
|
|
201
|
+
# reference: https://github.com/google-deepmind/deepmind-research/tree/f5de0ede8430809180254ee957abf36ed62579ef/density_functional_approximation_dm21
|
|
202
|
+
# METHODS AVAILABE:
|
|
203
|
+
# DM21 - trained on molecules dataset, and fractional charge, and fractional spin constraints.
|
|
204
|
+
# DM21m - trained on molecules dataset.
|
|
205
|
+
# DM21mc - trained on molecules dataset, and fractional charge constraints.
|
|
206
|
+
# DM21mu - trained on molecules dataset, and electron gas constraints.
|
|
207
|
+
|
|
208
|
+
from pyscf import dft
|
|
209
|
+
try:
|
|
210
|
+
import density_functional_approximation_dm21 as dm21
|
|
211
|
+
except:
|
|
212
|
+
errmsg = 'Please install required packages for DM21. For more details, please refer to https://github.com/google-deepmind/deepmind-research/tree/master/density_functional_approximation_dm21.'
|
|
213
|
+
raise ModuleNotFoundError(errmsg)
|
|
214
|
+
|
|
215
|
+
if pyscf_mol.spin == 0:
|
|
216
|
+
pyscf_method = dft.RKS(pyscf_mol)
|
|
217
|
+
else:
|
|
218
|
+
pyscf_method = dft.UKS(pyscf_mol)
|
|
219
|
+
|
|
220
|
+
pyscf_method.xc = 'B3LYP'
|
|
221
|
+
pyscf_method.run()
|
|
222
|
+
dm0 = pyscf_method.make_rdm1()
|
|
223
|
+
pyscf_method._numint = dm21.NeuralNumInt(dm21.Functional.__dict__[self.method])
|
|
224
|
+
# relax convergence tolerances to increase success to convergence
|
|
225
|
+
pyscf_method.conv_tol = 1E-6
|
|
226
|
+
pyscf_method.conv_tol_grad = 1E-3
|
|
227
|
+
try:
|
|
228
|
+
pyscf_method.kernel(dm0=dm0)
|
|
229
|
+
except:
|
|
230
|
+
errmsg = 'DM21 cannot converge properly'
|
|
231
|
+
stopper.stopMLatom(errmsg)
|
|
232
|
+
|
|
233
|
+
if calculate_energy:
|
|
234
|
+
molecule.energy = pyscf_method.e_tot
|
|
235
|
+
|
|
236
|
+
if calculate_energy_gradients:
|
|
237
|
+
errmsg = 'DM21 by pyscf does not support gradients calculation'
|
|
238
|
+
raise ValueError(errmsg)
|
|
239
|
+
|
|
240
|
+
if calculate_hessian:
|
|
241
|
+
errmsg = 'DM21 by pyscf does not support hessian calculation'
|
|
242
|
+
raise ValueError(errmsg)
|
|
243
|
+
|
|
198
244
|
@doc_inherit
|
|
199
245
|
def predict(self, molecule=None, molecular_database=None, calculate_energy=True, calculate_energy_gradients=False, calculate_hessian=False, **kwargs):
|
|
200
246
|
'''
|
|
@@ -15,8 +15,11 @@ import numpy as np
|
|
|
15
15
|
import tqdm
|
|
16
16
|
from collections import OrderedDict
|
|
17
17
|
import torch
|
|
18
|
+
from torch import nn, Tensor
|
|
18
19
|
import torchani
|
|
19
20
|
from torchani.data import TransformableIterable, IterableAdapter
|
|
21
|
+
from typing import Dict, List
|
|
22
|
+
|
|
20
23
|
|
|
21
24
|
from .. import data
|
|
22
25
|
from .. import models
|
|
@@ -649,7 +652,9 @@ class ani_methods(models.torchani_model):
|
|
|
649
652
|
|
|
650
653
|
def model_setup(self, method):
|
|
651
654
|
self.method = method
|
|
652
|
-
if 'ANI-
|
|
655
|
+
if 'ANI-1xnr'.casefold() in method.casefold():
|
|
656
|
+
self.model = load_ani1xnr_model()
|
|
657
|
+
elif 'ANI-1x'.casefold() in method.casefold():
|
|
653
658
|
self.model = torchani.models.ANI1x(periodic_table_index=True).to(self.device).double()
|
|
654
659
|
elif 'ANI-1ccx'.casefold() in method.casefold():
|
|
655
660
|
self.model = torchani.models.ANI1ccx(periodic_table_index=True).to(self.device).double()
|
|
@@ -726,6 +731,132 @@ class ani_methods(models.torchani_model):
|
|
|
726
731
|
modelname = self.method.lower().replace('-','')
|
|
727
732
|
molecule.__dict__[f'{modelname}'].standard_deviation(properties=properties+atomic_properties)
|
|
728
733
|
|
|
734
|
+
def load_ani1xnr_model():
|
|
735
|
+
# ANI-1xnr https://github.com/atomistic-ml/ani-1xnr/
|
|
736
|
+
# Universal reactive ML potential ANI-1xnr: https://doi.org/10.1038/s41557-023-01427-3
|
|
737
|
+
species = ['H', 'C', 'N', 'O']
|
|
738
|
+
def parse_ani1xnr_resources():
|
|
739
|
+
import requests
|
|
740
|
+
import zipfile
|
|
741
|
+
import io
|
|
742
|
+
local_dir = os.path.expanduser('~/.local/ANI1xnr/')
|
|
743
|
+
url = "https://github.com/atomistic-ml/ani-1xnr/archive/refs/heads/main.zip"
|
|
744
|
+
if not os.path.exists(local_dir+'ani-1xnr-main'):
|
|
745
|
+
os.makedirs(local_dir, exist_ok=True)
|
|
746
|
+
print(f'Downloading ANI-1xnr model parameters ...')
|
|
747
|
+
resource_res = requests.get(url)
|
|
748
|
+
resource_zip = zipfile.ZipFile(io.BytesIO(resource_res.content))
|
|
749
|
+
resource_zip.extractall(local_dir)
|
|
750
|
+
return local_dir
|
|
751
|
+
model_prefix = parse_ani1xnr_resources() + 'ani-1xnr-main/model/ani-1xnr/'
|
|
752
|
+
# const_file, sae_file, ensemble_prefix, ensemble_size = parse_ani1xnr_resources()
|
|
753
|
+
const_file = model_prefix + 'rHCNO-5.2R_32-3.5A_a8-4.params'
|
|
754
|
+
sae_file = model_prefix + 'sae_linfit.dat'
|
|
755
|
+
consts = torchani.neurochem.Constants(const_file)
|
|
756
|
+
aev_computer = torchani.AEVComputer(**consts)
|
|
757
|
+
energy_shifter = torchani.neurochem.load_sae(sae_file)
|
|
758
|
+
species_converter = torchani.nn.SpeciesConverter(species)
|
|
759
|
+
|
|
760
|
+
neural_networks = []
|
|
761
|
+
for ii in range(8):
|
|
762
|
+
neural_network = torchani.neurochem.load_model(consts.species, model_prefix + f'train{ii}/networks')
|
|
763
|
+
neural_networks.append(torchani.nn.Sequential(species_converter, aev_computer, neural_network, energy_shifter))
|
|
764
|
+
|
|
765
|
+
model_ensemble = torchani.nn.Ensemble(modules=neural_networks)
|
|
766
|
+
model_ensemble.species = species
|
|
767
|
+
|
|
768
|
+
return model_ensemble
|
|
769
|
+
|
|
770
|
+
class aimnet2_methods(models.torchani_model):
|
|
771
|
+
'''
|
|
772
|
+
Universal ML methods with AIMNet2: https://doi.org/10.26434/chemrxiv-2023-296ch
|
|
773
|
+
|
|
774
|
+
Arguments:
|
|
775
|
+
method (str): A string that specifies the method. Available choices: ``'AIMNet2@b973c'`` and ``'AIMNet2@wb97m-d3'``.
|
|
776
|
+
device (str, optional): Indicate which device the calculation will be run on, i.e. 'cpu' for CPU, 'cuda' for Nvidia GPUs. When not speficied, it will try to use CUDA if there exists valid ``CUDA_VISIBLE_DEVICES`` in the environ of system.
|
|
777
|
+
|
|
778
|
+
'''
|
|
779
|
+
|
|
780
|
+
available_methods = models.methods.methods_map['aimnet2']
|
|
781
|
+
element_symbols_available = ['H', 'B', 'C', 'N', 'O', 'F', 'Si', 'P', 'S', 'Cl', 'As', 'Se', 'Br', 'I']
|
|
782
|
+
|
|
783
|
+
def __init__(self, method: str = 'AIMNet2@b973c', device: str = 'cuda' if torch.cuda.is_available() else 'cpu', **kwargs):
|
|
784
|
+
self.device = torch.device(device)
|
|
785
|
+
self.model_path = self.parse_aimnet2_resources(method)
|
|
786
|
+
self.model = torch.jit.load(self.model_path)
|
|
787
|
+
|
|
788
|
+
@doc_inherit
|
|
789
|
+
def predict(
|
|
790
|
+
self,
|
|
791
|
+
molecular_database: data.molecular_database = None,
|
|
792
|
+
molecule: data.molecule = None,
|
|
793
|
+
calculate_energy: bool = False,
|
|
794
|
+
calculate_energy_gradients: bool = False,
|
|
795
|
+
calculate_hessian: bool = False,
|
|
796
|
+
batch_size: int = 2**16,
|
|
797
|
+
) -> None:
|
|
798
|
+
|
|
799
|
+
molDB = super().predict(molecular_database=molecular_database, molecule=molecule)
|
|
800
|
+
|
|
801
|
+
for element_symbol in np.unique(np.concatenate(molDB.element_symbols)):
|
|
802
|
+
if element_symbol not in self.element_symbols_available:
|
|
803
|
+
print(f' * Warning * Molecule contains elements \'{element_symbol}\', which is not supported by method \'{self.method}\' that only supports {self.element_symbols_available}, no calculations performed')
|
|
804
|
+
return
|
|
805
|
+
|
|
806
|
+
for mol in molDB:
|
|
807
|
+
self.predict_for_molecule(
|
|
808
|
+
molecule=mol,
|
|
809
|
+
calculate_energy=calculate_energy,
|
|
810
|
+
calculate_energy_gradients=calculate_energy_gradients,
|
|
811
|
+
calculate_hessian=calculate_hessian)
|
|
812
|
+
|
|
813
|
+
def predict_for_molecule(
|
|
814
|
+
self,
|
|
815
|
+
molecule,
|
|
816
|
+
calculate_energy: bool = False,
|
|
817
|
+
calculate_energy_gradients: bool = False,
|
|
818
|
+
calculate_hessian: bool = False):
|
|
819
|
+
|
|
820
|
+
coord = torch.as_tensor(molecule.xyz_coordinates).to(torch.float).to(self.device).unsqueeze(0)
|
|
821
|
+
numbers = torch.as_tensor(molecule.atomic_numbers).to(torch.long).to(self.device).unsqueeze(0)
|
|
822
|
+
charge = torch.tensor([molecule.charge], dtype=torch.float, device=self.device)
|
|
823
|
+
nninput = dict(coord=coord, numbers=numbers, charge=charge)
|
|
824
|
+
prev = torch.is_grad_enabled()
|
|
825
|
+
torch._C._set_grad_enabled(calculate_energy_gradients)
|
|
826
|
+
if calculate_energy_gradients:
|
|
827
|
+
nninput['coord'].requires_grad_(True)
|
|
828
|
+
nnoutput = self.model(nninput)
|
|
829
|
+
if calculate_energy:
|
|
830
|
+
molecule.energy = nnoutput['energy'].item()
|
|
831
|
+
if calculate_energy_gradients:
|
|
832
|
+
if 'forces' in nnoutput:
|
|
833
|
+
f = nnoutput['forces'][0]
|
|
834
|
+
else:
|
|
835
|
+
f = - torch.autograd.grad(nnoutput['energy'], nninput['coord'])[0][0]
|
|
836
|
+
forces = f.detach().cpu().numpy()
|
|
837
|
+
molecule.add_xyz_vectorial_property(forces, 'energy_gradients')
|
|
838
|
+
|
|
839
|
+
if calculate_hessian:
|
|
840
|
+
print('Hessian not available yet')
|
|
841
|
+
molecule.hessian = np.zeros((len(molecule),)*2)
|
|
842
|
+
|
|
843
|
+
torch._C._set_grad_enabled(prev)
|
|
844
|
+
|
|
845
|
+
@staticmethod
|
|
846
|
+
def parse_aimnet2_resources(method):
|
|
847
|
+
import requests
|
|
848
|
+
local_dir = os.path.expanduser('~/.local/AIMNet2/')
|
|
849
|
+
repo_name = "AIMNet2"
|
|
850
|
+
tag_name = method.lower().replace('@', '_')
|
|
851
|
+
url = "https://github.com/isayevlab/{}/raw/main/models/{}_ens.jpt".format(repo_name, tag_name)
|
|
852
|
+
if not os.path.exists(local_dir+f'{tag_name}_ens.jpt'):
|
|
853
|
+
os.makedirs(local_dir, exist_ok=True)
|
|
854
|
+
print(f'Downloading {method} model parameters ...')
|
|
855
|
+
resource_res = requests.get(url)
|
|
856
|
+
with open(local_dir+f'{tag_name}_ens.jpt', 'wb') as f:
|
|
857
|
+
f.write(resource_res.content)
|
|
858
|
+
return local_dir + f'{tag_name}_ens.jpt'
|
|
859
|
+
|
|
729
860
|
def printHelp():
|
|
730
861
|
helpText = __doc__.replace('.. code-block::\n\n', '') + '''
|
|
731
862
|
To use Interface_ANI, please install TorchANI and its dependencies
|
|
@@ -141,6 +141,12 @@ class md():
|
|
|
141
141
|
|
|
142
142
|
self.stop_function = stop_function
|
|
143
143
|
self.stop_function_kwargs = stop_function_kwargs
|
|
144
|
+
|
|
145
|
+
self.linearity = self.molecule_with_initial_conditions.is_it_linear()
|
|
146
|
+
if self.linearity:
|
|
147
|
+
self.degrees_of_freedom = 3 * self.Natoms - 5
|
|
148
|
+
else:
|
|
149
|
+
self.degrees_of_freedom = 3 * self.Natoms - 6
|
|
144
150
|
self.propagate()
|
|
145
151
|
|
|
146
152
|
def propagate(self):
|
|
@@ -200,6 +206,7 @@ class md():
|
|
|
200
206
|
velocity = np.copy(molecule.get_xyz_vectorial_properties('xyz_velocities'))
|
|
201
207
|
|
|
202
208
|
molecule.total_energy = molecule.energy + molecule.kinetic_energy
|
|
209
|
+
molecule.temperature = molecule.kinetic_energy / (constants.kB_in_Hartree*self.degrees_of_freedom/2)
|
|
203
210
|
trajectory_step.step = istep
|
|
204
211
|
trajectory_step.time = istep * self.time_step
|
|
205
212
|
trajectory_step.molecule = molecule
|
|
@@ -90,9 +90,20 @@ class MD_CMD():
|
|
|
90
90
|
stopMLatom('User-defined initial XYZ file %s does not exist'%(args.initXYZ))
|
|
91
91
|
mol = data.molecule()
|
|
92
92
|
mol.read_from_xyz_file(args.initXYZ)
|
|
93
|
+
else:
|
|
94
|
+
mol = data.molecule()
|
|
95
|
+
mol.load(args.normalModefile)
|
|
93
96
|
|
|
94
97
|
# Deal with degrees of freedom
|
|
95
|
-
if args.initConditions.lower() == 'random':
|
|
98
|
+
if args.initConditions == '' or args.initConditions.lower() == 'user-defined' or args.initConditions.lower() == 'random':
|
|
99
|
+
if mol.is_it_linear():
|
|
100
|
+
linear = 1
|
|
101
|
+
print(' Linear molecule detected')
|
|
102
|
+
else:
|
|
103
|
+
linear = 0
|
|
104
|
+
Natoms = len(mol.atoms)
|
|
105
|
+
DOF = 3*Natoms-6+linear
|
|
106
|
+
else:
|
|
96
107
|
if mol.is_it_linear():
|
|
97
108
|
linear = 1
|
|
98
109
|
print(' Linear molecule detected')
|
|
@@ -100,6 +111,7 @@ class MD_CMD():
|
|
|
100
111
|
linear = 0
|
|
101
112
|
Natoms = len(mol.atoms)
|
|
102
113
|
DOF = 3*Natoms-6+linear
|
|
114
|
+
|
|
103
115
|
# print(' Degrees of freedom: %d'%(DOF))
|
|
104
116
|
|
|
105
117
|
# Generate initial conditions
|
|
@@ -117,8 +129,7 @@ class MD_CMD():
|
|
|
117
129
|
file_with_initial_xyz_coordinates = args.initXYZ,
|
|
118
130
|
file_with_initial_xyz_velocities = args.initVXYZ)
|
|
119
131
|
elif args.initConditions.lower() == 'random':
|
|
120
|
-
|
|
121
|
-
initTemperature = 300
|
|
132
|
+
initTemperature = args.initTemperature
|
|
122
133
|
print(' Use random sampling to generate initial condition')
|
|
123
134
|
print(f' Initial XYZ coordinates file: {args.initXYZ}')
|
|
124
135
|
print(f' Initial instantaneous temperature: {initTemperature}')
|
|
@@ -162,7 +162,7 @@ class methods(model):
|
|
|
162
162
|
=============== ==========================================================================================================================================================================
|
|
163
163
|
Program Methods
|
|
164
164
|
=============== ==========================================================================================================================================================================
|
|
165
|
-
TorchANI ``'AIQM1'``, ``'AIQM1@DFT'``, ``'AIQM1@DFT*'``, ``'ANI-1ccx'``, ``'ANI-1x'``, ``'ANI-1x-D4'``, ``'ANI-2x'``, ``'ANI-2x-D4'``
|
|
165
|
+
TorchANI ``'AIQM1'``, ``'AIQM1@DFT'``, ``'AIQM1@DFT*'``, ``'ANI-1ccx'``, ``'ANI-1x'``, ``'ANI-1x-D4'``, ``'ANI-2x'``, ``'ANI-2x-D4'``, ``'ANI-1xnr'``
|
|
166
166
|
dftd4 ``'AIQM1'``, ``'AIQM1@DFT'``, ``'ANI-1x-D4'``, ``'ANI-2x-D4'``, ``'D4'``
|
|
167
167
|
MNDO or Sparrow ``'AIQM1'``, ``'AIQM1@DFT'``, ``'AIQM1@DFT*'``, ``'MNDO'``, ``'MNDO/d'``, ``'ODM2*'``, ``'ODM3*'``, ``'OM2'``, ``'OM3'``, ``'PM3'``, ``'SCC-DFTB'``, ``'SCC-DFTB-heats'``
|
|
168
168
|
MNDO ``'CNDO/2'``, ``'MINDO/3'``, ``'MNDO/H'``, ``'MNDO/dH'``, ``'MNDOC'``, ``'ODM2'``, ``'ODM3'``, ``'OM1'``, semiempirical OMx, DFTB, NDDO-type methods
|
|
@@ -177,7 +177,8 @@ class methods(model):
|
|
|
177
177
|
|
|
178
178
|
methods_map = {
|
|
179
179
|
'aiqm1': ['AIQM1', 'AIQM1@DFT', 'AIQM1@DFT*'],
|
|
180
|
-
'ani': ["ANI-1x", "ANI-1ccx", "ANI-2x", 'ANI-1x-D4', 'ANI-2x-D4'],
|
|
180
|
+
'ani': ["ANI-1x", "ANI-1ccx", "ANI-2x", 'ANI-1x-D4', 'ANI-2x-D4', 'ANI-1xnr'],
|
|
181
|
+
'aimnet2': ["AIMNet2@b973c", "AIMNet2@wb97m-d3"],
|
|
181
182
|
'mndo': ['ODM2*', 'ODM2', 'ODM3', 'OM3', 'OM2', 'OM1', 'PM3', 'AM1', 'MNDO/d', 'MNDOC', 'MNDO', 'MINDO/3', 'CNDO/2', 'SCC-DFTB', 'SCC-DFTB-heats', 'MNDO/H', 'MNDO/dH'],
|
|
182
183
|
'sparrow': ['DFTB0', 'DFTB2', 'DFTB3', 'MNDO', 'MNDO/d', 'AM1', 'RM1', 'PM3', 'PM6', 'OM2', 'OM3', 'ODM2*', 'ODM3*', 'AIQM1'],
|
|
183
184
|
'xtb': ['GFN2-xTB'],
|
|
@@ -46,5 +46,9 @@
|
|
|
46
46
|
"KREGgrads": "Y.-F. Hou, F. Ge, P. O. Dral.\nJ. Chem. Theory Comput. 2023, 19, 2369",
|
|
47
47
|
"MLTPA": "Y. Su, Y. Dai, Y. Zeng, C. Wei, Y. Chen, F. Ge, P. Zheng,\nD. Zhou, P. O. Dral, C. Wang. Adv. Sci. 2023, 2204902",
|
|
48
48
|
"MLQDprog": "A. Ullah, P. O. Dral.\nMLQD: A package for machine learning-based quantum dissipative dynamics.\nChemRxiv. 2023. DOI: 10.26434/chemrxiv-2023-0xkv1\nSee MLatom.com for reference updates",
|
|
49
|
-
"geometric": "L.-P. Wang, C. C. Song,\nJ. Chem. Phys. 2016, 144, 214108"
|
|
49
|
+
"geometric": "L.-P. Wang, C. C. Song,\nJ. Chem. Phys. 2016, 144, 214108",
|
|
50
|
+
"DM21": "J. Kirkpatrick, ; B. McMorrow, D. H. P. Turban, A. L. Gaunt, J. S. Spencer, \nA. G. D. G. Matthews, A. Obika, L. Thiry, M. Fortunato, D. Pfau, et al.,\nScience 2021, 374, 1385",
|
|
51
|
+
"AIMNet2": "D. Anstine, R. Zubatyuk , O. Isayev \nAIMNet2: A Neural Network Potential to Meet your Neutral, \nCharged, Organic, and Elemental-Organic Needs. \nChemRxiv. 2024; DOI:10.26434/chemrxiv-2023-296ch-v2",
|
|
52
|
+
"ANI-1xnr": "S. Zhang, M.Z. Makoś, R.B. Jadrich, E. Kraka, K. Barros, \nB. T. Nebgen,S. Tretiak, O. Isayev, N. Lubbers, R. A. Messerly,\nJ. S. Smith, Nat. Chem. 2024, 16, 727"
|
|
50
53
|
}
|
|
54
|
+
|
|
@@ -477,7 +477,7 @@ class freq():
|
|
|
477
477
|
|
|
478
478
|
def freq_pyscf(self):
|
|
479
479
|
self.successful = False
|
|
480
|
-
self.model.
|
|
480
|
+
self.model.predict(molecule=self.molecule, calculate_energy=True, calculate_hessian=True, **self.model_predict_kwargs)
|
|
481
481
|
from .interfaces import pyscf_interface
|
|
482
482
|
self.successful = pyscf_interface.thermo_calculation(molecule=self.molecule)
|
|
483
483
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mlatom
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.6.0
|
|
4
4
|
Summary: A Package for Atomistic Simulations with Machine Learning
|
|
5
5
|
Home-page: http://mlatom.com
|
|
6
6
|
Author: Pavlo O. Dral
|
|
@@ -27,7 +27,7 @@ Requires-Dist: tqdm
|
|
|
27
27
|
# About Program
|
|
28
28
|
MLatom: a Package for Atomistic Simulations with Machine Learning
|
|
29
29
|
|
|
30
|
-
Version 3.
|
|
30
|
+
Version 3.6.0
|
|
31
31
|
|
|
32
32
|
**Official website**: http://mlatom.com/
|
|
33
33
|
**Manual**: http://mlatom.com/manual/
|
|
@@ -60,7 +60,7 @@ When this Software or its derivatives are used in scientific publications, it sh
|
|
|
60
60
|
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Mario Barbatti, Olexandr Isayev, Cheng Wang, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Lina Zhang, Shuang Zhang, Arif Ullah, Quanhao Zhang, Yanchi Ou. [MLatom 3: A Platform for Machine Learning-enhanced Computational Chemistry Simulations and Workflows](https://doi.org/10.1021/acs.jctc.3c01203). *J. Chem. Theory Comput.* **2024**, *20*, 1193--1213.
|
|
61
61
|
* Pavlo O. Dral, Fuchun Ge, Bao-Xin Xue, Yi-Fan Hou, Max Pinheiro Jr, Jianxing Huang, Mario Barbatti. [MLatom 2: An Integrative Platform for Atomistic Machine Learning](http://doi.org/10.1007/s41061-021-00339-5). *Top. Curr. Chem.* **2021**, *379*, 27.
|
|
62
62
|
* Pavlo O. Dral. [MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning](http://dx.doi.org/10.1002/jcc.26004). *J. Comput. Chem.* **2019**, *40*, 2339--2347.
|
|
63
|
-
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.
|
|
63
|
+
* Pavlo O. Dral, Fuchun Ge, Yi-Fan Hou, Peikun Zheng, Yuxinxin Chen, Bao-Xin Xue, Max Pinheiro Jr, Yuming Su, Yiheng Dai, Yangtao Chen, Shuang Zhang, Lina Zhang, Arif Ullah, Quanhao Zhang, Sebastian V. Pios, Yanchi Ou, MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.6.0, Xiamen University, Xiamen, China, 2013-2024.
|
|
64
64
|
[MLatom.com](http://mlatom.com).
|
|
65
65
|
|
|
66
66
|
The citations for MLatom's interfaces and features shall be eventually
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|