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.