/libcalexxx

C++ library providing a wrapper for the seismometer simulation program calex.

Primary LanguageC++

/*! \file libcalexxx/README
 * \brief libcalexxx: Library to use Erhard Wielandt's calex program together
 * with liboptimizexx.
 *
 * ----------------------------------------------------------------------------
 *
 * $Id: $
 * 
 * Copyright (c) 2012 by Daniel Armbruster (Black Forest observatory - BFO)
 *
 * libcalexxx: Library to use Erhard Wielandt's calex program together
 * with liboptimizexx. 
 *
 * This file contains:
 *  - documentation of namespace optimize
 *  - mainpage text
 * 
 * REVISIONS and CHANGES 
 *  - 15/03/2012   V1.0   Daniel Armbruster
 * 
 * ============================================================================
 */

/*===========================================================================*/

/*! \mainpage

\author Daniel Armbruster
\since March 2012
\date March 2012
\version V0.1
$Id: $

\warning
<b>The library until now only provides a parser \c calex.out files with up to \c
4 parameters to optimize. Parsing such files will fail in case more parameters
are given.
</b>

  Contents of this page:
  - \ref sec_concept
  - \ref sec_dependencies
  - \ref sec_libboost_issues


\section sec_concept Concept of the library
\a libcalexxx is a small library acctually acting as a wrapper for <em>Erhard
Wielandt's</em> 
<a href="http://www.software-for-seismometry.de/software/calex/">calex</a>
seimometer simulation program making use of impulse response invariant filters.
For that reason the library provides a class to generate \a calex parameter
files and to read relevant data from \a calex \c out files.\n
Additionally this library implements the possibility that simple system
parameters both work as calex::SystemParameter one one hand and on the other
hand can be passed as a grid system parameter
(optimize::StandardSystemParameter) to the global algorithm of \a
liboptimizexx. Besides this library declares the class template
calex::CalexApplication which implements a concrete parameter space visitor.
Parameter space visitors actually serve as applications (forward algorithms) for
a global algorithm of \a liboptimizexx. Global algorithms will administer
calex::CalexApplication and will send it through the \a liboptimizexx parameter
space grid regarding their own rules.\n

\section sec_dependencies Library dependencies
As mentioned above \a libcalexxx depends heavily on \a liboptimizexx.
Furthermore while building the library the following
<a href="http://www.boost.org/">Boost C++ libraries</a> must be provided:
 - <a href="http://www.boost.org/doc/libs/release/libs/filesystem/"> Boost
   filesystem</a>
 - <a href="http://www.boost.org/doc/libs/release/libs/thread/">Boost
   thread</a>.\n
   Notice that \a liboptimizexx depends on boost's thread library, too.

\section sec_libboost_issues Boost dependency issues
To install the library there must be taken care to set the environment variable
\c BOOST_FILESYSTEM_VERSION appropriately.\n
To ease the transition, Boost releases 1.44 through 1.47 supply both V2 and
V3 of the filesystem library so that setting the variable according
\code
BOOST_FILESYSTEM_VERSION=3
\endcode
in your \a ~/.bashrc file will do its job. Boost releases greater than 1.47 do
not support anymore Version 2 of the filesystem library such that setting the
variable to \c 3 is highly recommended.\n
In case there are minor releases than Boost version 1.44 in use just set this
variable to
\code
BOOST_FILESYSTEM_VERSION=2
\endcode
For further information read the <a
href="http://www.boost.org/doc/libs/release/libs/filesystem/">Boost Filesystem
library documentation</a>. Regarding \a libcalexxx if V2 is in use additionally
there must be a linked against <a
href="http://www.boost.org/doc/libs/release/libs/thread/">Boost Thread library
</a>.

\note While testing V3 of the Boost filesystem library in Boost release 1.44 
filenames weren't read properly which means that always the first letter always
had been cut off. As a consequence I recommend using V2 of the Boost filesystem
library if working with Boost release 1.44.

*/