# Interfaces

In Cuby, all calculations of potential and molecular properties are accessed via interfaces - modules of the code that provide unified access to the calculation. These modules are loaded at runtime by Calculation class only when they are needed. Source code of the interfaces is located at directory /classes/interfaces.

The interfaces are listed in file /classes/interfaces/interfaces.yaml. Cuby looks up the record here to find how to call the interface and what types of calculations it provides.

### Parallelization

There are two ways how to run parallel jobs in Cuby. The first one is to ask the program that's being called to run parallel. Some interfaces have this option, look for keyword parallel in the description of the interface. Some jobs consisting of multiple calculations can be parallelized by running these calculations at the same time. Cuby manages this parallelization itself, more details can be found on page Parallelization.

Currently, these interfaces are implemented:

### Calculation

These interfaces provide a standalone calculation of potential, mostly using external software to perform the calculation.

AMBER | Molecular mechanics in AMBER. |

AMBER_NAB | Molecular mechanics NAB program, a part of free suite AmberTools. |

CHARMM | Molecular mechanics in CHARMM. |

deMon | DFT calculation in deMon. |

DFTB+ | Calculation using SCC-DFTB(-D) method. |

Gaussian | Calculations in Gaussiang G03 package. |

Metainterface | Metainterface provides access to more external codes with simple input and output, using instructions from data file to prepare the calculation and read the results. |

Molpro | Calculations in Molpro 2009 package. |

MOPAC | Calculations in MOPAC 2009 package. |

NWChem | QM calculations in NWChem. |

PQS | QM calculations in PQS. |

Turbomole | Interface to QM calculations in Turbomole. |

Void | This interface does not perform any calculation, but returns zeroes as the result. |

Water_FF | Water-only forcefield integrated in cuby. |

### Modifiers

These interfaces provide calculations that modify potential calculated using another method. The implementation has the same form as other interfaces, and can thus be used alone when calculation of the correction only is needed.

Modifiers are added to a calculation using the keyword modifiers. More than one modifiers can be used.

Dispersion | Dispersion correction to be used with DFT and other methods. |

H-bonds for PM6 | Correction of hydrogen bonds in PM6 method. |

Waterball | Spherical boundary conditions for MD in water |

Restraints | Harmonic restraints in internal coordinates |

Cartesian restraints | Restraints in cartesian coordinates |

Simple restraints | Simple atomwise restraints in cartesian coordinates |

Dispersion3 | Third generation dispersion correction (-D3) implemented in cuby. |

Dftd3 | Third generation dispersion correction (-D3) using external program. |

Friesner DFT correction | Empirical dispersion and H-bond corrections for B3LYP. |

### Virtual interfaces

Virtual interfaces implement methods that are composed of more separate calculations. Virtual interface takes care of all the underlying calculations and provides the final results. The input usually defines the separate calculations in their own subsections, which are parsed as described here.

Composite | User-defined combination of multiple calculations. |

Counterpoise correction | Provides counterpoise correction of basis set superposition error (BSSE) in complexes. |

Fragmented calculations | Provides calculation of large systems by decomposing them to small fragments and reconstructing the final results from them. |

MFBA | Multi-level Fragment-Based Approach |

Mixer | Potential mixer |

QM/MM | Two-level calculations |

## Interface functionality

Following table summarizes available functions of the interfaces:

Interface |
Energy |
Gradient |
Hessian |
Atomiccharges |
Externalcharges |
Ghostatoms |
Solvent |

AMBER | — | — | |||||

AMBER_NAB | — | — | — | — | — | ||

deMon | — | — | |||||

DFTB+ | — | — | — | ||||

Gaussian | — | — | — | — | |||

Metainterface | — | — | — | ||||

Molpro | — | — | — | — | |||

Mopac | — | — | — | — | |||

NWChem | — | — | — | — | |||

PQS | — | — | — | — | — | ||

Turbomole | |||||||

Void | — | — | — | ||||

Water_FF | — | — | — | — | — | ||

Dispersion | — | — | — | ||||

Friesner correction | — | — | — | — | — | ||

H-bonds for PM6 | — | — | — | — | — | ||

Waterball | — | — | — | — | — | ||

Restraints | — | — | — | — | — | ||

Cartesian restraints | — | — | — | — | — | ||

Composite | — | — | — | — | — | ||

Counterpoise correction | — | — | — | — | — | ||

Fragmented calculations | — | — | — | — | |||

MFBA | — | — | — | — | |||

QM/MM | — | — | — | — | |||

Mixer | — | — | — | — | — |