CUBY logo

Interfaces

Difference between revisions from 2011/10/17 13:32 and 2011/10/13 13:18.
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.

|t [AMBER|AMBER interface]|t Molecular mechanics in AMBER.|
|t [AMBER_NAB|AMBER_NAB interface]|t Molecular mechanics NAB program, a part of free suite AmberTools.|
|t [CHARMM|CHARMM interface]|t Molecular mechanics in CHARMM.|
|t [deMon|deMon interface]|t DFT calculation in deMon.|
|t [DFTB+|DFTB interface]|t Calculation using SCC-DFTB(-D) method.|
|t [Gaussian|Gaussian interface]|t Calculations in Gaussiang G03 package.|
|t [Metainterface]|t 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.|
|t [Molpro|Molpro interface]|t Calculations in Molpro 2009 package.|
|t [MOPAC|MOPAC interface]|t Calculations in MOPAC 2009 package.|
|t [NWChem|NWchem interface]|t QM calculations in NWChem.|
|t [PQS|PQS interface]|t QM calculations in PQS.|
|t [Turbomole|Turbomole interface]|t Interface to QM calculations in Turbomole.|
|t [Void|Void interface]|t This interface does not perform any calculation, but returns zeroes as the result.|
|t [Water_FF|Water_FF interface]|t 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.

|t [Dispersion|Dispersion interface]|t Dispersion correction to be used with DFT and other methods.|
|t [H-bonds for PM6|H-bonds correction interface]|t Correction of hydrogen bonds in PM6 method.|
|t [Waterball|Waterball interface]|t Spherical boundary conditions for MD in water|
|t [Restraints|Restraints interface]|t Harmonic restraints in internal coordinates|
|t [Cartesian restraints|Cartesian restraints interface]|t Restraints in cartesian coordinates|
|t [Simple restraints|Simple restraints interface]|t Simple atomwise restraints in cartesian coordinates|
|t [Dispersion3|Dispersion3 interface]|t Third generation dispersion correction (-D3) implemented in cuby.|
|t [Dftd3|Dftd3 interface]|t Third generation dispersion correction (-D3) using external program.|
|t [Friesner DFT correction|Friesner_correction interface]|t 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.
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|Input].
|t [Composite|Interface Composite]|t User-defined combination of multiple calculations.|
|t [Counterpoise correction|Interface Counterpoise]|t Provides counterpoise correction of basis set superposition error (BSSE) in complexes.|
|t [Fragmented calculations|Fragmented interface]|t Provides calculation of large systems by decomposing them to small fragments and reconstructing the final results from them.|
|t [MFBA|MFBA interface]|t Multi-level Fragment-Based Approach|
|t [Mixer|Mixer interface]|t Potential mixer|
|t [QM/MM|QMMM interface]|t Two-level calculations|

!Interface functionality
Following table summarizes available functions of the interfaces:
{html}
<table class="wikitable" style="text-align:center;">
<tr style="background-color:#ddd;">
<td style="vertical-align: bottom; text-align:right;"><strong>Interface</strong></td>
<td style="vertical-align: bottom; "><strong>Energy</strong></td>
<td style="vertical-align: bottom; "><strong>Gradient</strong></td>
<td style="vertical-align: bottom; "><strong>Hessian</strong></td>
<td style="vertical-align: bottom; "><strong>Atomic<br />charges</strong></td>
<td style="vertical-align: bottom; "><strong>External<br />charges</strong></td>
<td style="vertical-align: bottom; "><strong>Ghost<br />atoms</strong></td>
<td style="vertical-align: bottom; "><strong>Solvent</strong></td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=AMBER+interface">AMBER</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=AMBER_NAB+interface">AMBER_NAB</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=deMon+interface">deMon</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td style="vertical-align: top; text-align:right;"><a href="./?page=DFTB+interface">DFTB+</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Gaussian+interface">Gaussian</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Metainterface">Metainterface</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Molpro+interface">Molpro</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=MOPAC+interface">Mopac</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=NWChem+interface">NWChem</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=PQS+interface">PQS</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Turbomole+interface">Turbomole</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Void+interface">Void</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Water_FF+interface">Water_FF</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Dispersion+interface">Dispersion</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Friesner_correction+interface">Friesner correction</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=H-bonds+correction+interface">H-bonds for PM6</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Waterball+interface">Waterball</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Restraints+interface">Restraints</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Cartesian+restraints+interface">Cartesian restraints</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Interface+Composite">Composite</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Interface+Counterpoise">Counterpoise correction</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Fragmented+interface">Fragmented calculations</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=MFBA+interface">MFBA</a></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=QMMM+interface">QM/MM</a></td><td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
<tr>
<td   style="vertical-align: top; text-align:right;"><a href="./?page=Mixer+interface">Mixer</a></td><td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  ><img src="images/tick.png" alt="YES" class="bare" /></td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
<td  >&mdash;</td>
</tr>
</table>
{/html}