Main Page | User's guide | Class Hierarchy | Class List | File List | Class Members

multivac.hxx

00001 // Copyright (C) 2002-2004 Vivien Mallet
00002 //
00003 // This file is part of Multivac library.
00004 // Multivac library provides front-tracking algorithms.
00005 // 
00006 // Multivac is free software; you can redistribute it and/or modify
00007 // it under the terms of the GNU General Public License as published by
00008 // the Free Software Foundation; either version 2 of the License, or
00009 // (at your option) any later version.
00010 // 
00011 // Multivac is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // GNU General Public License (file "license") for more details.
00015 //
00016 // For more information, please see the Multivac home page:
00017 //     http://spacetown.free.fr/fronts/
00018 
00019 
00020 #ifndef FILE_MULTIVAC_HXX
00021 
00022 
00023 /**** Exception handling ****/
00024 
00025 /**********/
00026 
00027 // Debug levels.
00029 #ifdef MULTIVAC_DEBUG_LEVEL_4
00030 
00031 #ifndef SELDON_DEBUG_LEVEL_4
00032 #define SELDON_DEBUG_LEVEL_4
00033 #endif
00034 
00035 #ifndef MULTIVAC_DEBUG_LEVEL_3
00036 #define MULTIVAC_DEBUG_LEVEL_3
00037 #endif
00038 
00039 #endif
00040 
00041 /**********/
00042 
00043 #ifdef MULTIVAC_DEBUG_LEVEL_3
00044 
00045 #ifndef SELDON_DEBUG_LEVEL_3
00046 #define SELDON_DEBUG_LEVEL_3
00047 #endif
00048 
00050 #ifndef MULTIVAC_CHECK_BOUNDARIES
00051 #define MULTIVAC_CHECK_BOUNDARIES
00052 #endif
00053 
00054 #ifndef MULTIVAC_DEBUG_LEVEL_2
00055 #define MULTIVAC_DEBUG_LEVEL_2
00056 #endif
00057 
00058 #endif
00059 
00060 /**********/
00061 
00062 #ifdef MULTIVAC_DEBUG_LEVEL_2
00063 
00064 #ifndef SELDON_DEBUG_LEVEL_2
00065 #define SELDON_DEBUG_LEVEL_2
00066 #endif
00067 
00069 #ifndef MULTIVAC_CHECK_MEMORY
00070 #define MULTIVAC_CHECK_MEMORY
00071 #endif
00072 
00074 #ifndef MULTIVAC_CHECK_IO
00075 #define MULTIVAC_CHECK_IO
00076 #endif
00077 
00079 #ifndef MULTIVAC_CHECK_INSTABILITY
00080 #define MULTIVAC_CHECK_INSTABILITY
00081 #endif
00082 
00083 #ifndef MULTIVAC_DEBUG_LEVEL_1
00084 #define MULTIVAC_DEBUG_LEVEL_1
00085 #endif
00086 
00087 #endif
00088 
00089 /**********/
00090 
00091 #ifdef MULTIVAC_DEBUG_LEVEL_1
00092 
00093 #ifndef MULTIVAC_DEBUG_LEVEL_2
00094 
00095 #ifndef MULTIVAC_WITHOUT_THROW
00096 #define MULTIVAC_WITHOUT_THROW
00097 #endif
00098 #endif
00099 
00100 #ifndef MULTIVAC_CHECK_COMPATIBILITY
00101 #define MULTIVAC_CHECK_COMPATIBILITY
00102 #endif
00103 
00104 #ifndef SELDON_DEBUG_LEVEL_1
00105 #define SELDON_DEBUG_LEVEL_1
00106 #endif
00107 
00108 #endif
00109 
00110 /**********/
00111 
00112 
00113 /**** Convenient macros ****/
00114 
00115 #ifndef ERR
00116 #define ERR(x) cout << "Hermes - " #x << endl
00117 #endif
00118 
00119 #ifndef DISPLAY
00120 #define DISPLAY(x) cout << #x ": " << x << endl
00121 #endif
00122 
00123 #ifndef DISP
00124 #define DISP(x) cout << #x ": " << x << endl
00125 #endif
00126 
00127 
00128 /**** Class declarations ****/
00129 
00130 namespace std {}
00131 
00132 namespace Multivac
00133 {
00134 
00135   using namespace std;
00136 
00137   template <class T> class CMesh;
00138   template <class T> class CLevelSet;
00139   template <class T> class CSpeedFunction;
00140   template <class T> class CInitialCurve;
00141   template <class T> class CInitializer;
00142   template <class T> class CUpdater;
00143   template <class T> class CSpeedFunction;
00144   template <class T> class CSaver;
00145   
00146 }
00147 
00148 
00149 /**** Basic functions ****/
00150 
00151 #include <cmath>
00152 #include <algorithm>
00153 
00154 namespace Multivac
00155 {
00156 
00157   using namespace std;
00158     
00159   template <class T>
00160   inline T sign(T x)
00161   {
00162     return (x<0?-1.0:1.0);
00163   }
00164 
00165 }  // namespace Multivac.
00166 
00167 
00168 /**** Includes ****/
00169 
00170 #include "includes.hxx"
00171 
00172 
00173 #define FILE_MULTIVAC_HXX
00174 #endif

Generated on Mon Apr 19 01:59:14 2004 for Multivac by doxygen 1.3.6-20040222