/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2010 University of Bonn. All rights reserved. * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. */ /** * \file molecules.dox * * Created on: Oct 31, 2011 * Author: heber */ /** * \page molecules Molecules * * Molecule is the next important structure to atom. * * Molecule are especially important for \ref fragmentation and lots of * their (old) code comes from this theme. * * Basically, a molecule is just a conglomerate of atoms whose nodes form a * connected subgraph of the entire molecular system. * * A molecule has its own internal array of atoms that may be traversed. * Similar concepts as with the World with regards to const and non-const * traversal, the former involving an Observer mechanism, come into play here * as well. * * \section molecules-formula Formula * * One important concept of molecules is the associated Formula. It, as well * as the AtomCount, are implemented as Cachables, i.e. they are aware of * changes to the contained atoms via the Observer mechanism but update * themselves only when requested. * * Formulas are very powerful because they can also be used as a Descriptor * (\ref descriptors) to access only a certain subsets of molecules, e.g. * "H2O" selects all water molecules. * * \section molecules-bondgraph Notes on the BondGraph * * Note that molecules are very volatile: Changing the bond graph also changes * most of the present molecules at this time as so far there is no update * mechanism. Hence, be aware of it. * * * \date 2011-10-31 * */