NMPB08 shared libraries
CalculRoadEmission.h
Go to the documentation of this file.
00001 
00008 #ifndef CALCUL_ROADEMISSION_H
00009 #define CALCUL_ROADEMISSION_H
00010 
00011 #include "RoadEmissionNMPB08.h"
00012 #include "RoadSurfaceDescription.h"
00013 #include <vector>
00014 #include <math.h>
00015 #include <map>
00016 using namespace std;
00017 using namespace RoadSurfaceDescriptionNMPB;
00018 
00019 namespace CalculRoadEmissionNMPB
00020 {
00042         bool DefineRoadSurfaceType(int idRoadSurface, 
00043                 double AVL, double BVL, double Vref_VL, 
00044                 double APL, double BPL, double Vref_PL,
00045                 double const* spectrum);
00046 
00050         class CalculRoadEmission
00051         {
00052         public:
00056                 CalculRoadEmission(void);
00057 
00065                 CalculRoadEmission(RoadSpectrumType specType, RoadSurfaceType surfType);
00066 
00074                 double* SoundPowerLevelPerMeter (RoadTraffic* roadTraffic) ;
00075 
00083                 double* Lwm_rolling (RoadTraffic* roadTraffic) ;
00084 
00092                 double* Lwm_traction (RoadTraffic* roadTraffic) ;
00093 
00107                 double* Lw_rolling (RoadVehicleType vtype, 
00108                                                     double vehicleSpeed, 
00109                                                         RoadSurfaceType surfaceType, 
00110                                                         double surfaceAge) ;
00111 
00125                 double* Lw_traction (RoadVehicleType vtype,
00126                                                          double vehicleSpeed,
00127                                                          RoadFlowType flowType,
00128                                                          double ramp) ;
00129 
00130         private:
00134                 double _Lw_VL;
00138                 double _Lw_PL; 
00142                 double _Lw_rolling_VL;
00146                 double _Lw_rolling_PL;
00150                 double _Lw_traction_VL;
00154                 double _Lw_traction_PL;
00158                 double _QVL;
00162                 double _QPL;
00166                 int _bandsNumber; 
00170                 bool _specA; 
00174                 double* _Lw_band;
00178                 const int* _usedFrequencies;
00179                 
00183                 map<int, double> _linearCorrection;
00184 
00188                 double  _output_values[18] ;
00189 
00194                 void FillLinearCorrectionMap();
00195 
00201                 void FillRoadSurfaceDescriptionMap(RoadSurfaceType surfType);
00202 
00212                 double* SpectralDistribution(double powerValue, RoadSurfaceType surfaceType);
00213 
00229                 double LwTotal(double LwVL, double QVL, double LwPL, double QPL);
00230 
00244                 double Lw_rolling_VL (double vehicleSpeed, RoadSurfaceType surfaceType, double surfaceAge);
00245 
00259                 double Lw_rolling_PL (double vehicleSpeed, RoadSurfaceType surfaceType, double surfaceAge);
00260 
00270                 double Lw_traction_VL(double vehicleSpeed, RoadFlowType flowType);
00271 
00283                 double Lw_traction_PL(double vehicleSpeed, RoadFlowType flowType, double ramp);
00284 
00300                 double Lw_startStop(RoadVehicleType vtype, double ramp, RoadFlowType flowType, double surfaceAge);
00308                 void FillRollingAndTractionFromStartStop(double lwStartStop, RoadVehicleType vtype);
00309 
00321                 double EnergeticAddition(double val1, double val2);
00322         };
00323 }
00324 
00325 #endif
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines