Polarizabilities
Calculate atomic dynamic polarizabilities.
Last updated
Was this helpful?
Calculate atomic dynamic polarizabilities.
Last updated
Was this helpful?
Accurate dynamic polarizabilities can be determined by time-dependent density functional theory (TD-DFT) when applying a large atomic orbital basis set. Such reference TD-DFT calculations are, however, computationally demanding. To overcome this computational bottleneck kallisto
uses a set of pre-calculated dynamic polarizabilities () for each atom and maps the environmental effect (so-called many-body effect) to atomic coordination numbers. Hence the problem is shifted from calculating dynamic polarizabilities to calculating atomic coordination numbers and interpolate the atomic reference systems. This procedure comes along with a tremendous increase in efficiency and overcomes furthermore numerical issues that could occur in TD-DFT calculations. The accuracy of such polarizabilities is high such that a mean absolute deviation below 5% can be obtained with respect to experimentally derived molecular polarizabilities for small sized organic molecules (see below).
We introduced the concept of (CNs) earlier. We calculate reference CN-values for each reference system and map all calculated TD-DFT polarizabilities to reference CN-values. Now we have a simple mapping from CN-values to TD-DFT polarizabilities, which is used within a Gaussian weighting scheme together with system-specific CN-values for a system of interest.
The above equation sums over all pre-calculated TD-DFT polarizabilities (count of Nj,ref
) each having a weight associated such that all weights sum up to unity. So how do we get the weighting coefficients? This is exactly where the CNs become important
with the calculated CNs for the system of interest and of all reference systems and beta = 6
. The equation above uses the limit Ns
for one of the summations, which is determined separately for each reference system (for those details ).Note that the dynamic reference polarizabilities can be pre-scaled to, e.g., incorporate atomic-charge information as has been introduced recently by . This approach uses an empirical charge-scaling function (zeta
) to re-scale reference dynamic polarizabilities with respect to that enter afterwards the Gaussian weighing as discussed above, respectively.
We obtain molecular polarizabilities as the sum of all atomic ones. This approximation offers the possibility to calculate accurate molecular polarizabilities efficiently.
Measure in %
MAD
3.1
4.7
10.9
MD
-2.6
-2.2
-0.8
RMSD
3.1
6.8
20.6
AMAX
16.9
22.3
74.4
MAD = Mean Absolute Deviation; MD = Mean Deviation; RMSD = Root-Mean Squared Deviation; AMAX = Absolut MAXimum deviation.
Timings* in seconds
tCPU
0.3
9.9
152.0
To calculate atomic dynamic polarizabilities for a neutral charged Alanine-Glycine molecule, we call the subcommand alp
Now we obtain a list of atomic dynamic polarizabilities. Molecular polarizabilities can be calculated by using the molecular
flag. We can furthermore calculate dynamic polarizabilities for the cationic (or anionic) Alanine-Glycine molecule by incorporating the chrg
option as described in the subcommand definition.
The direct comparison to experimental polarizabilities shows the great success of the implemented method. As can be seen in the tables below kallisto
calculates molecular polarizabilities (for 47 organic molecules - see with overall 135 structures) that are comparable to accurate quantum chemistry calculations (MP2/def2-QZVPD), but several orders of magnitude faster! We furthermore compare to the recently published AlphaML
model (CCSD mode) and to the dftd4
API, which uses a pre-compiled Fortran library as a backend.
********
********
********
*Total amount of computation time to obtain molecular polarizabilities for 45 organic molecules including: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and ). Timings for dftd4
and kallisto
have been obtained by and are averaged over five runs on a Skylake, Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz. AlphaML
values were taken from the printout of their . Total timing is calculated as the sum of all contributions.