Go to the previous, next section.

Experimental Commands

In this chapter, we describe commands that are more experimental in nature that the rest of CONGEN (although CONGEN is an experimental system throughout!). These commands are more likely to change and/or less trustworthy than other commands in the program.

IMP Command

The IMP command provides access to Inducible Multipole Solvation model calculations, which model solvation effects through inducible multipole moments at the atom centers of the solute.

Inducible Multipole Solvation Theory

Syntax and Usage of the IMP command.

Initializing an IMPS calculation

Syntax

IMP SETUP repeat(imp-setup-options) atom-selection

imp-setup-options ::= [SOLVent real]
                      [INTErior real]
                      [MAXIter integer]
                      [OUTIter integer]
                      [TOLErance real]
                      [radius-edit-options]
                      [charge-edit-options]
                      [KEEP]
                      [very-bogus-experimental-options]

radius-edit-options ::= repeat([RADIus edit-type real atom-selection END])

charge-edit-options ::= repeat([CHARge edit-type real atom-selection END])

edit-type ::= [SET]
              [SCALe]
              [SHIFt]

very-bogus-experimental-options ::= [VOLUme volume-option SCALe real]
                                    [version-options]

volume-options ::= [LINEar]
                   [QUADratic]
                   [CUBIc]
                   [POWEr]
version-options ::= [OVERlap int]
                    [POLAr int]
                    [SELF int]

See section Atom Selection, for the syntax of atom-selection.

Function

The IMP SETUP command initializes the data structure in preparation for solving for the induced multipole moments.

The environment can be defined. SOLVent real sets the solvent dielectric constant (default 78). INTErior real sets the solute interior dielectric constant (default 2).

The iteration control can be set (although this can be postponed or reset on the section Solving for the induced multipole moments command line). MAXIter integer sets the maximum number of iterations (default 20). OUTIter integer prints the convergence status every integer iterations. Zero, the default value, indicates that the convergence status should only be printed at termination. TOLErance real sets the fractional change in the total energy below which iteration will be terminated to real (default 1.E-06).

Atomic parameters can be modified. Multiple RADIus and CHARge options may be used to modify the atomic radii and charges of selected groups of atoms. The modifications include setting them to a value with SET, multiplying them by a some value with SCALe, and adding a particular value to them with SHIFT. These effects of these options are cumulative and applied in the order they appear on the command line. So, for example, RADIUS SCALE 2 END RADIUS SHIFT -1 END would change all radii to twice their original values minus one Angstrom.

The KEEP option requests that the Coulombic tensors be saved between iterations. This saves considerable calculation time, but requires storage of 7*NATOM*(NATOM-1) additional reals.

The "very-bogus-experimental-options" are all part of ongoing efforts to improve the method. These will disappear even before IMPS rises from being listed in the experimental section.

Solving for the induced multipole moments

Syntax

IMP SOLVE repeat(imp-solve-options)

imp-solve-options ::= [MAXIter integer]
                      [OUTIter integer]
                      [TOLErance real]

Function

Performs the iteration to self-consistency of the induced multipoles.

Iteration parameters can be set on the command line. MAXIter integer sets the maximum number of iterations (default 20). OUTIter integer prints the convergence status every integer iterations. Zero, the default value, indicates that the convergence status should only be printed at termination. TOLErance real sets the fractional change in the total energy below which iteration will be terminated to real (default 1.E-06). Values specified on the IMP SOLVE line override those specified with the section Initializing an IMPS calculation command, or any previous IMP SOLVE commands.

Print IMP parameters and results

Syntax


IMP PRINT imp-print-options atom-selection

imp-print-options ::= [repeat(imp-print-energy-options)]
                      [imp-print-non-energy-options atom-selection]


imp-print-non-energy-options ::= [PARAmeters]
                                 [CONVergence]
                                 [ATOMlist]
                                 [EFFEctive]
                                 [COULombic]
                                 [POTEntial]
                                 [DIPOle]

imp-print-energy-options ::= ENERgy [imp-print-energy-calc]

imp-print-energy-calc ::= symbol-name repeat( energy-operator symbol-name )

energy-operator ::= PLUS
                    MINUS

See section Atom Selection, for the syntax of atom-selection.

Function

The IMP PRINT command permits the printing of values in the IMP structure. These include input parameters, as well as calculated effective parameters, and results. In addition, simple sums and differences between total energies from saved IMP results can be printed.

The PARAmeters keyword prints the setup parameters, including requested iteration limits. CONVergence prints the iteration results. ATOMlist prints the input atom parameters (coordinates, charge, and radius). EFFEctive prints the effective atom parameters (effective Born radius, Charge-charge correction, and polarizability). COULombic prints the Coulombic tensors, if they have been kept with the KEEP keyword on the section Initializing an IMPS calculation command line. POTEntial prints the resultant potential and field at each of the atoms. DIPOle prints the resultant induced multipoles at each of the atoms.

The ENERgy keyword with no other specification prints the total energy of the current IMP structure. The total energy of an IMP structure saved with the section Save an IMP structure by name command can be printed by specifying the symbol-name of the saved structure. Sums and differences in total energies can also be produced by including additional PLUS symbol-name and MINUS symbol-name specifications on the command line.

Read an IMP structure from a file

Not currently implemented.

Write an IMP structure to a file

Not currently implemented.

Save an IMP structure by name

Syntax


IMP SAVE symbol-name

Function

The IMP SAVE command takes the current IMP structure and saves it in a symbol table under the specified symbolic name. This structure can be recalled using the section Recall a saved IMP structure command, or be used directly in energy calculations using the section Print IMP parameters and results command. To delete saved structures and free their associated memory use the section Remove a saved IMP structure command.

Recall a saved IMP structure

Syntax


IMP RECALL symbol-name

Function

The IMP RECALL command copies a saved IMP structure (see section Save an IMP structure by name) into the current IMP structure.

Remove a saved IMP structure

Syntax


IMP REMOVE symbol-name

Function

This permanently removes an IMP structure saved with the section Save an IMP structure by name command and frees the associated memory.

Clear the current IMP structure

Not currently implemented.

Generate a PBE-type potential grid

Syntax


IMP TOGRID repeat(imp-togrid-options)

imp-togrid-options ::= [GRID real]
                       [XDIM int]
                       [YDIM int]
                       [ZDIM int]
                       [XORIG real]
                       [YORIG real]
                       [ZORIG real]
                       [CENTER]
                       [REUSE]

Function

The IMP TOGRID command generates a PBE grid containing the electrostatic potential at each point. This is useful for comparison between the methods and for plotting electrostatic contour plots.

It must be noted that the PBE method is superior when it comes to generating a potential grid as it is a natural product of the method. The IMPS method, however, is geared toward obtaining the potential at the atoms, and requires that the potential grid be calculated as an afterthought. The current implementation, also does not approximate the transformation in any way. The potential at each point is take as the sum of the potentials from the final multipoles. As a result the conversion to the grid can be quite time consuming, requiring XDIM*YDIM*ZDIM*NATOM electrostatic potential calculations.

Print atomic volumes

Syntax


IMP VOLUME [PRECision real] atom-selection

Calculate the volume and surface area of the van der Waals surface by a number of methods: Dodd & Theodorou's exact method, a simple method ignoring overlaps of overlaps, a simple cubic gridding method.

This will most certainly be modified to improve the interface in the future.

Usage Examples

IMPS solvation energy calculation


IMP SETUP SOLVENT 78.
IMP SOLVE
IMP SAVE SOLVENT
IMP SETUP SOLVENT 1.
IMP SOLVE
IMP SAVE VACUUM
IMP PRINT ENERGY SOLVENT MINUS VACUUM

The first line sets up the IMPS data structure for the calculation of the induced moments when the external solvent has dielectric constant 78. The second line solves for the self consistent induced moments, and the third line saves the results under the name "SOLVENT". The fourth line sets up a new data structure with the external "solvent" dielectric set to 1 for vacuum. The fifth line solves for the new set of induced moments, and the sixth line saves the results under the name "VACUUM". The seventh line calculates and prints the difference between the total energy for the two saved results.

Deciphering error messages

The error messages are self explanatory. There are obtuse messages such as:

WARNING cosxx1=1+0.0004 reset to 1.

These indicate that the roundoff error has accumulated to the point where a calculated cosine is greater than 1 (or less than -1), which, of course, will cause the ensuing arccosine function call to choke. As long as the value following the plus sign (or minus sign) is small w.r.t. 1 you're okay. If this number is large, it indicates a serious problem in the code, which should be brought to the developers' attention.

Go to the previous, next section.