MoleCuilder - a Molecule Builder FrederikHeber heber@ins.uni-bonn.de 08/11/09 Introduction
What is MoleCuilder? MoleCuilder allows to construct atomic and molecular geometries by a simple point&click approach, combined with a powerful library of known structures. It is intended to be a CAD-pendant on the nanoscale. Specific emphasis is placed on a simple-to-use interface, allowing for the quick-and-dirty building of molecular systems. Geometries should henceforth be simulated with molecular dynamics packages, that are either ab-initio or used specific empirical potentials to simulate the acting quantum-mechanical forces.
Installation requirements The following packages are required to build the executables from its source code. C/C++ Compiler (such as GCC) Gnu Scientific Library (http://www.gnu.org/software/gsl/) Qt4 (http://qt.nokia.com/) The code has been tested develeoped on Linux/GNU. It was also tested with Win/Cygwin. Note that there are two executables: molecuilder and molecuildergui. The former is the command-line interfaces which, if no commands are given, launches a interactive menu in a terminal session. The latter is the graphical user interface with the same functionality as the command-line interface but in a different approach, explained in more detail in the chapter on the GUI. MoleCuilder makes uses of GNU autotools to allow for compilation on different platforms. Please be refered to the INSTALL file that is included in the archive and the web (http://www.gnu.org/software/autoconf).
License As long as no other license statement is given, MoleCuilder is free for user under the GNU Public License (GPL) Version 2 (see www.gnu.de/documents/gpl-2.0.de.html).
Features Basically, MoleCuilder parses geometries from files, manipulates them and stores them again in files. The manipulation can be done either via a command-line interface or via the graphical user interface.
Concepts In general, we divide the molecular systems into three different components or scales. Atoms Atoms are the undividable objects of the molecular systems. They have an element Z and three coordinates (x,y,z). Molecules Molecules are conglomeration of atoms, bound or unbound. They contain a number of atoms and a specific center in the domain such that its atoms are placed relative to this center. Domain The domain refers to the simulation domain. It is either infinite or finite if periodic boundary conditions are to be applied. In the latter case, atoms are always shifted back into the domain periodically. A domain contains a number of molecules.
Command-line interface The command-line interface reads options or command from the command line and executes them sequentially. This may be for example: Open an empty file, add 2 hydrogen at ... and add 1 oxygen at ..., choose a simulation box, fill the box with this given "filler" molecule, save the file. This enables the use of MoleCuilder in simple script-files to create a whole range of geometries that only differ in a few parameters automatically. Traditionally, MoleCuilder operates on a single configuration file which stores additional information to the pure geometry such as parameters for the ab-initio computation. An example for the above procedure is given below: ./molecuilder sample.conf -e <path_to_db> -a H 0. 0. 0. -a H 0. 0.176 0. -a O 1. 0.176 0. ... The first argument is the executable itself, the second the arbitrarilty named file sample.conf, which may be empty, the third is the command -e immediately followed by the path to the databases, then follow step by step each of the above commands. A command is always introduced via a hyphen and a single letter, e.g. -a for adding an atom to the system. It is followed by a fixed number of options. Note that these first three arguments are always mandatory. The databases are supplied with the archive and usually installed in the same directory as the executables. The output file on finish will be sample.conf and various other formats desired. Below we have divided the various features into distinct the scales upon which the manipulation takes places - single atoms, multiple atoms organised as molecules, and all atoms organised by their containing domain - and explain in more detail.
Manipulate atoms Here, we explain in detail how to add, remove atoms, change its element type, scale the bond in between or measure the bond length or angle.
Manipulate domain Here, we elaborate on how to duplicate all the atoms inside the domain, how the scale the coordinate system, how to center the atoms with respect to certain points, how to realign them by given constraints, how to mirror and most importantly how to specify the domain.
Merge molecules As we may create, add and remove molecules, there can be more than one, joining of molecules into a single one can be done in a number of ways which is explained in this section in greater detail.
Editing molecules In this category we explain how to create new empty molecules, how to load them from file, how to change their names and filenames, how to set them active and inactive, how to parse more atoms into a given molecules and how to remove a molecule.
Merging molecules As we may create, add and remove molecules, there can be more than one, joining of molecules into a single one can be done in a number of ways which is explained in this section in greater detail.
Graphical user interface The main point of the GUI is that it renders the atoms and molecules visually. These are either represented by the common stick-and-ball-model or as tesselated molecular surfaces. Single or multiple atoms and molecules can easily be accessed, activated and manipulated via tables. Changes made in the tables cause immediate update of the visual representation. This is mostly helpful to design more advanced structures that are conceptually difficult to imagine without visual aid.
The interface sections