xtb-step 2026.5.12__py2.py3-none-any.whl
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.
- xtb_step/__init__.py +40 -0
- xtb_step/__main__.py +22 -0
- xtb_step/_version.py +21 -0
- xtb_step/data/properties.csv +14 -0
- xtb_step/data/references.bib +195 -0
- xtb_step/data/seamm-xtb.yml +6 -0
- xtb_step/data/xtb.ini +71 -0
- xtb_step/energy.py +493 -0
- xtb_step/energy_parameters.py +136 -0
- xtb_step/energy_step.py +95 -0
- xtb_step/frequencies.py +349 -0
- xtb_step/frequencies_parameters.py +82 -0
- xtb_step/frequencies_step.py +95 -0
- xtb_step/installer.py +131 -0
- xtb_step/metadata.py +253 -0
- xtb_step/optimization.py +183 -0
- xtb_step/optimization_parameters.py +97 -0
- xtb_step/optimization_step.py +95 -0
- xtb_step/substep.py +563 -0
- xtb_step/tk_energy.py +185 -0
- xtb_step/tk_frequencies.py +108 -0
- xtb_step/tk_optimization.py +94 -0
- xtb_step/tk_xtb.py +151 -0
- xtb_step/xtb.py +223 -0
- xtb_step/xtb_step.py +95 -0
- xtb_step-2026.5.12.dist-info/METADATA +158 -0
- xtb_step-2026.5.12.dist-info/RECORD +33 -0
- xtb_step-2026.5.12.dist-info/WHEEL +6 -0
- xtb_step-2026.5.12.dist-info/entry_points.txt +18 -0
- xtb_step-2026.5.12.dist-info/licenses/AUTHORS.rst +5 -0
- xtb_step-2026.5.12.dist-info/licenses/LICENSE +31 -0
- xtb_step-2026.5.12.dist-info/top_level.txt +1 -0
- xtb_step-2026.5.12.dist-info/zip-safe +1 -0
xtb_step/__init__.py
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
xtb_step
|
|
5
|
+
A SEAMM plug-in for xTB
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
# Bring up the classes so that they appear to be directly in
|
|
9
|
+
# the xtb_step package.
|
|
10
|
+
|
|
11
|
+
from .xtb import xTB # noqa: F401, E501
|
|
12
|
+
from .xtb_step import xTBStep # noqa: F401, E501
|
|
13
|
+
from .tk_xtb import TkxTB # noqa: F401, E501
|
|
14
|
+
|
|
15
|
+
from .metadata import metadata # noqa: F401
|
|
16
|
+
|
|
17
|
+
from .energy_step import EnergyStep # noqa: F401
|
|
18
|
+
from .energy import Energy # noqa: F401
|
|
19
|
+
from .energy_parameters import EnergyParameters # noqa: F401
|
|
20
|
+
from .tk_energy import TkEnergy # noqa: F401
|
|
21
|
+
|
|
22
|
+
from .optimization_step import OptimizationStep # noqa: F401
|
|
23
|
+
from .optimization import Optimization # noqa: F401
|
|
24
|
+
from .optimization_parameters import OptimizationParameters # noqa: F401
|
|
25
|
+
from .tk_optimization import TkOptimization # noqa: F401
|
|
26
|
+
|
|
27
|
+
from .frequencies_step import FrequenciesStep # noqa: F401
|
|
28
|
+
from .frequencies import Frequencies # noqa: F401
|
|
29
|
+
from .frequencies_parameters import FrequenciesParameters # noqa: F401
|
|
30
|
+
from .tk_frequencies import TkFrequencies # noqa: F401
|
|
31
|
+
|
|
32
|
+
# Handle versioneer
|
|
33
|
+
from ._version import get_versions
|
|
34
|
+
|
|
35
|
+
__author__ = "Paul Saxe"
|
|
36
|
+
__email__ = "psaxe@molssi.org"
|
|
37
|
+
versions = get_versions()
|
|
38
|
+
__version__ = versions["version"]
|
|
39
|
+
__git_revision__ = versions["full-revisionid"]
|
|
40
|
+
del get_versions, versions
|
xtb_step/__main__.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# !/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
"""Handle the installation of the xTB step."""
|
|
5
|
+
|
|
6
|
+
from .installer import Installer
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def run():
|
|
10
|
+
"""Handle the extra installation needed.
|
|
11
|
+
|
|
12
|
+
* Find and/or install the xtb executable.
|
|
13
|
+
* Add or update information in the SEAMM xtb.ini file for xTB.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
# Create an installer object
|
|
17
|
+
installer = Installer()
|
|
18
|
+
installer.run()
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
if __name__ == "__main__":
|
|
22
|
+
run()
|
xtb_step/_version.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
# This file was generated by 'versioneer.py' (0.18) from
|
|
3
|
+
# revision-control system data, or from the parent directory name of an
|
|
4
|
+
# unpacked source archive. Distribution tarballs contain a pre-generated copy
|
|
5
|
+
# of this file.
|
|
6
|
+
|
|
7
|
+
import json
|
|
8
|
+
|
|
9
|
+
version_json = '''
|
|
10
|
+
{
|
|
11
|
+
"date": "2026-05-12T11:03:57-0400",
|
|
12
|
+
"dirty": false,
|
|
13
|
+
"error": null,
|
|
14
|
+
"full-revisionid": "69d83a79020d663ae50dd59da590488f68d82516",
|
|
15
|
+
"version": "2026.5.12"
|
|
16
|
+
}
|
|
17
|
+
''' # END VERSION_JSON
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def get_versions():
|
|
21
|
+
return json.loads(version_json)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Property,Type,Units,Description,URL
|
|
2
|
+
total energy#xTB#{model},float,E_h,"The {model} total energy.",
|
|
3
|
+
electronic energy#xTB#{model},float,E_h,"The {model} electronic energy (excluding nuclear repulsion).",
|
|
4
|
+
HOMO energy#xTB#{model},float,eV,"The {model} energy of the highest occupied molecular orbital (HOMO).",https://en.wikipedia.org/wiki/HOMO_and_LUMO
|
|
5
|
+
LUMO energy#xTB#{model},float,eV,"The {model} energy of the lowest unoccupied molecular orbital (LUMO).",https://en.wikipedia.org/wiki/HOMO_and_LUMO
|
|
6
|
+
band gap#xTB#{model},float,eV,"The {model} HOMO-LUMO gap.",https://en.wikipedia.org/wiki/Band_gap
|
|
7
|
+
dipole moment#xTB#{model},float,debye,"The {model} electric dipole moment, magnitude of the dipole vector.",https://en.wikipedia.org/wiki/Electric_dipole_moment
|
|
8
|
+
gradients#xTB#{model},json,E_h/Å,The {model} gradients of the energy with respect to the atomic coordinates.,
|
|
9
|
+
force constants#xTB#{model},json,E_h/Å^2,The {model} mass-weighted Hessian / force constants.,
|
|
10
|
+
enthalpy of formation#xTB#{model},float,kJ/mol,"The {model} enthalpy of formation.",https://en.wikipedia.org/wiki/Standard_enthalpy_of_formation
|
|
11
|
+
zero point energy#xTB#{model},float,kJ/mol,"The {model} zero-point vibrational energy.",
|
|
12
|
+
entropy#xTB#{model},float,J/mol/K,"The {model} standard entropy at the chosen temperature and pressure.",https://en.wikipedia.org/wiki/Entropy
|
|
13
|
+
constant pressure heat capacity#xTB#{model},float,J/mol/K,"The {model} constant-pressure heat capacity, Cp.",https://en.wikipedia.org/wiki/Heat_capacity
|
|
14
|
+
Gibbs free energy#xTB#{model},float,kJ/mol,"The {model} Gibbs free energy at the chosen temperature and pressure.",
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
This is an initial library of BibTex references for the xtb_step plug-in for SEAMM,
|
|
2
|
+
generated automatically by the cookiecutter. You may wish to edit the first entry to correct some
|
|
3
|
+
of the information.
|
|
4
|
+
|
|
5
|
+
Add other references to the end of the file and add code in the plug-in to cite the references as
|
|
6
|
+
appropriate. This is done with code like this:
|
|
7
|
+
|
|
8
|
+
self.references.cite(
|
|
9
|
+
raw=self._bibliography['doi:10.1002/jcc.21224'],
|
|
10
|
+
alias='packmol',
|
|
11
|
+
module='packmol_step',
|
|
12
|
+
level=1,
|
|
13
|
+
note='The principle PACKMOL citation.'
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
which is typically in the run() method of the plug-in.
|
|
17
|
+
|
|
18
|
+
The base node class in SEAMM automatically reads this list of references into a dictionary in
|
|
19
|
+
self._bibliography with the key being the key of the BibTex entry -- usually the name on the
|
|
20
|
+
first line of the entry after the 'article' or 'misc' (for software) keyword.
|
|
21
|
+
|
|
22
|
+
See the documentation for the Reference Handler for the other arguments to cite().
|
|
23
|
+
|
|
24
|
+
# End of initial comments #
|
|
25
|
+
|
|
26
|
+
# This is the citation for this plug-in, generated and used automatically.
|
|
27
|
+
# You might need to edit the author, address, etc. The month, year and version fields
|
|
28
|
+
# are automatically filled in with information about current version of the plug-in.
|
|
29
|
+
# This is handled in seamm/nody.py, the run() method.
|
|
30
|
+
|
|
31
|
+
@Misc{xtb_step,
|
|
32
|
+
author = {Paul Saxe},
|
|
33
|
+
title = {xTB plug-in for SEAMM},
|
|
34
|
+
month = {$month},
|
|
35
|
+
year = {$year},
|
|
36
|
+
organization = {The Molecular Sciences Software Institute (MolSSI)},
|
|
37
|
+
url = {https://github.com/molssi-seamm/xtb_step},
|
|
38
|
+
address = {Virginia Tech, Blacksburg, VA, USA},
|
|
39
|
+
version = {$version}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# ----------------------------------------------------------------------
|
|
43
|
+
# References for xTB itself and the GFN method family
|
|
44
|
+
# ----------------------------------------------------------------------
|
|
45
|
+
|
|
46
|
+
# The general xTB review. Cited at level 1 whenever any GFN-x-TB or GFN-FF
|
|
47
|
+
# method is used.
|
|
48
|
+
@article{Bannwarth2021,
|
|
49
|
+
author = {Bannwarth, Christoph and Caldeweyher, Eike and Ehlert, Sebastian and
|
|
50
|
+
Hansen, Andreas and Pracht, Philipp and Seibert, Jakob and
|
|
51
|
+
Spicher, Sebastian and Grimme, Stefan},
|
|
52
|
+
title = {Extended tight-binding quantum chemistry methods},
|
|
53
|
+
journal = {WIREs Computational Molecular Science},
|
|
54
|
+
volume = {11},
|
|
55
|
+
number = {2},
|
|
56
|
+
pages = {e1493},
|
|
57
|
+
year = {2021},
|
|
58
|
+
doi = {10.1002/wcms.1493},
|
|
59
|
+
url = {https://doi.org/10.1002/wcms.1493}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
# GFN2-xTB primary citation.
|
|
63
|
+
@article{Bannwarth2019,
|
|
64
|
+
author = {Bannwarth, Christoph and Ehlert, Sebastian and Grimme, Stefan},
|
|
65
|
+
title = {{GFN2}-{xTB}---{An} Accurate and Broadly Parametrized Self-Consistent
|
|
66
|
+
Tight-Binding Quantum Chemical Method with Multipole Electrostatics
|
|
67
|
+
and Density-Dependent Dispersion Contributions},
|
|
68
|
+
journal = {Journal of Chemical Theory and Computation},
|
|
69
|
+
volume = {15},
|
|
70
|
+
number = {3},
|
|
71
|
+
pages = {1652--1671},
|
|
72
|
+
year = {2019},
|
|
73
|
+
doi = {10.1021/acs.jctc.8b01176},
|
|
74
|
+
url = {https://doi.org/10.1021/acs.jctc.8b01176}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
# GFN1-xTB primary citation.
|
|
78
|
+
@article{Grimme2017,
|
|
79
|
+
author = {Grimme, Stefan and Bannwarth, Christoph and Shushkov, Philip},
|
|
80
|
+
title = {A Robust and Accurate Tight-Binding Quantum Chemical Method for
|
|
81
|
+
Structures, Vibrational Frequencies, and Noncovalent Interactions of
|
|
82
|
+
Large Molecular Systems Parametrized for All spd-Block Elements
|
|
83
|
+
({Z} = 1--86)},
|
|
84
|
+
journal = {Journal of Chemical Theory and Computation},
|
|
85
|
+
volume = {13},
|
|
86
|
+
number = {5},
|
|
87
|
+
pages = {1989--2009},
|
|
88
|
+
year = {2017},
|
|
89
|
+
doi = {10.1021/acs.jctc.7b00118},
|
|
90
|
+
url = {https://doi.org/10.1021/acs.jctc.7b00118}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# GFN0-xTB. As of last check, this method has only a ChemRxiv preprint, not a
|
|
94
|
+
# peer-reviewed journal paper. Update if/when a journal version appears.
|
|
95
|
+
@misc{Pracht2019,
|
|
96
|
+
author = {Pracht, Philipp and Caldeweyher, Eike and Ehlert, Sebastian and
|
|
97
|
+
Grimme, Stefan},
|
|
98
|
+
title = {A Robust Non-Self-Consistent Tight-Binding Quantum Chemistry Method
|
|
99
|
+
for Large Molecules},
|
|
100
|
+
howpublished = {ChemRxiv preprint},
|
|
101
|
+
year = {2019},
|
|
102
|
+
doi = {10.26434/chemrxiv.8326202.v1},
|
|
103
|
+
url = {https://doi.org/10.26434/chemrxiv.8326202.v1},
|
|
104
|
+
note = {Preprint; no peer-reviewed journal paper as of plug-in v1 release.}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
# GFN-FF: a generic force field automatically parameterized via xTB.
|
|
108
|
+
@article{Spicher2020,
|
|
109
|
+
author = {Spicher, Sebastian and Grimme, Stefan},
|
|
110
|
+
title = {Robust Atomistic Modeling of Materials, Organometallic, and
|
|
111
|
+
Biochemical Systems},
|
|
112
|
+
journal = {Angewandte Chemie International Edition},
|
|
113
|
+
volume = {59},
|
|
114
|
+
number = {36},
|
|
115
|
+
pages = {15665--15673},
|
|
116
|
+
year = {2020},
|
|
117
|
+
doi = {10.1002/anie.202004239},
|
|
118
|
+
url = {https://doi.org/10.1002/anie.202004239}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
# Implicit solvation: ALPB and the related GBSA implementation in xTB.
|
|
122
|
+
@article{Ehlert2021,
|
|
123
|
+
author = {Ehlert, Sebastian and Stahn, Marcel and Spicher, Sebastian and
|
|
124
|
+
Grimme, Stefan},
|
|
125
|
+
title = {Robust and Efficient Implicit Solvation Model for Fast
|
|
126
|
+
Semiempirical Methods},
|
|
127
|
+
journal = {Journal of Chemical Theory and Computation},
|
|
128
|
+
volume = {17},
|
|
129
|
+
number = {7},
|
|
130
|
+
pages = {4250--4261},
|
|
131
|
+
year = {2021},
|
|
132
|
+
doi = {10.1021/acs.jctc.1c00471},
|
|
133
|
+
url = {https://doi.org/10.1021/acs.jctc.1c00471}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# CPCM-X solvation model. Cited at level 1 when CPCM-X is selected.
|
|
137
|
+
@article{Stahn2023,
|
|
138
|
+
author = {Stahn, Marcel and Ehlert, Sebastian and Grimme, Stefan},
|
|
139
|
+
title = {Extended Conductor-like Polarizable Continuum Solvation Model
|
|
140
|
+
({CPCM-X}) for Semiempirical Methods},
|
|
141
|
+
journal = {The Journal of Physical Chemistry A},
|
|
142
|
+
volume = {127},
|
|
143
|
+
number = {33},
|
|
144
|
+
pages = {7036--7043},
|
|
145
|
+
year = {2023},
|
|
146
|
+
doi = {10.1021/acs.jpca.3c04382},
|
|
147
|
+
url = {https://doi.org/10.1021/acs.jpca.3c04382}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
# ----------------------------------------------------------------------
|
|
151
|
+
# Component citations -- secondary (level 2)
|
|
152
|
+
# ----------------------------------------------------------------------
|
|
153
|
+
|
|
154
|
+
# DFT-D4 dispersion correction. Cited at level 2 whenever a method that
|
|
155
|
+
# uses D4-style dispersion is invoked (GFN2-xTB in v1).
|
|
156
|
+
@article{Caldeweyher2017,
|
|
157
|
+
author = {Caldeweyher, Eike and Bannwarth, Christoph and Grimme, Stefan},
|
|
158
|
+
title = {Extension of the {D3} Dispersion Coefficient Model},
|
|
159
|
+
journal = {The Journal of Chemical Physics},
|
|
160
|
+
volume = {147},
|
|
161
|
+
number = {3},
|
|
162
|
+
pages = {034112},
|
|
163
|
+
year = {2017},
|
|
164
|
+
doi = {10.1063/1.4993215},
|
|
165
|
+
url = {https://doi.org/10.1063/1.4993215}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@article{Caldeweyher2019,
|
|
169
|
+
author = {Caldeweyher, Eike and Ehlert, Sebastian and Hansen, Andreas and
|
|
170
|
+
Neugebauer, Hagen and Spicher, Sebastian and Bannwarth, Christoph
|
|
171
|
+
and Grimme, Stefan},
|
|
172
|
+
title = {A Generally Applicable Atomic-Charge Dependent {London} Dispersion
|
|
173
|
+
Correction},
|
|
174
|
+
journal = {The Journal of Chemical Physics},
|
|
175
|
+
volume = {150},
|
|
176
|
+
number = {15},
|
|
177
|
+
pages = {154122},
|
|
178
|
+
year = {2019},
|
|
179
|
+
doi = {10.1063/1.5090222},
|
|
180
|
+
url = {https://doi.org/10.1063/1.5090222}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@article{Caldeweyher2020,
|
|
184
|
+
author = {Caldeweyher, Eike and Mewes, Jan-Michael and Ehlert, Sebastian
|
|
185
|
+
and Grimme, Stefan},
|
|
186
|
+
title = {Extension and Evaluation of the {D4} London-Dispersion Model
|
|
187
|
+
for Periodic Systems},
|
|
188
|
+
journal = {Physical Chemistry Chemical Physics},
|
|
189
|
+
volume = {22},
|
|
190
|
+
number = {16},
|
|
191
|
+
pages = {8499--8512},
|
|
192
|
+
year = {2020},
|
|
193
|
+
doi = {10.1039/D0CP00502A},
|
|
194
|
+
url = {https://doi.org/10.1039/D0CP00502A}
|
|
195
|
+
}
|
xtb_step/data/xtb.ini
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Configuration options for how to run xTB
|
|
2
|
+
|
|
3
|
+
[docker]
|
|
4
|
+
# The code to use. This may be more than just the name of the code, and variables in
|
|
5
|
+
# braces {} will be expanded. For example:
|
|
6
|
+
# code = mpiexec -np {NTASKS} xtb
|
|
7
|
+
# would expand {NTASKS} to the number of tasks and run the command
|
|
8
|
+
|
|
9
|
+
code = xtb
|
|
10
|
+
|
|
11
|
+
# The name and location of the Docker container to use, optionally with the version
|
|
12
|
+
|
|
13
|
+
container = ghcr.io/molssi-seamm/seamm-xtb:{version}
|
|
14
|
+
|
|
15
|
+
# In addition, you can specify the platform to use. This is useful on e.g. Macs with
|
|
16
|
+
# apple silicon (M1, M3...) where the default platform is linux/arm64 but some containers
|
|
17
|
+
# are only available for linux/amd64.
|
|
18
|
+
|
|
19
|
+
# platform = linux/amd64
|
|
20
|
+
|
|
21
|
+
[local]
|
|
22
|
+
# The type of local installation to use. Options are:
|
|
23
|
+
# conda: Use a conda environment
|
|
24
|
+
# modules: Use the modules system
|
|
25
|
+
# local: Use a local installation
|
|
26
|
+
# docker: Use a Docker container
|
|
27
|
+
# By default SEAMM installs xTB using conda from conda-forge.
|
|
28
|
+
|
|
29
|
+
installation = conda
|
|
30
|
+
|
|
31
|
+
# The command line to use, which should start with the executable followed by any options.
|
|
32
|
+
# Variables in braces {} will be expanded. For example:
|
|
33
|
+
#
|
|
34
|
+
# code = mpiexec -np {NTASKS} xtb
|
|
35
|
+
#
|
|
36
|
+
# would expand {NTASKS} to the number of tasks and run the command.
|
|
37
|
+
# For a 'local' installation, the command line should include the full path to the
|
|
38
|
+
# executable or it should be in the path.
|
|
39
|
+
|
|
40
|
+
code = xtb
|
|
41
|
+
|
|
42
|
+
######################### conda section ############################
|
|
43
|
+
# The full path to the conda executable:
|
|
44
|
+
|
|
45
|
+
# conda =
|
|
46
|
+
|
|
47
|
+
# The Conda environment to use. This is either the name or full path.
|
|
48
|
+
|
|
49
|
+
# conda-environment = seamm-xtb
|
|
50
|
+
|
|
51
|
+
######################### modules section ############################
|
|
52
|
+
# The modules to load to run xTB, as a list of strings.
|
|
53
|
+
# For example:
|
|
54
|
+
# modules = xtb
|
|
55
|
+
|
|
56
|
+
# modules =
|
|
57
|
+
|
|
58
|
+
######################### local section ############################
|
|
59
|
+
# The full path to the xTB executable should be in the 'code' option.
|
|
60
|
+
|
|
61
|
+
######################### docker section ############################
|
|
62
|
+
# The name and location of the Docker container to use, optionally with the version.
|
|
63
|
+
# {version} will be expanded to the version of the plug-in.
|
|
64
|
+
|
|
65
|
+
# container = ghcr.io/molssi-seamm/seamm-xtb:{version}
|
|
66
|
+
|
|
67
|
+
# In addition, you can specify the platform to use. This is useful on e.g. Macs with
|
|
68
|
+
# apple silicon (M1, M3...) where the default platform is linux/arm64 but some containers
|
|
69
|
+
# are only available for linux/amd64.
|
|
70
|
+
|
|
71
|
+
# platform = linux/amd64
|