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