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.

Basis Sets

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’.

Electronic Integrals

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.

Quantum Chemical Method

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.


The Information below is outdated. All input parameters are organizend in dictionaries!


Varibale: orth

  • symmetric: Symmetric Orthogonalization
  • canonical: Canonical Orthogonalization
  • cholesky : Cholesky Orthogonalization
>>> orth='cholesky'

Output Handling

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.

  • printorbitals: True/False
  • store: True/False
  • filename
  • fileformat: gabedit, moldn, text
>>> orbitals = {'printorbitals'  : True,
                'store' : True,
                'filename' : 'HX_STO-3G_cints.gab',
                'fileformat' : 'gabedit',

Parallel Calculations

Variable: parallel

Dictionary: paropts

Set the boolean variable parallel to True for parallel calculation. There is a dictionary for options to control the

Printing Options

Variable: printlevel

The default value is 2 (‘medium’).

  • 0 or ‘quiet’: No output at all.
  • 1 or ‘low’: Minimum output.
  • 2 or ‘medium’: Normal print.
  • 3 or ‘high’: Detailed output.
  • 4 or ‘very high’: Print almost everything.
  • 5 or ‘debug’: This is used for debugging purposes only.
>>> printlevel='medium',


Dictionary: scf

This dictionary controls the Self Consistent Field procedure.

guess: Controls the method used to generate the Density matrix guess

  • hcore: Density matrix is chosen as a zero matrix.
  • datom: Density matrix is calculated from atomic densities.
  • huckel: Density matrix is calculated using the Extended Huckel method. Available only for restricted calculations.
  • identity: for debugging purposes, the Density matrix is choosen as an Identity matrix.
‘scf’, {‘energy’ : 1.0e-8,
‘density’: 1.0e-6, ‘diis’ : False, ‘ioscf’ : False, ‘direct’ : False, ‘maxiter’: 50,}


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.


>>> 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.

Table Of Contents

Previous topic


Next topic


This Page