Loading...
Searching...
No Matches
xtb.h
Go to the documentation of this file.
1/* This file is part of xtb.
2 *
3 * Copyright (C) 2019-2020 Sebastian Ehlert
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18#pragma once
19
20#define XTB_API_ENTRY
21#define XTB_API_CALL
22#define XTB_API_SUFFIX__VERSION_2_0_0
23
25#define XTB_API_VERSION 20000
26#define XTB_VERSION_6_3_0 1
27#define XTB_VERSION_6_3_1 1
28#define XTB_VERSION_6_3_2 1
29#define XTB_VERSION_6_3_3 1
30
32#define XTB_VERBOSITY_FULL 2
33#define XTB_VERBOSITY_MINIMAL 1
34#define XTB_VERBOSITY_MUTED 0
35
37#define xtb_delete(ptr) _Generic((ptr), \
38 xtb_TEnvironment: xtb_delEnvironment, \
39 xtb_TMolecule: xtb_delMolecule, \
40 xtb_TCalculator: xtb_delCalculator, \
41 xtb_TResults: xtb_delResults \
42 )(&ptr)
43
44#ifdef __cplusplus
45extern "C" {
46#else
47#include <stdbool.h>
48#endif
49
50/*
51 * Opaque pointers to Fortran objects
52**/
53
55typedef struct _xtb_TEnvironment* xtb_TEnvironment;
56
58typedef struct _xtb_TMolecule* xtb_TMolecule;
59
61typedef struct _xtb_TCalculator* xtb_TCalculator;
62
64typedef struct _xtb_TResults* xtb_TResults;
65
66/*
67 * Query for semantic API version
68**/
69
73
74/*
75 * Calculation environment
76**/
77
81
85
89
93 const char* /* message */) XTB_API_SUFFIX__VERSION_2_0_0;
94
98 char* /* buffer */,
99 const int* /* buffersize */) XTB_API_SUFFIX__VERSION_2_0_0;
100
102extern XTB_API_ENTRY void XTB_API_CALL
104 const char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;
105
107extern XTB_API_ENTRY void XTB_API_CALL
109
111extern XTB_API_ENTRY void XTB_API_CALL
113 int /* verbosity */) XTB_API_SUFFIX__VERSION_2_0_0;
114
115/*
116 * Molecular structure data class
117**/
118
122 const int* /* natoms */,
123 const int* /* numbers [natoms] */,
124 const double* /* positions [natoms][3] */,
125 const double* /* charge in e */,
126 const int* /* uhf */,
127 const double* /* lattice [3][3] */,
128 const bool* /* periodic [3] */) XTB_API_SUFFIX__VERSION_2_0_0;
129
131extern XTB_API_ENTRY void XTB_API_CALL
133
135extern XTB_API_ENTRY void XTB_API_CALL
137 xtb_TMolecule /* mol */,
138 const double* /* positions [natoms][3] */,
139 const double* /* lattice [3][3] */) XTB_API_SUFFIX__VERSION_2_0_0;
140
141/*
142 * Singlepoint calculator
143**/
144
148
150extern XTB_API_ENTRY void XTB_API_CALL
152
154extern XTB_API_ENTRY void XTB_API_CALL
156 xtb_TMolecule /* mol */,
157 xtb_TCalculator /* calc */,
158 char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;
159
161extern XTB_API_ENTRY void XTB_API_CALL
163 xtb_TMolecule /* mol */,
164 xtb_TCalculator /* calc */,
165 char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;
166
168extern XTB_API_ENTRY void XTB_API_CALL
170 xtb_TMolecule /* mol */,
171 xtb_TCalculator /* calc */,
172 char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;
173
175extern XTB_API_ENTRY void XTB_API_CALL
177 xtb_TMolecule /* mol */,
178 xtb_TCalculator /* calc */,
179 char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;
180
182extern XTB_API_ENTRY void XTB_API_CALL
184 xtb_TCalculator /* calc */,
185 char* /* solvent */,
186 int* /* state */,
187 double* /* temp */,
188 int* /* grid */,
189 char* /* solvent model */) XTB_API_SUFFIX__VERSION_2_0_0;
190
192extern XTB_API_ENTRY void XTB_API_CALL
195
197extern XTB_API_ENTRY void XTB_API_CALL
199 xtb_TCalculator /* calc */,
200 int* /* n */,
201 int* /* numbers [n] */,
202 double* /* charges [n] */,
203 double* /* positions [n][3] */) XTB_API_SUFFIX__VERSION_2_0_0;
204
206extern XTB_API_ENTRY void XTB_API_CALL
209
211extern XTB_API_ENTRY void XTB_API_CALL
213 xtb_TCalculator /* calc */,
214 double /* accuracy */) XTB_API_SUFFIX__VERSION_2_0_0;
215
217extern XTB_API_ENTRY void XTB_API_CALL
219 xtb_TCalculator /* calc */,
220 int /* iterations */) XTB_API_SUFFIX__VERSION_2_0_0;
221
223extern XTB_API_ENTRY void XTB_API_CALL
225 xtb_TCalculator /* calc */,
226 double /* temperature */) XTB_API_SUFFIX__VERSION_2_0_0;
227
229extern XTB_API_ENTRY void XTB_API_CALL
231 xtb_TMolecule /* mol */,
232 xtb_TCalculator /* calc */,
234
236extern XTB_API_ENTRY void XTB_API_CALL
238 xtb_TMolecule /* mol */,
239 xtb_TCalculator /* calc */,
241
243extern XTB_API_ENTRY void XTB_API_CALL
245 xtb_TMolecule /* mol */,
246 xtb_TCalculator /* calc */,
247 xtb_TResults /* res */,
248 double* /* hessian */,
249 int* /* atom_index_list */,
250 int* /* step_size */,
251 double* /* dipole_gradient */,
252 double* /* polarizability_gradient */) XTB_API_SUFFIX__VERSION_2_0_0;
253
254/*
255 * Calculation results
256**/
257
261
263extern XTB_API_ENTRY void XTB_API_CALL
265
269
271extern XTB_API_ENTRY void XTB_API_CALL
273 xtb_TResults /* res */,
274 double* /* energy */) XTB_API_SUFFIX__VERSION_2_0_0;
275
277extern XTB_API_ENTRY void XTB_API_CALL
279 xtb_TResults /* res */,
280 double* /* energy */) XTB_API_SUFFIX__VERSION_2_0_0;
281
283extern XTB_API_ENTRY void XTB_API_CALL
285 xtb_TResults /* res */,
286 double* /* gradient [natoms][3] */) XTB_API_SUFFIX__VERSION_2_0_0;
287
289extern XTB_API_ENTRY void XTB_API_CALL
291 xtb_TResults /* res */,
292 double* /* gradient [natoms][3] */) XTB_API_SUFFIX__VERSION_2_0_0;
293
295extern XTB_API_ENTRY void XTB_API_CALL
297 xtb_TResults /* res */,
298 double* /* virial [3][3] */) XTB_API_SUFFIX__VERSION_2_0_0;
299
301extern XTB_API_ENTRY void XTB_API_CALL
303 xtb_TResults /* res */,
304 double* /* dipole [3] */) XTB_API_SUFFIX__VERSION_2_0_0;
305
307extern XTB_API_ENTRY void XTB_API_CALL
309 xtb_TResults /* res */,
310 double* /* charges [natoms] */) XTB_API_SUFFIX__VERSION_2_0_0;
311
313extern XTB_API_ENTRY void XTB_API_CALL
315 xtb_TResults /* res */,
316 double* /* wbo [natoms][natoms] */) XTB_API_SUFFIX__VERSION_2_0_0;
317
319extern XTB_API_ENTRY void XTB_API_CALL
321 xtb_TResults /* res */,
322 int* /* nao */) XTB_API_SUFFIX__VERSION_2_0_0;
323
325extern XTB_API_ENTRY void XTB_API_CALL
327 xtb_TResults /* res */,
328 double* /* emo */) XTB_API_SUFFIX__VERSION_2_0_0;
329
331extern XTB_API_ENTRY void XTB_API_CALL
333 xtb_TResults /* res */,
334 double* /* focc */) XTB_API_SUFFIX__VERSION_2_0_0;
335
337extern XTB_API_ENTRY void XTB_API_CALL
339 xtb_TResults /* res */,
340 double* /* c */) XTB_API_SUFFIX__VERSION_2_0_0;
341
342#ifdef __cplusplus
343}
344#endif
XTB_API_ENTRY void XTB_API_CALL xtb_cpcmx_calc(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, xtb_TResults) XTB_API_SUFFIX__VERSION_2_0_0
XTB_API_ENTRY void XTB_API_CALL xtb_getBondOrders(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for bond orders.
XTB_API_ENTRY void XTB_API_CALL xtb_getGradient(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for gradient in Hartree / Bohr.
XTB_API_ENTRY xtb_TCalculator XTB_API_CALL xtb_newCalculator(void) XTB_API_SUFFIX__VERSION_2_0_0
Create new calculator object.
XTB_API_ENTRY xtb_TMolecule XTB_API_CALL xtb_newMolecule(xtb_TEnvironment, const int *, const int *, const double *, const double *, const int *, const double *, const bool *) XTB_API_SUFFIX__VERSION_2_0_0
Create new molecular structure data (quantities in Bohr).
struct _xtb_TCalculator * xtb_TCalculator
Single point calculator class.
Definition xtb.h:61
#define XTB_API_CALL
Definition xtb.h:21
XTB_API_ENTRY xtb_TResults XTB_API_CALL xtb_copyResults(xtb_TResults) XTB_API_SUFFIX__VERSION_2_0_0
Create copy from a singlepoint results object.
XTB_API_ENTRY void XTB_API_CALL xtb_getEnergy(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for energy in Hartree.
XTB_API_ENTRY void XTB_API_CALL xtb_releaseSolvent(xtb_TEnvironment, xtb_TCalculator) XTB_API_SUFFIX__VERSION_2_0_0
Unset the solvation model.
struct _xtb_TEnvironment * xtb_TEnvironment
Calculation environment class.
Definition xtb.h:55
XTB_API_ENTRY void XTB_API_CALL xtb_hessian(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, xtb_TResults, double *, int *, int *, double *, double *) XTB_API_SUFFIX__VERSION_2_0_0
Perform hessian calculation.
XTB_API_ENTRY void XTB_API_CALL xtb_loadGFN0xTB(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, char *) XTB_API_SUFFIX__VERSION_2_0_0
Load GFN0-xTB calculator.
XTB_API_ENTRY void XTB_API_CALL xtb_getOrbitalOccupations(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for occupation numbers [nao].
XTB_API_ENTRY void XTB_API_CALL xtb_setSolvent(xtb_TEnvironment, xtb_TCalculator, char *, int *, double *, int *, char *) XTB_API_SUFFIX__VERSION_2_0_0
Add a solvation model to calculator (requires loaded parametrisation).
XTB_API_ENTRY int XTB_API_CALL xtb_checkEnvironment(xtb_TEnvironment) XTB_API_SUFFIX__VERSION_2_0_0
Check current status of calculation environment.
XTB_API_ENTRY void XTB_API_CALL xtb_delMolecule(xtb_TMolecule *) XTB_API_SUFFIX__VERSION_2_0_0
Delete molecular structure data.
XTB_API_ENTRY void XTB_API_CALL xtb_delResults(xtb_TResults *) XTB_API_SUFFIX__VERSION_2_0_0
Delete singlepoint results object.
XTB_API_ENTRY void XTB_API_CALL xtb_getNao(xtb_TEnvironment, xtb_TResults, int *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for the number of basis functions.
XTB_API_ENTRY void XTB_API_CALL xtb_updateMolecule(xtb_TEnvironment, xtb_TMolecule, const double *, const double *) XTB_API_SUFFIX__VERSION_2_0_0
Update coordinates and lattice parameters (quantities in Bohr).
#define XTB_API_ENTRY
Definition xtb.h:20
XTB_API_ENTRY void XTB_API_CALL xtb_setElectronicTemp(xtb_TEnvironment, xtb_TCalculator, double) XTB_API_SUFFIX__VERSION_2_0_0
Set electronic temperature for level filling in tight binding calculators in K.
struct _xtb_TMolecule * xtb_TMolecule
Molecular structure data class.
Definition xtb.h:58
XTB_API_ENTRY void XTB_API_CALL xtb_loadGFNFF(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, char *) XTB_API_SUFFIX__VERSION_2_0_0
Load GFN-FF calculator.
XTB_API_ENTRY xtb_TEnvironment XTB_API_CALL xtb_newEnvironment(void) XTB_API_SUFFIX__VERSION_2_0_0
Create new xtb calculation environment object.
XTB_API_ENTRY void XTB_API_CALL xtb_setExternalCharges(xtb_TEnvironment, xtb_TCalculator, int *, int *, double *, double *) XTB_API_SUFFIX__VERSION_2_0_0
Add a external charge potential to calculator (only supported in GFN1/2-xTB).
XTB_API_ENTRY void XTB_API_CALL xtb_releaseExternalCharges(xtb_TEnvironment, xtb_TCalculator) XTB_API_SUFFIX__VERSION_2_0_0
Unset the external charge potential.
XTB_API_ENTRY void XTB_API_CALL xtb_loadGFN1xTB(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, char *) XTB_API_SUFFIX__VERSION_2_0_0
Load GFN1-xTB calculator.
XTB_API_ENTRY void XTB_API_CALL xtb_getOrbitalEigenvalues(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for orbital energies in Hartree [nao].
XTB_API_ENTRY void XTB_API_CALL xtb_setVerbosity(xtb_TEnvironment, int) XTB_API_SUFFIX__VERSION_2_0_0
Set verbosity of calculation output.
XTB_API_ENTRY void XTB_API_CALL xtb_getCharges(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for partial charges in e.
XTB_API_ENTRY void XTB_API_CALL xtb_releaseOutput(xtb_TEnvironment) XTB_API_SUFFIX__VERSION_2_0_0
Release output unit from this environment.
XTB_API_ENTRY void XTB_API_CALL xtb_delEnvironment(xtb_TEnvironment *) XTB_API_SUFFIX__VERSION_2_0_0
Delete a xtb calculation environment object.
XTB_API_ENTRY void XTB_API_CALL xtb_getOrbitalCoefficients(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for orbital coefficients [nao][nao].
XTB_API_ENTRY void XTB_API_CALL xtb_setAccuracy(xtb_TEnvironment, xtb_TCalculator, double) XTB_API_SUFFIX__VERSION_2_0_0
Set numerical accuracy of calculator in the range of 1000 to 0.0001.
XTB_API_ENTRY xtb_TResults XTB_API_CALL xtb_newResults(void) XTB_API_SUFFIX__VERSION_2_0_0
Create new singlepoint results object.
XTB_API_ENTRY void XTB_API_CALL xtb_setOutput(xtb_TEnvironment, const char *) XTB_API_SUFFIX__VERSION_2_0_0
Bind output from this environment.
XTB_API_ENTRY void XTB_API_CALL xtb_setMaxIter(xtb_TEnvironment, xtb_TCalculator, int) XTB_API_SUFFIX__VERSION_2_0_0
Set maximum number of iterations for self-consistent TB calculators.
XTB_API_ENTRY void XTB_API_CALL xtb_loadGFN2xTB(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, char *) XTB_API_SUFFIX__VERSION_2_0_0
Load GFN2-xTB calculator.
XTB_API_ENTRY int XTB_API_CALL xtb_getAPIVersion() XTB_API_SUFFIX__VERSION_2_0_0
Returns API version as 10000 * major + 100 * minor + 1 * patch.
XTB_API_ENTRY void XTB_API_CALL xtb_getDipole(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for dipole in e Bohr.
XTB_API_ENTRY void XTB_API_CALL xtb_getVirial(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for virial in Hartree.
#define XTB_API_SUFFIX__VERSION_2_0_0
Definition xtb.h:22
XTB_API_ENTRY void XTB_API_CALL xtb_singlepoint(xtb_TEnvironment, xtb_TMolecule, xtb_TCalculator, xtb_TResults) XTB_API_SUFFIX__VERSION_2_0_0
Perform singlepoint calculation.
XTB_API_ENTRY void XTB_API_CALL xtb_getError(xtb_TEnvironment, char *, const int *) XTB_API_SUFFIX__VERSION_2_0_0
Return and empty error stack.
XTB_API_ENTRY void XTB_API_CALL xtb_getSolvationEnergy(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for solvation energy in Hartree.
struct _xtb_TResults * xtb_TResults
Single point results class.
Definition xtb.h:64
XTB_API_ENTRY void XTB_API_CALL xtb_showEnvironment(xtb_TEnvironment, const char *) XTB_API_SUFFIX__VERSION_2_0_0
Show and empty error stack.
XTB_API_ENTRY void XTB_API_CALL xtb_delCalculator(xtb_TCalculator *) XTB_API_SUFFIX__VERSION_2_0_0
Delete calculator object.
XTB_API_ENTRY void XTB_API_CALL xtb_getPCGradient(xtb_TEnvironment, xtb_TResults, double *) XTB_API_SUFFIX__VERSION_2_0_0
Query singlepoint results object for pc gradient in Hartree / Bohr.