00001
00008 #ifndef EIGENMODEGEN_HXX__
00009 #define EIGENMODEGEN_HXX__
00010
00011 #include "../dustmodel.h"
00012
00013 #include <vector>
00014
00015 namespace Dust {
00016
00020 class GenEigenModes {
00021
00022 public:
00023
00026 virtual double operator[] (unsigned n) = 0;
00027
00029 virtual double Nmodes(void) = 0;
00030
00032 virtual void Fill ( std::vector<double> & Evect , unsigned maxmodes );
00033
00034 };
00035
00039 class GenPAHCC : public GenEigenModes {
00040
00042 double Nm;
00043
00045 double beta2;
00046
00048 double TDebye;
00049
00050 public:
00051
00052 enum CCFamily { InPlane, OutPlane };
00053
00054
00055
00058 GenPAHCC( double a, dust_nmoded *nm, CCFamily family );
00059
00060
00061 virtual double operator[] (unsigned n);
00062 virtual double Nmodes(void) ;
00063
00064 };
00065
00066
00067 class GenSilModes : public GenEigenModes {
00068
00070 double Nm;
00071
00073 double beta2;
00074
00076 double TDebye;
00077
00079 unsigned DimN;
00080
00081 public:
00082
00083 enum SilMFamily { D2, D3 };
00084
00085
00086
00089 GenSilModes( double a, dust_nmoded *nm, SilMFamily family );
00090
00091
00092 virtual double operator[] (unsigned n);
00093 virtual double Nmodes(void) ;
00094
00095 };
00096
00097
00098
00099 }
00100
00101 #endif