Posts for the month of August 2014

Version 1.4.7 features enhanced hydrogen saturation procedure, Ubuntu 14.04, and structure optimization

With v1.4.7 a better hydrogen saturation procedure was implemented.

So far, we dealt with each bond to be saturated one after the other and could handle up to bond degree of three. The problem with the old code was that placement of saturation hydrogen was independent of that for another bond. This could result in hydrogens being placed on top of each other or at least very close. This occurred for example with the SLES molecule when the sulfur bonds were saturated due to its high valency.

Now, we calculate optimal places for saturation globally per molecule prior to the fragmentation procedure. After fragments have been determined and cut bonds need to be saturated, the required positions of the hydrogen are looked up from a table created by this prior calculation. This ensures that hydrogen placed by the saturation of two different bonds are optimally far away from each other.

Note that hydrogen saturation is a perturbation of the underlying Fock matrix (in the case a Hartree-Fock solver is used). Hence, resulting energies are affected and will now be slightly different.

There is a new make target extracheck that runs when mpqc (http://www.mpqc.org/) is installed and can found in the path: It compares resulting values for some molecules against stored ones. There, relative differences (for bond order of 3) of up to 1e-5 are admissable!

Furthermore, the version now compiles on Ubuntu 14.04 systems. Some changes were necessary due to new boost and gcc versions.

Last but not least a simple Structural Optimization procedure based on the fragmentation has been implemented. This is so far just using calculated forces and some fixed stepwidth dampening scheme to look for the minimum. Enhancements are coming up but will take some more time.

Version 1.4.6 features fully automated fragmentation (without JobMarket)

With v1.4.6 the src/Actions/FragmentationAction/FragmentationAutomationAction.cpp can be used even without having [doxygen:install.html JobMarket]. Fragment Jobs (i.e. each fragment is stored as an MPQC file, MPQC is executed on it and the resulting energies and forces are extracted from its output) are launched serially.

Hint: You might be tempted to specify fragment-executable as mpirun -np 6 mpqc in order to have at least multiple threads working on one fragment at a time. However, this will fail cause the option's value is checked whether it exists as a file (and there is no file called "mpirun -np 6 mpqc"). One way out is to create a small script runmpqc.sh as follows

#!/bin/sh

mpirun -np 6 mpqc $@

Make it executable and use it as fragment-executable.

Another feature is that the console log is now shown inside the GUI (there is an extra widget called Log). You can click on an atom's name, e.g. C09, in the text and the atom will be (un)selected to highlight it. This comes in handy when something does not work as expected and you want to check what the code does while having the molecular system in front of you.

Last but not least: Each Action should give STATUS messages about success or failure, visible especially in the GUI (the bar at the bottom of the screen is the status bar).

Contents of the blog

In this blog we will report on changes and highlight some of them in upcoming versions of MoleCuilder.

Most likely, we will also feature small experiments or tell about interesting example usages.