00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef FILE_UPDATER_NARROWBANDENO2ENGQUISTOSHER_HXX
00021
00022
00023 #include "../errors.cxx"
00024 #include <stdio.h>
00025
00026
00027 namespace Multivac
00028 {
00029
00030
00032
00034
00037
00039 template <class T>
00040 class CNarrowBandEno2EngquistOsher: public CUpdater<T>
00041 {
00042
00043
00044
00045
00046
00047
00048 protected:
00049
00050
00051
00052
00053
00054
00055 public:
00056
00057 CNarrowBandEno2EngquistOsher() throw();
00058 CNarrowBandEno2EngquistOsher(int TubeSemiWidth_,
00059 int BarrierWidth_,
00060 int OutSpaceWidth_) throw();
00061
00062 ~CNarrowBandEno2EngquistOsher() throw();
00063
00064
00065
00066
00067
00068
00069 public:
00070
00071 virtual bool IsNarrowBand() const;
00072 virtual bool IsFastMarching() const;
00073
00074 virtual void Init(CMesh<T>& Mesh, CLevelSet<T>& Phi);
00075 virtual void UpdateLevelSet(T Delta_t,
00076 CMesh<T>& Mesh,
00077 CSpeedFunction<T>& F,
00078 CLevelSet<T>& Phi,
00079 T CurrentTime);
00080
00081 };
00082
00083
00084 }
00085
00086
00087 #define FILE_UPDATER_NARROWBANDENO2ENGQUISTOSHER_HXX
00088 #endif