00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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, class LevelSetType, class InitializerType, class UpdaterType, class SaverType>
00032 class CSimulator
00033 {
00034
00035
00036
00037
00038
00039 protected:
00040
00041
00042 MeshType Mesh;
00043 SpeedType F;
00044 InitialCurveType InitialCurve;
00045 LevelSetType Phi;
00046 InitializerType Initializer;
00047 UpdaterType Updater;
00048 SaverType Saver;
00049
00050 int NbIterations;
00051 T FinalTime;
00052 T Delta_t;
00053
00054
00055
00056
00057
00058
00059 public:
00060
00061 CSimulator(MeshType& Mesh_, SpeedType& F_,
00062 InitialCurveType& InitialCurve_, LevelSetType& Phi_,
00063 InitializerType& Initializer_, UpdaterType& Updater_,
00064 SaverType& Saver_,
00065 int NbIterations_, T FinalTime_) throw();
00066
00067 ~CSimulator() throw();
00068
00069
00070
00071
00072
00073
00074 public:
00075
00076 void Init();
00077
00078 void Run();
00079
00080 InitializerType& GetInitializer();
00081 SpeedType& GetSpeedFunction();
00082
00083 };
00084
00085
00086 }
00087
00088
00089 #define FILE_SIMULATOR_HXX
00090 #endif