3 #ifndef TOutputResultsH
4 #define TOutputResultsH
10 #include "TBloqueMotor.h"
11 #include "TDeposito.h"
12 #include "TEjeTurbogrupo.h"
13 #include "TCompresor.h"
15 #include "TTipoValvula.h"
16 #include "TCCCilindro.h"
17 #include "TCCDeposito.h"
18 #include "TCCUnionEntreDepositos.h"
19 #include "TCCCompresorVolumetrico.h"
22 #include "TController.h"
23 #include "TCalculoExtern.h"
24 #include "TWasteGate.h"
30 enum nmTypeOfResults {
31 nmLastCyle = 0, nmAllCyclesIndependent = 1, nmAllCyclesConcatenated = 2, nmEveryNCycles = 3
36 nmTypeOfResults FTypeOfInsResults;
48 bool InsHeaderCreated;
53 double FControlAngle0;
54 double FControlAngle1;
56 vector<TTubo*> AvgPipe;
57 vector<TCilindro*> AvgCylinder;
59 vector<TDeposito*> AvgPlenum;
60 vector<TEjeTurbogrupo*> AvgAxis;
61 vector<TCompresor*> AvgCompressor;
62 vector<TTurbina*> AvgTurbine;
63 vector<TTipoValvula*> AvgValve;
65 vector<TCCCompresorVolumetrico*> AvgRoot;
66 vector<TVenturi*> AvgVenturi;
67 vector<TCCUnionEntreDepositos*> AvgConnection;
68 vector<TSensor*> AvgSensor;
69 vector<TController*> AvgController;
72 stringstream FAvgOutput;
74 char FAvgFilename[300];
76 vector<TCilindro*> InsCylinder;
77 vector<TDeposito*> InsPlenum;
78 vector<TTubo*> InsPipe;
79 vector<TVenturi*> InsVenturi;
80 vector<TTipoValvula*> InsValve;
82 vector<TEjeTurbogrupo*> InsTurbo;
83 vector<TCompresor*> InsCompressor;
84 vector<TTurbina*> InsTurbine;
85 vector<TCCCompresorVolumetrico*> InsRoot;
86 vector<TCCUnionEntreDepositos*> InsConnection;
87 vector<TWasteGate*> InsWasteGate;
88 vector<TLamina*> InsReedValve;
89 vector<TSensor*> InsSensor;
90 vector<TController*> InsController;
93 stringstream FInsOutput;
95 char FInsFilename[300];
101 vector<TTubo*> STPipe;
102 vector<TDeposito*> STPlenum;
103 vector<TCilindro*> STCylinder;
107 FILE *FileOutPressure;
131 FILE *FOutFlowFreshAir;
132 FILE *FOutFlowBurntGas;
146 char salYCombustible[300];
147 char salYAireFresco[300];
148 char salYGasQuemado[300];
149 char salGastoO2[300];
150 char salGastoN2[300];
151 char salGastoCO2[300];
152 char salGastoH2O[300];
153 char salGastoCO[300];
154 char salGastoNOx[300];
155 char salGastoSoot[300];
156 char salGastoHC[300];
157 char salGastoCombustible[300];
158 char salGastoAireFresco[300];
159 char salGastoGasQuemado[300];
161 void ConvertCharacter(
int confile,
char confile1[],
int Characters);
168 double GetFControlAngle1() {
169 return FControlAngle1;
173 void ReadAverageResults(
const char* FileWAM, fpos_t& filepos,
TTubo** Pipe,
bool EngineBlock,
TBloqueMotor** Engine,
176 int TotalCycles,
char* ModelName);
180 void OutputAverageResults(
double AcumulatedTime,
TCalculoExtern* EXTERN,
bool ThereIsDLL);
182 void CopyAverageResultsToFile(
int mode);
184 void CopyInstananeousResultsToFile(
int mode);
186 void ReadInstantaneousResults(
const char* FileWAM, fpos_t &filepos,
TBloqueMotor** Engine,
TDeposito** Plenum,
191 void ReadSpaceTimeResults(
const char* FileWAM, fpos_t &filepos,
TTubo** Pipe,
TBloqueMotor** Engine,
194 void DoSpaceTimeFiles(
int SpeciesNumber);
196 void HeaderSpaceTimeResults(
double thmax,
double grmax,
double agincr,
int SpeciesNumber);
198 void PrintSpaceTimeResults(
bool EngineBlock,
double Theta,
double SimulationDuration,
TBloqueMotor **Engine,
201 void HeaderInstantaneousResults(
TCalculoExtern *EXTERN,
bool ThereIsDLL,
bool EngineBlock,
stEspecies *SpeciesName);
203 void PlotThisCycle(
TBloqueMotor* Engine,
int TotalCycles);
205 void OutputInstantaneousResults(
TCalculoExtern *EXTERN,
bool ThereIsDLL,
bool EngineBlock,
double Theta,
208 void PlotControl(
double Theta0,
double Theta,
double CycleDuration);
210 void WriteInstantaneous(
bool EngineBlock,
double Angle,
double AngStep,
TBloqueMotor* Engine,
int TotalCycles);
212 void WriteSpaceTime(
bool EngineBlock,
TBloqueMotor* Engine,
int TotalCycles);
214 void PutInsPeriod(
double agincr) {