Main Page | User's Guide | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

simulator.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_SIMULATOR_HXX
00021 
00022 
00023 #include "errors.cxx"
00024 #include <stdio.h>
00025 
00026 
00027 namespace Multivac
00028 {
00029 
00030 
00031   template <class T, class MeshType, class SpeedType, class InitialCurveType,
00032             class LevelSetType, class InitializerType, class UpdaterType,
00033             class SaverType>
00034   class CSimulator
00035   {
00036 
00037     /**************
00038      * ATTRIBUTES *
00039      **************/
00040 
00041   protected:
00042 
00043     // Values.
00044     MeshType Mesh;
00045     SpeedType F;
00046     InitialCurveType InitialCurve;
00047     LevelSetType Phi;
00048     InitializerType Initializer;
00049     UpdaterType Updater;
00050     SaverType Saver;
00051 
00052     int NbIterations;
00053     T FinalTime;
00054     T Delta_t;
00055 
00056 
00057     /*****************************
00058      * CONSTRUCTORS & DESTRUCTOR *
00059      *****************************/
00060 
00061   public:
00062 
00063     CSimulator(MeshType& Mesh_, SpeedType& F_,
00064                InitialCurveType& InitialCurve_, LevelSetType& Phi_,
00065                InitializerType& Initializer_, UpdaterType& Updater_,
00066                SaverType& Saver_,
00067                int NbIterations_, T FinalTime_)  throw();
00068 
00069     ~CSimulator()  throw();
00070 
00071 
00072     /***********
00073      * METHODS *
00074      ***********/
00075 
00076   public:
00077   
00078     void Init();
00079 
00080     void Run();
00081 
00082     InitializerType& GetInitializer();
00083     SpeedType& GetSpeedFunction();
00084 
00085   };  // CSimulator.
00086 
00087 
00088 }  //  namespace Multivac.
00089 
00090 
00091 #define FILE_SIMULATOR_HXX
00092 #endif

Generated on Sun Jan 16 23:37:58 2005 for Multivac by  doxygen 1.4.0