The List of MQCP Modules
Modules on MQCP need to specify inputs and outputs, which correspond to the arguments of functions or subroutines. Technically, inputs and outputs are the reading/writing of files within modules.
read_molecule
This module should be called prior to calling any other module. It prepares the calculation by filling up the MQCP internal data structures: simulation metadata and molecular structure. The human-readable input file provided by the user must contain molecular coordinates and all relevant input parameters.
This module has one input and three output ports.
Inputs:
inp - MQCP input file
Outputs:
apply_basis
The purpose of this module is to create molecular basis set from the file with molecule structure (atomic coordinates and elements) and basis set library.
This module has four input and four output ports.
Inputs:
Outputs:
hsandt
This module computes the following classes of one-electron integrals:
Atomic basis set overlap integrals (\(S\))
Electron-nuclei Coulomb attraction integrals (\(V^\mathrm{en}\))
Electronic kinetic energy integrals (\(T\))
These integrals are stored as matrices and saved into the hst format file. Matrix elements are computed as follows.
Overlap integrals:
Electronic kinetic energy integrals matrix elements:
Electron-nuclei Coulomb attraction matrix elements:
Here, \(\phi_i\) denotes \(i\)-th basis set function, \(Q_n\) and \(R_n\) - are charge and coordinates of \(n\)-th nuclei, \(r\) - is electronic coordinate.
This module has four input and two output ports:
Inputs:
Outputs:
guess_huckel
This module computes the initial guess to the density matrix using the semiempirical extended Huckel method. This method uses Huzinaga’s MINI basis set. The resulting wavefunction is projected on the molecular basis set provided as an input. This method is applicable to the elements from hydrogen up to radon.
This module has five input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
log - log file
Outputs:
guess_hcore
This module computes the initial guess to the density matrix by diagonalization of the one-electron Hamiltonian. This method is applicable to the all elements.
This module has five input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
log - log file
Outputs:
rhf_energy
This module computes the electronic energy and molecular orbitals using closed-shell variant of the Hartree-Fock method. The module uses direct calculation of the two-electron integrals tensor and applies Schwartz inequality to screen out small values of integrals. The self-consistent field equations of the Hartree-Fock method are solved with the help of DIIS method. The module needs an initial guess density matrix for running.
This module has six input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
dmt - initial guess density matrix
log - log file
Outputs:
rhf_gradient
This module computes the electronic energy gradient using closed-shell variant
of the Hartree-Fock method. It takes the wavefunction of the converged
Hartree-Fock calculations as an input, which can be obtained using
rhf_energy
module.
This module has six input and two output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
moe - the converged Hartree-Fock wavefunction
log - log file
Outputs:
dft_rhf_energy
This module computes the electronic energy and molecular orbitals using closed-shell variant of the density functional theory (DFT) method. The module uses direct calculation of the two-electron integrals tensor and applies Schwartz inequality to screen out small values of integrals. The self-consistent field equations are solved with the help of DIIS method. The module needs an initial guess density matrix for running. Grid-DFT contribution is computed with the help of the LibXC library for DFT functionals.
This module has six input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
dmt - initial guess density matrix
log - log file
Outputs:
dft_rhf_gradient
This module computes the electronic energy gradients using closed-shell variant
of the density functional theory (DFT) method. It takes the density of the
converged Kohn-Sham DFT calculation, which can be obtained using
dft_rhf_energy
module. Grid-DFT derivative
contribution is computed with the help of the LibXC library for DFT functionals.
This module has six input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
moe - the converged DFT density
log - log file
Outputs:
dft_urohf_energy
This module computes the electronic energy and molecular orbitals using unrestricted or restricted open-shell density functional theory (DFT) method. The module uses direct calculation of the two-electron integrals tensor and applies Schwartz inequality to screen out small values of integrals. The self-consistent field equations are solved with the help of DIIS method. The module needs an initial guess density matrix for running. Grid-DFT contribution is computed with the help of the LibXC library for DFT functionals.
This module has six input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
dmt - initial guess density matrix
log - log file
Outputs:
dft_urohf_gradient
This module computes the electronic energy gradients using unrestricted or
restricted open-shell density functional theory (DFT) method. It takes the
density of the converged Kohn-Sham DFT calculation, which can be obtained using
dft_urohf_energy
module. Grid-DFT derivative
contribution is computed with the help of the LibXC library for DFT functionals.
This module has six input and three output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
moe - the converged DFT density
log - log file
Outputs:
polm_band
This module runs band structure computations. Bands calculations make sense if the molecular structure is an ordered oligomer with insignificant deviations from periodic regularity.
To carry out such calculations, restrictions are introduced on the order of atoms in the initial structure:
periodically repeated units are given one by one from the one end of the oligomer to the other;
the order of atoms in each unit mast be identical;
terminal groups of atoms (normally terminal H atoms) must be numbered last.
The keyword ATOM_CELL
must be given in the MQCP input
file to define the number if atom in the unit cell. Optional keywords
EN_LOWER
and EN_UPPER
can be specified in the input file to define
desired energy range (in eV). The input example is the following:
The input example of [C2H2]15 oligomer.
natom=62
6.0 0.305450260 -17.455528492 0.000000000
1.0 1.375447159 -17.458106142 0.000000000
6.0 -0.386647810 -16.250082413 0.000000000
1.0 -1.456644709 -16.247504763 0.000000000
6.0 0.311250090 -15.047984853 0.000000000
...
6.0 0.386647810 16.250082413 0.000000000
1.0 1.456644709 16.247504763 0.000000000
6.0 -0.305450260 17.455528492 0.000000000
1.0 -1.375447159 17.458106142 0.000000000
1.0 0.231780490 18.380884162 0.000000000
1.0 -0.231780490 -18.380884162 0.000000000
charge=0
Hamilton= dft
Basis=6-31G(d)
charge=0
scftype=rhf
runtype=energy
atoms_cell=4
en_lower=-12
en_upper=5
$libxc functional=b3lyp5 $end
This module has six input and one output ports:
Inputs:
xyz - molecular structure
inf - MQCP simulation metadata
shl - molecular basis set
hst - one-electron integral matrices
moe - the converged orbitals
log - log file
Outputs:
log - updated log file