The need to find easily renewable and environmentally friendly energy sources alternative to the traditional fossil fuels is nowadays a global quest. The solar energy is a promising candidate and organic solar cells (OSCs) have attracted attention. In this collaboration with Merck, E-CAM scientists have used electronic structure calculations to study how a key magnitude – the HOMO-LUMO band gap – changes with respect to the molecular disposition of the donor-acceptor molecule pair.
MatrixSwitch is a module which acts as an intermediary interface layer between high-level and low-level routines dealing with matrix storage and manipulation. It allows a seamlessly switch between different software implementations of the matrix operations.
DBCSR is an optimized library to deal with sparse matrices, which appear frequently in many kind of numerical simulations.
In DBCSR@MatrixSwitch, DBCSR capabilities have been added to MatrixSwitch as an optional library dependency.
To carry out calculations in serial mode may be too slow sometimes and a parallelisation strategy is needed. Serial/parallel MatrixSwitch employs Lapack/ScaLapack to perform matrix operations, irrespective of their dense or sparse character. The disadvantage of the Lapack/ScaLapack schemes is that they are not optimised for sparse matrices. DBCSR provides the necessary algorithms to solve this problem and in addition is specially suited to work in parallel.
Geomoltools is a set of eight pre- and post-treatment Fortran codes that can be used to easily manipulate molecular geometries, allowing to minimize the average energy obtained for a range of internuclear distances for the dimers of each element, and decrease the computational cost of a DFT calculation.
The set of codes are:
mol2xyz: converts a .mol file into an ordered .xyz file
pastemol: joins two .xyz files
movemol: translates and aligns the molecule with some predefined axes
stackmol: generates (manually or randomly) different stacking arrangements between two molecules
geodiff: compares the internal coordinates of two molecules
xyz2zmt_s: converts the cartesian coordinates contained in a .xyz file into Z-matrix (2 possible formats)
zmt2xyz_s: converts a Z-matrix (from 2 possible formats) into cartesian coordinates
ucubcellgen: calculates the vectors of a unit cell given some atomic coordinates.
Modules source codes can be found here. For a detailed explanation of the main programs, please have a look to this file. A complete tutorial on how to use the different codes from the package Geomoltools in order to manipulate (rotate, translate, join, pack, convert, etc.) molecular geometries, can be found at this address.
Motivation and exploitation
These modules have been used to study the stacking arrangements of acceptor:donor molecules for organic photovolatics polymers by high-throughput computation with the SIESTA code. This set of codes are available under the GNU General Public License (GPL) version 2.