/*************************************************************************************
* *
* ***** OpenThermo ***** *
* Calculation of thermodynamic functions from molecular data *
* Copyright 2008 Konstantin Tokarev <annulen@users.sourceforge.net> *
* and others *
* *
*************************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program (see COPYING); if not, see *
* http://www.gnu.org/licenses *
* *
*************************************************************************************
* Module name : thermo.h *
* Author : Tokarev. K *
* Last modification : 2008/07/12 *
* Description : This header file determines some parameters, many modules of *
* OpenThermo depend on. Uncomment some of the define lines to *
* build different versions of program *
* *
*************************************************************************************/
#ifndef THERMO_H
#define THERMO_H
#define VERSION "1.1.0 RC"
#define FULL_NAME "OpenThermo v.1.1.0 Release Candidate"
#define WEBSITE "http://openthermo.sourcefroge.net"
#define ATOM_NAME_LENGTH 8 //!< Max length of string, containing name of atom
//#define ROTATION_GRID_SIZE 1000
/// Maximal number of iterations in Newton optimization of barrier extremal points
#define NEWTON_MAXIT 50
/// Maximal step in Newton optimization of barrier extremal points
#define NEWTON_MAXSTEP 0.1
/******************* Build options *******************/
// Uncomment these strings to ...
//#define WIN32 //
/// \def COMDLG use Common Dialog to open file under Win32
#define COMDLG
/// \def LIBM use GNU math library
//#define LIBM
/// \def NUMERIC use numeric derivatives for ln Z (analytical are available only for RRHO!)
#define NUMERIC
/// \def SIMPLE use simple analytical formulae for Cp, S and H
//#define SIMPLE
/// \def NO_SPIN ignore nuclear spins
//#define NO_SPIN
/// \def ECHO_ON print results of calculation on stdout
//#define ECHO_ON
/// \def TEST perform invariant tests during calculation
//#define TEST
/******************* Debug options *******************/
//#define DEBUG
#ifdef DEBUG
#define DPRINT(x) std::cerr << #x << " = " << x << endl;
#endif
/***********************************************************************/
// Fundamental constants
const double k=1.3806504e-23, // Boltzmann's constant
h=6.62606896e-34, // Plank's constant
R=8.314472, // gas constant
c=2.99792458e10, // speed of light (cm/s!)
Na=6.02214179e23, // Avogadro constat
cal=4.184, // Calorie
Cels = 273.15,
atm = 101325,
HartreeJ = 4.35974394e-18, // Hartree unit in J
Hartree = 27.2113834*96485.3399, // Hartree unit in eV * F {2625.49961748e3}
cm = h*c, // 1/cm
eV = 96485.3399,
pi = 3.14159265358979323846;
// Some build options are incompatible, so we should remove controversies
#ifdef SPECIAL
#undef SILENT
#undef SIMPLE
#endif /* SPECIAL */
#ifdef SILENT
#undef ECHO_ON
#undef DEBUG
#endif /* SILENT */
#ifdef NUMERIC
#undef SIMPLE
#endif /* NUMERIC */
// ---- Compiler-specific and OS-specific tricks ----
// Detect Windows compilers
#ifndef WIN32
#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined _MSC_VER || defined __BCPLUSPLUS__ || defined __TURBOC__
#define WIN32
// However, OpenThermo compilation wasn't tested with all of them
#endif
#endif
#ifndef WIN32
#undef COMDLG
#endif /* WIN32 */
#if defined __WATCOMC__
#define STRSTREAM
/* #define showpoint setiosflags(ios::showpoint)
#define
#define right setiosflags(ios::right)*/
#endif
#if defined __ICC
#define ios_format_flags ios::fmtflags
#endif
#endif /* THERMO_H */