Systems interesting from biology or nanotechnology point of view have sizes spanning several order of magnitude. Effects important in the behavior of such compounds also have different nature: some of them can be treated on a classical footing, other need to be studied at quantum level. Methods that allow to study such systems over several time or length scales are called multiscale methods. Many of the methods we implement are collected in the ERGO software package.
In principle, one would like to treat entire compounds as exactly as possible, at the quantum level. In practice, such calculations would be too time consuming. A usual approximation is to describe part of the system using classical principles, where the interactions between atoms are described by empirical, parametrized potentials. An alternative way to treat large systems is to reformulate the algorithms computing the interactions at the quantum level in such a way that the computation time and memory usage is linearly proportional to the system size. This often involves implementation of untrivial computational algorithms and intimate knowledge of computer systems. We use so-called Density Functional Theory (DFT) which allows for such algorithms.
We pursue several goals necessary to apply DFT to large molecular systems:
Dft exchange and correlation contribution is computed in a matrix representation by numerical integration. This process scales theoretically like N3: the matrix representation has number of elements proportional to N2, and the integration is one over a set of grid points: size of this set is proportional to the system size.
Read more about integration of DFT exchange and correlation contributions and ways to compute this interaction in a time scaling linearly with the system size.
Coulomb integrals express long-distance (in molecular scale) interaction between electrons in the molecule. One splits the nonvanishing Coulomb integrals into two groups:
Read more about Coulomb matrix evaluation.
Full matrices grow quadratically with the system size and can get very memory-consuming for large systems. Many of the matrix values can be null, though. It is imperative to store and use only non-zero elements of the matrices. The used method should optimally not introduce any noticeble overhead for full matrices appearing for smaller molecules.
Read more about sparse representation of matrices.
Large molecules present much mmore of a challenge than a small ones - the obvious reason is larger dimensionality of the optimization problem. The self-consistent convergence scheme must start from a place close to a desired solution and has to be robust in itself so that the optimization goes in the right direction.
Read more about improved starting guesses.
The developed algorithms have been implemented in two quantum chemistry programs: