Skip to content

Commit

Permalink
Merge branch 'grimme-lab:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
gorges97 committed Sep 10, 2024
2 parents 3e72324 + d42779f commit 1a18540
Show file tree
Hide file tree
Showing 56 changed files with 3,088 additions and 1,079 deletions.
422 changes: 161 additions & 261 deletions .github/workflows/fortran-build.yml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions .github/workflows/stale_label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: "Close Stale"

# The workflow triggers
on:
schedule:
- cron: '0 0 * * *'
issues:
types: [labeled]
pull_request:
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ endif()
# Setup the xtb Project
project(
"xtb"
VERSION "6.7.0"
VERSION "6.7.1"
LANGUAGES "C" "Fortran"
)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ features reality:
- S. Dohm ([@thch-dohm](https://github.com/thch-dohm))
- S. Ehlert ([@awvwgk](https://github.com/awvwgk))
- S. Ehrlich
- I. Gerasimov ([@FulgurIgor](https://github.com/fulgurigor))
- I. Gerasimov ([@foxtran](https://github.com/foxtran))
- [S. Grimme](https://www.chemie.uni-bonn.de/pctc/mulliken-center/grimme/) ([@stefangrimme](https://github.com/stefangrimme))
- C. Hölzer ([@hoelzerC](https://github.com/hoelzerc))
- A. Katbashev ([@Albkat](https://github.com/albkat))
Expand Down
110 changes: 68 additions & 42 deletions include/xtb.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@

#define XTB_API_ENTRY
#define XTB_API_CALL
#define XTB_API_SUFFIX__VERSION_1_0_0
#define XTB_API_SUFFIX__VERSION_2_0_0

/// Define proprocessor to allow to check for specific API features
#define XTB_API_VERSION 10000
#define XTB_API_VERSION 20000
#define XTB_VERSION_6_3_0 1
#define XTB_VERSION_6_3_1 1
#define XTB_VERSION_6_3_2 1
Expand Down Expand Up @@ -69,48 +69,48 @@ typedef struct _xtb_TResults* xtb_TResults;

/// Returns API version as 10000 * major + 100 * minor + 1 * patch
extern XTB_API_ENTRY int XTB_API_CALL
xtb_getAPIVersion() XTB_API_SUFFIX__VERSION_1_0_0;
xtb_getAPIVersion() XTB_API_SUFFIX__VERSION_2_0_0;

/*
* Calculation environment
**/

/// Create new xtb calculation environment object
extern XTB_API_ENTRY xtb_TEnvironment XTB_API_CALL
xtb_newEnvironment(void) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_newEnvironment(void) XTB_API_SUFFIX__VERSION_2_0_0;

/// Delete a xtb calculation environment object
extern XTB_API_ENTRY void XTB_API_CALL
xtb_delEnvironment(xtb_TEnvironment* /* env */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_delEnvironment(xtb_TEnvironment* /* env */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Check current status of calculation environment
extern XTB_API_ENTRY int XTB_API_CALL
xtb_checkEnvironment(xtb_TEnvironment /* env */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_checkEnvironment(xtb_TEnvironment /* env */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Show and empty error stack
extern XTB_API_ENTRY void XTB_API_CALL
xtb_showEnvironment(xtb_TEnvironment /* env */,
const char* /* message */) XTB_API_SUFFIX__VERSION_1_0_0;
const char* /* message */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Return and empty error stack
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getError(xtb_TEnvironment /* env */,
char* /* buffer */,
const int* /* buffersize */) XTB_API_SUFFIX__VERSION_1_0_0;
const int* /* buffersize */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Bind output from this environment
extern XTB_API_ENTRY void XTB_API_CALL
xtb_setOutput(xtb_TEnvironment /* env */,
const char* /* filename */) XTB_API_SUFFIX__VERSION_1_0_0;
const char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Release output unit from this environment
extern XTB_API_ENTRY void XTB_API_CALL
xtb_releaseOutput(xtb_TEnvironment /* env */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_releaseOutput(xtb_TEnvironment /* env */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Set verbosity of calculation output
extern XTB_API_ENTRY void XTB_API_CALL
xtb_setVerbosity(xtb_TEnvironment /* env */,
int /* verbosity */) XTB_API_SUFFIX__VERSION_1_0_0;
int /* verbosity */) XTB_API_SUFFIX__VERSION_2_0_0;

/*
* Molecular structure data class
Expand All @@ -125,58 +125,58 @@ xtb_newMolecule(xtb_TEnvironment /* env */,
const double* /* charge in e */,
const int* /* uhf */,
const double* /* lattice [3][3] */,
const bool* /* periodic [3] */) XTB_API_SUFFIX__VERSION_1_0_0;
const bool* /* periodic [3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Delete molecular structure data
extern XTB_API_ENTRY void XTB_API_CALL
xtb_delMolecule(xtb_TMolecule* /* mol */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_delMolecule(xtb_TMolecule* /* mol */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Update coordinates and lattice parameters (quantities in Bohr)
extern XTB_API_ENTRY void XTB_API_CALL
xtb_updateMolecule(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
const double* /* positions [natoms][3] */,
const double* /* lattice [3][3] */) XTB_API_SUFFIX__VERSION_1_0_0;
const double* /* lattice [3][3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/*
* Singlepoint calculator
**/

/// Create new calculator object
extern XTB_API_ENTRY xtb_TCalculator XTB_API_CALL
xtb_newCalculator(void) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_newCalculator(void) XTB_API_SUFFIX__VERSION_2_0_0;

/// Delete calculator object
extern XTB_API_ENTRY void XTB_API_CALL
xtb_delCalculator(xtb_TCalculator* /* calc */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_delCalculator(xtb_TCalculator* /* calc */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Load GFN0-xTB calculator
extern XTB_API_ENTRY void XTB_API_CALL
xtb_loadGFN0xTB(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
char* /* filename */) XTB_API_SUFFIX__VERSION_1_0_0;
char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Load GFN1-xTB calculator
extern XTB_API_ENTRY void XTB_API_CALL
xtb_loadGFN1xTB(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
char* /* filename */) XTB_API_SUFFIX__VERSION_1_0_0;
char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Load GFN2-xTB calculator
extern XTB_API_ENTRY void XTB_API_CALL
xtb_loadGFN2xTB(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
char* /* filename */) XTB_API_SUFFIX__VERSION_1_0_0;
char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Load GFN-FF calculator
extern XTB_API_ENTRY void XTB_API_CALL
xtb_loadGFNFF(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
char* /* filename */) XTB_API_SUFFIX__VERSION_1_0_0;
char* /* filename */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Add a solvation model to calculator (requires loaded parametrisation)
extern XTB_API_ENTRY void XTB_API_CALL
Expand All @@ -185,12 +185,13 @@ xtb_setSolvent(xtb_TEnvironment /* env */,
char* /* solvent */,
int* /* state */,
double* /* temp */,
int* /* grid */) XTB_API_SUFFIX__VERSION_1_0_0;
int* /* grid */,
char* /* solvent model */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Unset the solvation model
extern XTB_API_ENTRY void XTB_API_CALL
xtb_releaseSolvent(xtb_TEnvironment /* env */,
xtb_TCalculator /* calc */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_TCalculator /* calc */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Add a external charge potential to calculator (only supported in GFN1/2-xTB)
extern XTB_API_ENTRY void XTB_API_CALL
Expand All @@ -199,119 +200,144 @@ xtb_setExternalCharges(xtb_TEnvironment /* env */,
int* /* n */,
int* /* numbers [n] */,
double* /* charges [n] */,
double* /* positions [n][3] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* positions [n][3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Unset the external charge potential
extern XTB_API_ENTRY void XTB_API_CALL
xtb_releaseExternalCharges(xtb_TEnvironment /* env */,
xtb_TCalculator /* calc */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_TCalculator /* calc */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Set numerical accuracy of calculator in the range of 1000 to 0.0001
extern XTB_API_ENTRY void XTB_API_CALL
xtb_setAccuracy(xtb_TEnvironment /* env */,
xtb_TCalculator /* calc */,
double /* accuracy */) XTB_API_SUFFIX__VERSION_1_0_0;
double /* accuracy */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Set maximum number of iterations for self-consistent TB calculators
extern XTB_API_ENTRY void XTB_API_CALL
xtb_setMaxIter(xtb_TEnvironment /* env */,
xtb_TCalculator /* calc */,
int /* iterations */) XTB_API_SUFFIX__VERSION_1_0_0;
int /* iterations */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Set electronic temperature for level filling in tight binding calculators in K
extern XTB_API_ENTRY void XTB_API_CALL
xtb_setElectronicTemp(xtb_TEnvironment /* env */,
xtb_TCalculator /* calc */,
double /* temperature */) XTB_API_SUFFIX__VERSION_1_0_0;
double /* temperature */) XTB_API_SUFFIX__VERSION_2_0_0;

//// Calculate CPCM-X solvation energy
extern XTB_API_ENTRY void XTB_API_CALL
xtb_cpcmx_calc(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
xtb_TResults /* res */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Perform singlepoint calculation
extern XTB_API_ENTRY void XTB_API_CALL
xtb_singlepoint(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
xtb_TResults /* res */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_TResults /* res */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Perform hessian calculation
extern XTB_API_ENTRY void XTB_API_CALL
xtb_hessian(xtb_TEnvironment /* env */,
xtb_TMolecule /* mol */,
xtb_TCalculator /* calc */,
xtb_TResults /* res */,
double* /* hessian */,
int* /* atom_index_list */,
int* /* step_size */,
double* /* dipole_gradient */,
double* /* polarizability_gradient */) XTB_API_SUFFIX__VERSION_2_0_0;

/*
* Calculation results
**/

/// Create new singlepoint results object
extern XTB_API_ENTRY xtb_TResults XTB_API_CALL
xtb_newResults(void) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_newResults(void) XTB_API_SUFFIX__VERSION_2_0_0;

/// Delete singlepoint results object
extern XTB_API_ENTRY void XTB_API_CALL
xtb_delResults(xtb_TResults* /* res */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_delResults(xtb_TResults* /* res */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Create copy from a singlepoint results object
extern XTB_API_ENTRY xtb_TResults XTB_API_CALL
xtb_copyResults(xtb_TResults /* res */) XTB_API_SUFFIX__VERSION_1_0_0;
xtb_copyResults(xtb_TResults /* res */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for energy in Hartree
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getEnergy(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* energy */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* energy */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for solvation energy in Hartree
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getSolvationEnergy(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* energy */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for gradient in Hartree / Bohr
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getGradient(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* gradient [natoms][3] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* gradient [natoms][3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for pc gradient in Hartree / Bohr
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getPCGradient(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* gradient [natoms][3] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* gradient [natoms][3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for virial in Hartree
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getVirial(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* virial [3][3] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* virial [3][3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for dipole in e Bohr
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getDipole(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* dipole [3] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* dipole [3] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for partial charges in e
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getCharges(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* charges [natoms] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* charges [natoms] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for bond orders
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getBondOrders(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* wbo [natoms][natoms] */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* wbo [natoms][natoms] */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for the number of basis functions
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getNao(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
int* /* nao */) XTB_API_SUFFIX__VERSION_1_0_0;
int* /* nao */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for orbital energies in Hartree [nao]
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getOrbitalEigenvalues(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* emo */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* emo */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for occupation numbers [nao]
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getOrbitalOccupations(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* focc */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* focc */) XTB_API_SUFFIX__VERSION_2_0_0;

/// Query singlepoint results object for orbital coefficients [nao][nao]
extern XTB_API_ENTRY void XTB_API_CALL
xtb_getOrbitalCoefficients(xtb_TEnvironment /* env */,
xtb_TResults /* res */,
double* /* c */) XTB_API_SUFFIX__VERSION_1_0_0;
double* /* c */) XTB_API_SUFFIX__VERSION_2_0_0;

#ifdef __cplusplus
}
Expand Down
23 changes: 21 additions & 2 deletions man/xtb.1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ OPTIONS

*--tblite* ::
use tblite library as implementation for xTB

--ceh* ::
calculate CEH (Charge-Extended Hückel model) charges and write them to ceh.charges file

*--ptb* ::
performs single-point calculation with the density tight-binding method PTB.
Expand Down Expand Up @@ -121,15 +124,28 @@ OPTIONS
'ethylacetate', 'furane', 'hexandecane', 'hexane', 'methanol', 'nitromethane',
'octanol', 'woctanol', 'phenol', 'toluene', 'thf', 'water'.
The solvent input is not case-sensitive.
The Gsolv reference state can be chosen as 'reference' or 'bar1M' (default).
The Gsolv reference state can be chosen as 'reference', 'bar1M', or 'gsolv' (default).

*-g, --gbsa* 'SOLVENT' ['STATE']::
generalized born (GB) model with solvent accessable surface (SASA) model,
available solvents are 'acetone', 'acetonitrile', 'benzene' (only GFN1-xTB),
'CH2Cl2', 'CHCl3', 'CS2', 'DMF' (only GFN2-xTB), 'DMSO', 'ether', 'H2O',
'methanol', 'n-hexane' (only GFN2-xTB), 'THF' and 'toluene'.
The solvent input is not case-sensitive.
The Gsolv reference state can be chosen as 'reference' or 'bar1M' (default).
The Gsolv reference state can be chosen as 'reference', 'bar1M', or 'gsolv' (default).

*--cosmo* 'SOLVENT/EPSILON'::
domain decomposition conductor-like screening model (ddCOSMO)
available solvents are all solvents that are available for alpb.
Additionally, the dielectric constant can be set manually or an ideal conductor
can be chosen by setting epsilon to infinity.

*--tmcosmo* 'SOLVENT/EPSILON'::
same as --cosmo, but uses TM convention for writing the .cosmo files.

*--cpcmx* 'SOLVENT'::
extended conduction-like polarizable continuum solvation model (CPCM-X),
available solvents are all solvents included in the Minnesota Solvation Database.

*--cma* ::
shifts molecule to center of mass and transforms cartesian coordinates
Expand Down Expand Up @@ -346,6 +362,9 @@ OUTPUT
*charges*::
contains Mulliken partial charges calculated in SCC

*ceh.charges*::
contains CEH (Charge-Extended Hückel) charges

*wbo*::
contains Wiberg bond order calculated in SCC, *--namespace* compatible.

Expand Down
Loading

0 comments on commit 1a18540

Please sign in to comment.