ChemShell logo

ChemShell Tutorial

Search the manual:

Geometry optimisation in HDLC Coordinates

In geometry optimisation, there are two main things to decide: the coordinate system and the optimisation algorithm (RFO, BFGS, conjugate gradient, steepest descent, ...). The previous examples showed Cartesian coordinates. This is the simplest choice of coordinate system, but is often not optimal for molecular systems as they are highly coupled. DL-FIND can also perform optimisation in delocalised internal coordinates.

Minimisation in delocalised internal coordinates

Delocalized internal coordinates are non-redundant combinations of primitive internals: bond lengths, angles, and torsions. You do not have to specify these coordinates yourself as they are generated automatically from a given set of initial Cartesian coordinates. To use DLCs simply specify coordinates=dlc in the input file, as in dlc.chm in samples/dl-find_hdlc:

read_xyz file=sich6.xyz coords=sich6.pun
dl-find coords=sich6.pun theory=mndo coordinates=dlc

Try experimenting with Cartesian coordinates and DLCs. Which coordinate definition needs more steps to converge?

Minimisation in hybrid delocalised internal coordinates

The construction of DLCs, as used in the last example, scales with N3 and is thus inefficient for large systems. To overcome this, hybrid delocalised internal coordinates use a divide-and-conquer approach. The system is divided into individual parts (residues). In each residue, the coordinates are primitive internals combined with Cartesian coordinates. The latter are required to define the positions of the residues with respect to each other. This algorithm scales linearly with the system size.

To use HDLCs the molecule must be split into residues, as in the file hdlc.chm. Many connections within a residue, and few between the residues are optimal. Thus we define the CH3 groups and the SiH3 group as residues:

set res { {res1 res2} { {1 3 4 5} {2 6 7 8} } }
The optimiser is invoked by
dl-find coords=sich6.pun theory=mndo coordinates=hdlc residues= $res

Note the space between residues= and $res. It is required so that Tcl recognises the list as one argument. Try and remove it. Error messages like "syntax error - arg 1 not associated with = or :" are often an indication for a missing space.

The HDLC coordinate system is described in more detail in the DL-FIND manual pages.

Back to the ChemShell tutorial