| 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> | 
|---|