[7e19c35] | 1 | <?xml version="1.0" encoding="UTF-8"?>
|
---|
| 2 | <book version="5.0" xmlns="http://docbook.org/ns/docbook"
|
---|
| 3 | xmlns:xlink="http://www.w3.org/1999/xlink"
|
---|
| 4 | xmlns:xi="http://www.w3.org/2001/XInclude"
|
---|
| 5 | xmlns:svg="http://www.w3.org/2000/svg"
|
---|
| 6 | xmlns:m="http://www.w3.org/1998/Math/MathML"
|
---|
| 7 | xmlns:html="http://www.w3.org/1999/xhtml"
|
---|
| 8 | xmlns:db="http://docbook.org/ns/docbook">
|
---|
| 9 | <info>
|
---|
| 10 | <title>MoleCuilder - a Molecule Builder</title>
|
---|
| 11 |
|
---|
| 12 | <author>
|
---|
| 13 | <personname><firstname>Frederik</firstname><surname>Heber</surname></personname>
|
---|
| 14 |
|
---|
| 15 | <affiliation>
|
---|
| 16 | <orgname>heber@ins.uni-bonn.de</orgname>
|
---|
| 17 | </affiliation>
|
---|
| 18 | </author>
|
---|
| 19 |
|
---|
| 20 | <pubdate>08/11/09</pubdate>
|
---|
| 21 | </info>
|
---|
| 22 |
|
---|
| 23 | <chapter>
|
---|
| 24 | <title>Introduction</title>
|
---|
| 25 |
|
---|
| 26 | <section>
|
---|
| 27 | <title>What is MoleCuilder?</title>
|
---|
| 28 |
|
---|
| 29 | <para><command>MoleCuilder</command> allows to construct atomic and
|
---|
| 30 | molecular geometries by a simple point&click approach, combined with
|
---|
| 31 | a powerful library of known structures. It is intended to be a
|
---|
| 32 | CAD-pendant on the nanoscale. Specific emphasis is placed on a
|
---|
| 33 | simple-to-use interface, allowing for the quick-and-dirty building of
|
---|
| 34 | molecular systems. </para>
|
---|
| 35 |
|
---|
| 36 | <para>Geometries should henceforth be simulated with molecular dynamics
|
---|
| 37 | packages, that are either ab-initio or used specific empirical
|
---|
| 38 | potentials to simulate the acting quantum-mechanical forces.</para>
|
---|
| 39 |
|
---|
| 40 | <section>
|
---|
| 41 | <title>Installation requirements</title>
|
---|
| 42 |
|
---|
| 43 | <para>The following packages are required to build the executables
|
---|
| 44 | from its source code.</para>
|
---|
| 45 |
|
---|
| 46 | <para><simplelist>
|
---|
| 47 | <member>C/C++ Compiler (such as GCC)</member>
|
---|
| 48 | </simplelist></para>
|
---|
| 49 |
|
---|
| 50 | <para><simplelist>
|
---|
| 51 | <member>Gnu Scientific Library
|
---|
| 52 | (<uri>http://www.gnu.org/software/gsl/</uri>)</member>
|
---|
| 53 | </simplelist></para>
|
---|
| 54 |
|
---|
| 55 | <para><simplelist>
|
---|
| 56 | <member>Qt3 (<uri>http://www.trolltech.com/</uri>)</member>
|
---|
| 57 | </simplelist>The code has been tested develeoped on Linux/GNU. It
|
---|
| 58 | was also tested with Win/Cygwin.</para>
|
---|
| 59 |
|
---|
| 60 | <para>Note that there are two executables:
|
---|
| 61 | <command>molecuilder</command> and <command>molecuildergui</command>.
|
---|
| 62 | The former is the command-line interfaces which, if no commands are
|
---|
| 63 | given, launches a interactive menu in a terminal session. The latter
|
---|
| 64 | is the graphical user interface with the same functionality as the
|
---|
| 65 | command-line interface but in a different approach, explained in more
|
---|
| 66 | detail in the chapter on the <olink>GUI</olink>.</para>
|
---|
| 67 |
|
---|
| 68 | <para><command>MoleCuilder</command> makes uses of GNU autotools to
|
---|
| 69 | allow for compilation on different platforms. Please be refered to the
|
---|
| 70 | INSTALL file that is included in the archive and the web
|
---|
| 71 | (<uri>http://www.gnu.org/software/autoconf</uri>).</para>
|
---|
| 72 | </section>
|
---|
| 73 |
|
---|
| 74 | <section>
|
---|
| 75 | <title>License</title>
|
---|
| 76 |
|
---|
| 77 | <para>As long as no other license statement is given, MoleCuilder is
|
---|
| 78 | free for user under the GNU Public License (GPL) Version 2 (see
|
---|
| 79 | <uri>www.gnu.de/documents/gpl-2.0.de.html</uri>).</para>
|
---|
| 80 | </section>
|
---|
| 81 | </section>
|
---|
| 82 | </chapter>
|
---|
| 83 |
|
---|
| 84 | <chapter>
|
---|
| 85 | <title>Features</title>
|
---|
| 86 |
|
---|
| 87 | <para>Basically, <command>MoleCuilder</command> parses geometries from
|
---|
| 88 | files, manipulates them and stores them again in files. The manipulation
|
---|
| 89 | can be done either via a command-line interface or via the graphical user
|
---|
| 90 | interface.</para>
|
---|
| 91 |
|
---|
| 92 | <section>
|
---|
| 93 | <title>Concepts</title>
|
---|
| 94 |
|
---|
| 95 | <para>In general, we divide the molecular systems into three different
|
---|
| 96 | components or scales.</para>
|
---|
| 97 |
|
---|
| 98 | <orderedlist>
|
---|
| 99 | <listitem>
|
---|
| 100 | <para>Atoms</para>
|
---|
| 101 |
|
---|
| 102 | <para>Atoms are the undividable objects of the molecular systems.
|
---|
| 103 | They have an element <quote>Z</quote> and three coordinates
|
---|
| 104 | <quote>(x,y,z)</quote>.</para>
|
---|
| 105 | </listitem>
|
---|
| 106 |
|
---|
| 107 | <listitem>
|
---|
| 108 | <para>Molecules</para>
|
---|
| 109 |
|
---|
| 110 | <para>Molecules are conglomeration of atoms, bound or unbound. They
|
---|
| 111 | contain a number of atoms and a specific center in the domain such
|
---|
| 112 | that its atoms are placed relative to this center.</para>
|
---|
| 113 | </listitem>
|
---|
| 114 |
|
---|
| 115 | <listitem>
|
---|
| 116 | <para>Domain</para>
|
---|
| 117 |
|
---|
| 118 | <para>The domain refers to the simulation domain. It is either
|
---|
| 119 | infinite or finite if periodic boundary conditions are to be
|
---|
| 120 | applied. In the latter case, atoms are always shifted back into the
|
---|
| 121 | domain periodically. A domain contains a number of molecules.</para>
|
---|
| 122 | </listitem>
|
---|
| 123 | </orderedlist>
|
---|
| 124 | </section>
|
---|
| 125 |
|
---|
| 126 | <section>
|
---|
| 127 | <title>Command-line interface</title>
|
---|
| 128 |
|
---|
| 129 | <para>The command-line interface reads options or command from the
|
---|
| 130 | command line and executes them sequentially. This may be for example:
|
---|
| 131 | Open an empty file, add 2 hydrogen at ... and add 1 oxygen at ...,
|
---|
| 132 | choose a simulation box, fill the box with this given "filler" molecule,
|
---|
| 133 | save the file. This enables the use of MoleCuilder in simple
|
---|
| 134 | script-files to create a whole range of geometries that only differ in a
|
---|
| 135 | few parameters automatically.</para>
|
---|
| 136 |
|
---|
| 137 | <para>Traditionally, <command>MoleCuilder</command> operates on a single
|
---|
| 138 | configuration file which stores additional information to the pure
|
---|
| 139 | geometry such as parameters for the ab-initio computation. An example
|
---|
| 140 | for the above procedure is given below:</para>
|
---|
| 141 |
|
---|
| 142 | <screen>./molecuilder sample.conf -e <path_to_db> -a H 0. 0. 0. -a H 0. 0.176 0. -a O 1. 0.176 0. ...
|
---|
| 143 | </screen>
|
---|
| 144 |
|
---|
| 145 | <para>The first argument is the executable itself, the second the
|
---|
| 146 | arbitrarilty named file <computeroutput>sample.conf</computeroutput>,
|
---|
| 147 | which may be empty, the third is the command -e immediately followed by
|
---|
| 148 | the path to the databases, then follow step by step each of the above
|
---|
| 149 | commands. A command is always introduced via a hyphen and a single
|
---|
| 150 | letter, e.g. -a for adding an atom to the system. It is followed by a
|
---|
| 151 | fixed number of options. </para>
|
---|
| 152 |
|
---|
| 153 | <para><emphasis>Note that these first three arguments are always
|
---|
| 154 | mandatory.</emphasis> The databases are supplied with the archive and
|
---|
| 155 | usually installed in the same directory as the executables. The output
|
---|
| 156 | file on finish will be <computeroutput>sample.conf</computeroutput> and
|
---|
| 157 | various other formats desired.</para>
|
---|
| 158 |
|
---|
| 159 | <para>Below we have divided the various features into distinct the
|
---|
| 160 | scales upon which the manipulation takes places - single atoms, multiple
|
---|
| 161 | atoms organised as molecules, and all atoms organised by their
|
---|
| 162 | containing domain - and explain in more detail.</para>
|
---|
| 163 |
|
---|
| 164 | <section>
|
---|
| 165 | <title>Manipulate atoms</title>
|
---|
| 166 |
|
---|
| 167 | <para>Here, we explain in detail how to add, remove atoms, change its
|
---|
| 168 | element type, scale the bond in between or measure the bond length or
|
---|
| 169 | angle.</para>
|
---|
| 170 | </section>
|
---|
| 171 |
|
---|
| 172 | <section>
|
---|
| 173 | <title>Manipulate domain</title>
|
---|
| 174 |
|
---|
| 175 | <para>Here, we elaborate on how to duplicate all the atoms inside the
|
---|
| 176 | domain, how the scale the coordinate system, how to center the atoms
|
---|
| 177 | with respect to certain points, how to realign them by given
|
---|
| 178 | constraints, how to mirror and most importantly how to specify the
|
---|
| 179 | domain.</para>
|
---|
| 180 | </section>
|
---|
| 181 |
|
---|
| 182 | <section>
|
---|
| 183 | <title>Merge molecules</title>
|
---|
| 184 |
|
---|
| 185 | <para>As we may create, add and remove molecules, there can be more
|
---|
| 186 | than one, joining of molecules into a single one can be done in a
|
---|
| 187 | number of ways which is explained in this section in greater
|
---|
| 188 | detail.</para>
|
---|
| 189 |
|
---|
| 190 | <section>
|
---|
| 191 | <title>Editing molecules</title>
|
---|
| 192 |
|
---|
| 193 | <para>In this category we explain how to create new empty molecules,
|
---|
| 194 | how to load them from file, how to change their names and filenames,
|
---|
| 195 | how to set them active and inactive, how to parse more atoms into a
|
---|
| 196 | given molecules and how to remove a molecule.</para>
|
---|
| 197 | </section>
|
---|
| 198 |
|
---|
| 199 | <section>
|
---|
| 200 | <title>Merging molecules</title>
|
---|
| 201 |
|
---|
| 202 | <para>As we may create, add and remove molecules, there can be more
|
---|
| 203 | than one, joining of molecules into a single one can be done in a
|
---|
| 204 | number of ways which is explained in this section in greater
|
---|
| 205 | detail.</para>
|
---|
| 206 | </section>
|
---|
| 207 | </section>
|
---|
| 208 | </section>
|
---|
| 209 |
|
---|
| 210 | <section>
|
---|
| 211 | <title linkend="GUI">Graphical user interface</title>
|
---|
| 212 |
|
---|
| 213 | <para>The main point of the GUI is that it renders the atoms and
|
---|
| 214 | molecules visually. These are either represented by the common
|
---|
| 215 | stick-and-ball-model or as tesselated molecular surfaces. Single or
|
---|
| 216 | multiple atoms and molecules can easily be accessed, activated and
|
---|
| 217 | manipulated via tables. Changes made in the tables cause immediate
|
---|
| 218 | update of the visual representation.</para>
|
---|
| 219 |
|
---|
| 220 | <para>This is mostly helpful to design more advanced structures that are
|
---|
| 221 | conceptually difficult to imagine without visual aid.</para>
|
---|
| 222 |
|
---|
| 223 | <section>
|
---|
| 224 | <title>The interface sections</title>
|
---|
| 225 |
|
---|
| 226 | <para></para>
|
---|
| 227 | </section>
|
---|
| 228 | </section>
|
---|
| 229 | </chapter>
|
---|
| 230 | </book>
|
---|