The inputs for AICCM are scripts written in Python. All parameters are grouped by dictionaries. Below is an alphabetic list of dictionaries that are available in AICCM. For more detailed information in how to write inputs for AICCM, please take a look at the tutorials.
Dictionary: basis
In AICCM molecular orbitals and crystalline orbitals are expanded in atom centered Gaussian basis functions. The basis has to be given in either in Crystal09, deMon2k, Orca or turbomole format. Several standard basis sets are bundled with AICCM, including our own pob2-TZVP solid state basis sets.
The path where the basis sets are located have to be set via the environment variable ‘AICCM_BASIS_PATH’. The filename is given via the key ‘name’. The extension which corresponds to the file format is given by the variable ‘format’.
>>> ('basis', {
'name' : 'pob2-TZVP',
'format' : 'turbomole',
})
Valid options for the key format are ‘crystal’, ‘demon’, ‘orca’, ‘tm’, ‘turbomole’.
Dictionary: integration
One and two electron integrals are implemented in Python and in a faster C version. Libint is a a library of C/C++ functions for efficient evaluation of several kinds of two-body molecular integrals over Gaussian functions, developed by Edward F. Valeev and Justin T. Fermann. For two eletron repulsion integrals (ERI) libint is highly recommended. Libint comes bundled with AICCM, but has to be compiled and enabled during the setup. Information on how to install and enable libint can be found in the Installation section.
>>> ('integration', {
'integrals' : 'cints',
'ERI' : 'chgpPQ',
'reduceERI' : False,
'tolerance' : 12,
})
The key ‘integrals’ sets the handling of one electron integrals while ‘ERI’ sets the handling of two electron integrals. Valid options are: * ‘integrals’: ‘pyints’, ‘cints’ * ‘ERI’ : ‘pyints’, ‘cintsPQ’, ‘crysPQ’, ‘chgpPQ’, ‘libint’
If ‘reduceERI’ is set to True, the 8-fold permutation symmetry of the ERIs (μν|ρσ) is exploitet. This is well testet and recommended for molecular calculations but not for periodic calculations via the CCM. The accuracy of can be set by the ‘tolerance’ key.
Dictionary: method
The employed quantum chemical method is set in the calculator dictionary. Available methods are Hartree-Fock (‘HF’), Density Functional Theory (‘DFT’), Density Functional Tight Binding (‘DFTB’) and Møller–Plesset perturbation theory 2nd order (MP2). To perform a MP2 (Møller–Plesset perturbation theory) calculation choose HF as a method and set ‘mp2’ to True. Extended Hückel (‘HÜCKEL’) can be used as a calculator, but is primarilly used for the initial guess.
>>> ('calculator', {
'method' : 'HF',
'unrestricted' : 2,
'charge' : 0,
'multiplicity' : 0,
'mp2' : False,
})
If unrestricted is set to 2, the program detects automatically if a restricted or unrestricted calculation is run. This can be overridden by setting it to True or False. If the multiplicity is set to 0 it will also be auto-detected.
Warning
The Information below is outdated. All input parameters are organizend in dictionaries!
Varibale: orth
>>> orth='cholesky'
Variable: txt
This determines where to write the output to. If a ‘-‘ is specified all output is written to the screen (stdout). If a string is given it is written to a file whit the string as a filename.
>>> txt='H2_STO-3G_cints.out',
Dictionary: orbitals
Molecular and crystalline orbitals can be written in several formats.
>>> orbitals = {'printorbitals' : True,
'store' : True,
'filename' : 'HX_STO-3G_cints.gab',
'fileformat' : 'gabedit',
},
Variable: parallel
Dictionary: paropts
Set the boolean variable parallel to True for parallel calculation. There is a dictionary for options to control the
Variable: printlevel
The default value is 2 (‘medium’).
>>> printlevel='medium',
Dictionary: scf
This dictionary controls the Self Consistent Field procedure.
guess: Controls the method used to generate the Density matrix guess
Dictionary: units
The program internally uses Atomic Units (AU). This means that all atomic coordinates and the cell vectors are in Bohr and energies are in Hartree. Nevertheless the program expects the cartesian coordinates and cell vectors in the input to be in Angstrom since this is a more commonly used unit by physicists and chemists. This can be changed via the keywords in the dictionary units.
length: Can either be ‘Angstrom’ or ‘Bohr’. Angstrom is default.
energy Can be ‘Hartree’ or ‘eV’ (electron volt). Hartree is default.
Example:
>>> units = {'energy' : 'Hartree',
'length' : 'Angstrom'},
Dictionary: html
Variables: position, open
The program can produce an html output if you set the variable position to a string value that represent the directory where to put the html and other files produced by the calculation.
For example:
"html" : {"position": "/home/user/reports/report1" }
will create the directory report1 and put in there the html file (plus stylesheets and scripts) produced.
The open parameter if set to True will open the web browser to the newly-created report.