Skip to main content

triakern (c47b2)

Triatomic Kernel Module*

by
Marco Pezzella
Debasish Koner
Markus Meuwly

TRIAKERN provides additional potential forms for three atomic systems, beside the usual bond/bond/bending potentials provided in CHARMM. The main purpose of this module is to provide
high-accuracy potentials that reproducing kernels can achieve. The module substitutes the potentials involved, defined in the PSF file, with a new three body term. The module is intended
to be used for spectroscopic purposes and, in case of single Reference potentials, for reactive dynamics.
TRIAKERN is invoked using the TKRN keyword.

References:
[1] Oliver T. Unke and Markus Meuwly, J. Chem. Inf. Model., 2017, 57 (8),
pp 1923–1931.
[2] Seyedeh Maryam Salehi, Debasish Koner and Markus Meuwly, J. Phys. Chem. B 2019, 123, 15, 3282-3290.
[3] Debasish Koner, Juan Carlos San Vicente Veliz, Ad van der Avoird, and Markus Meuwly Phys. Chem. Chem. Phys., 2019, 21, 24976-24983

Syntax :: Syntax of the TRIAKERN module.
Description :: A brief description of the module and how it works.
How to build the grid :: Brief description of how to build a grid.
Example :: Energy conservation for the He--H2 complex from Reference [3]

TKRN { ACTI { {csvfile} (char) {k1} (int) {k2} (int) {k3} (int) {coortype} (char) } } 3x atom selection
{ CLEA }


ACTI: will activate the module, substituting the interactions between the three atoms with the ones implemented in CHARMM.

CLEA: removes all the interactions introduced by the ACTI command.

The following variables need to be specified:

1- csvfile :: the external file is an ordered three dimensional grid of coordinates and energies, see the "How to build the grid" section. This file can be given in csv format or direct as
kernels. Notice that the filename has to be given without extension. The routine checks for the existence of a ".kernel" file with the specified name. If it does not exist, it will look
for the ".csv" file and create the new ".kernel" file.

2- k1, k2, k3 :: three integer numbers that describe the type of kernel for each single dimension. For available kernel types see the "Implemented Kernels" in the EXTBOND documentation.
For additional technical details, see Reference [1].

3-coortypes :: the coordinates used for generating the grid file. Four coordinates types are implemented:
int1 K(theta,r1,r2):: Internal coordinates expressed as two bond lengths and the angle between them. The grid should be provided in the following order: theta,r1, r2, E
int2 K(r1,r2,r3) :: Internal coordinates expressed as three interatomic distances within the involved atoms. The grid should be provided as r1, r2, r3, E.
jaco K(theta,R,r) :: internal coordinates are expressed in Jacobi coordinates (see [2] for an example and details). The grid should be provided as theta,R,r,E.
cust K() :: customizable subroutine. The user can implement their own kernels in this part of the module.

!--------------------------------Description-------------------------------!

TRIAKERN is invoked by the TKRN command. At first the module reads and stores the parameters for the new potentials and the atoms involved. The new definition is applied
only on the current run in CHARMM and no modifications are applied to the PSF file.

No compatibility issues with other modules in CHARMM are observed.

!------------------------- How to build a grid-------------------------!

1 - For a representative number of points of the potential energy surface, perform a set of Ab Initio calculations along the three coordinate (a,b,c).

2 - Save the coordinates and the energies (in AKMA units, distance in Angstroems, angles in degrees and energies in kcal/mol), in increasing order of a,b,c in a csv file.
Please refer to the previous section coortype for each coordinate set.
a1,b1,c1,E1
a1,b1,c2,E2
....
a1,b2,c1,EK
a1,b2,c2,E(K+1)
....
a2,b1,c1,EM
a2,b1,c2,E(M+1)
....
aN,bN,cN,EN

3 -Reference the energies to the desired asymptote E - E_asympt, such that E(r_asympt)=0.


!-----------------------------------Example-----------------------------------!
The Kernel from Reference [2], expressed in int1, is used to run an energy minimization. Test First is then invoked to check if the difference between the analytical and numerical
gradient is consistent within the sixth decimal place.