38 #include "TCanalDPF.h"
51 int FNumeroHacesCanales;
52 int *FNumeroCanalesHaz;
53 int FNumeroCanalesTotales;
57 double FDuracionCiclo;
58 int FNumCiclosSinInerciaTermica;
62 double FControlResMed;
66 int FNumResInstantaneos;
68 int FNumResInstantaneosCE;
69 int FNumResInstantaneosCS;
76 double FDiametroFiltroEfect;
78 double FLongitudTapon;
79 double FEspesorParedPorosa;
80 double FPorosidadLimpia;
81 double FDiametroMedioPoroso;
82 double **FDiametroPoro;
83 double **FSupActCatalizador;
85 double **FSupEspecifica;
86 double FPorosidadCapaParticulas;
87 double FMasaSootInicial;
88 double *FMasaSootInicialHaz;
89 double **FMasaSootLayer;
90 double *FMasaSootLayerTotal;
91 double FMasaSootTotal;
92 double FDensidadSootPared;
93 double FDensidadSootCapa;
94 double FDiametroPrimarioSoot;
95 double FDiametroAgregadoSoot;
96 double FFactorPercolacion;
97 double FFraccionParedSaturada;
99 double **FEspesorSoot;
100 double ***FVelocidadPared;
101 double ***FVelocidadPared0;
106 double FDiametroUnidadCelular;
107 double **FDiametroUnidadColectora;
108 double FDiametroUnidadColectoraLimpia;
109 double **FParametroIntercepcion;
110 double Ffuncion_f_Limpia;
111 double **FEficiencia;
112 double **FCoeficienteParticion;
113 double FMasaSootSaturacion;
114 double *FMasaSootSaturacionHaz;
115 double FMasaSootSaturacionTotal;
116 double FVolumenTotalDPF;
117 double *FVolumenTotal;
118 long long int FNumeroUnidadesCelularesFiltro;
119 long long int *FNumeroUnidadesCelularesHaz;
121 **FNumeroUnidadesCelulares;
122 double **FLongitudVC;
123 double **FMasaSootUC;
127 double FIndiceCompletitud1;
128 double FIndiceCompletitud2;
134 double FRatioNO2_NOx;
135 double ***FTasaFraccionMasicaEspecie;
136 double ***FFraccionMasicaEspecieSalida;
137 double **FFraccionMasicaNO2Salida;
138 double **FFraccionMasicaNO2Entrada;
147 double **FAreaVCCanalEntrada;
148 double **FAreaVCCanalSalida;
158 nmTipoCalcTempParedTubos FTipoCalcTempPared;
160 double ***FResistRadial;
161 double ***FResistConv;
162 double **FResistAxialAnt;
163 double **FResistAxialPost;
164 double **FResistEntreHacesAnt;
165 double **FResistEntreHacesPost;
166 double **FCapEntrada;
169 double *FDiametroInicialHaz;
170 double *FDiametroHazInt;
171 double *FDiametroHazExt;
173 double ***FTParedAnt;
174 double ****FSUMTPPromedio;
175 double ***FSUMTPPromedioConc;
176 double *FResistConduccionAislante;
177 double *FResistConduccionAire;
178 double *FResistRadiacionAire;
179 double *FResistConduccionMetal;
180 double *FResistConveccionExt;
181 double *FResistAxialMetalExtAnt;
182 double *FResistAxialMetalExtPost;
183 double *FCapNodoExteriorSuperficie;
184 double *FCapNodoMedioSuperficie;
185 double *FCapNodoInteriorSuperficie;
186 double **FTSuperficie;
187 double *FNumCanalesHaz;
188 double *FSuperficieTCHazAnt;
189 double *FSuperficieTCHazPost;
190 double *FAreaInternaHaz;
193 double *FR_int_radiacion;
194 double *FR_ext_RadInt;
199 double FTIniParedExt;
201 nmRefrigerante FTipoRefrig;
202 double FTRefrigerante;
204 double FEspesorAislante;
205 double FEspesorMetal;
206 double FDensidadAislante;
207 double FDensidadMetal;
208 double FConductividadSoot;
209 double FConductividadPared;
210 double FConductividadParedRadial;
211 double FConductividadAislante;
212 double FConductividadMetal;
213 double FDensidadParedPorosa;
214 double FCalorEspPared;
215 double FCalorEspSoot;
216 double FCalorEspMetal;
217 double FCalorEspAislante;
218 double FAjusteResistenciaHazExt;
220 double FConductividadAire;
221 double FEmisividadIntAire;
222 double FEmisividadExtAire;
225 double FAnguloTotalCiclo;
230 double FDeltaTimeDPF;
232 bool FCalculoRegeneracion;
233 bool FCalculoFiltrado;
235 double FFactorFrecuenciaO2;
236 double FFactorFrecuenciaNO2;
237 double FEnergiaActO2;
238 double FEnergiaActNO2;
241 int FNumeroDatos_FraccionesNOx;
242 int FNumeroDatos_Temperaturas;
243 double *FFraccionNOxTabla;
244 double *FTemperaturasTabla;
245 double **FMapa_ProporcionNO2;
248 TTubo *FTuboEntradaDPF;
249 TTubo *FTuboSalidaDPF;
250 int FNodoTuboEntrada;
259 double Interpola(
double vizq,
double vder,
double axid,
double xif);
261 void CalculoVelocidadPared();
263 void SubmodeloFiltrado();
265 void SubmodeloRegeneracion();
269 void CalculoEspesorSoot();
273 void CalculaTemperaturaParedSinMotor(
int j,
TTubo **Tubo,
TConcentrico **Concentrico);
288 void LeeDatosDPF(
const char *FileWAM, fpos_t &filepos, nmTipoCalculoEspecies CalculoEspecies,
289 nmCalculoGamma CalculoGamma,
bool HayEGR,
TBloqueMotor **Motor);
293 void LeeResultadosMediosDPF(
const char *FileWAM, fpos_t &filepos);
295 void ImprimeResultadosMedios(std::stringstream& medoutput)
const;
297 void CabeceraResultadosMedios(std::stringstream& medoutput,
stEspecies *DatosEspecies)
const;
299 void CalculaResultadosMedios(
double theta);
301 void LeeResultadosInstantaneosDPF(
const char *FileWAM, fpos_t &filepos);
303 void CabeceraResultadosInstantaneos(std::stringstream& insoutput,
stEspecies *DatosEspecies)
const;
305 void ImprimeResultadosInstantaneos(std::stringstream& insoutput)
const;
307 void CalculaResultadosInstantaneos();
309 void InicializaDPF(
int nconcentrico,
TConcentrico **Concentrico);
311 void IniciaVariablesTransmisionCalor(
double tamb);
313 void CalculoEstabilidadDPF();
315 void AjustaPaso(
double TiempoFinPaso);
319 void CalculoResistenciaTC_First_Time(
int j,
TTubo **Tubo,
TConcentrico **Concentrico);
323 void CalculoSubmodelos();
325 double getTime1DPF() {
329 void putTime1DPF(
double valor) {
334 double getTime0DPF() {
338 void putTime0DPF(
double valor) {
343 double getDeltaTimeDPF() {
344 return FDeltaTimeDPF;
347 void putDeltaTimeDPF(
double valor) {
348 FDeltaTimeDPF = valor;
352 double getDuracionCiclo() {
353 return FDuracionCiclo;
357 int getNumeroHacesCanales() {
358 return FNumeroHacesCanales;
361 double getLongitudEfec() {
362 return FLongitudEfec;
365 double getLongitudTapon() {
366 return FLongitudTapon;
369 double getEspesorParedPorosa() {
370 return FEspesorParedPorosa;
373 double GetEspesorSoot(
int j,
int i) {
374 return FEspesorSoot[j][i];
381 double GetVelocidadPared(
int j,
int i,
int k) {
382 return FVelocidadPared[j][i][k];
385 double GetTasaFraccionMasicaEspecie(
int j,
int i,
int k) {
386 return FTasaFraccionMasicaEspecie[j][i][k];
389 double GetFraccionMasicaSalida(
int j,
int i,
int k) {
390 return FFraccionMasicaEspecieSalida[j][i][k];
393 double GetRreg1(
int j,
int i) {
397 double GetRreg2(
int j,
int i) {
401 double getIndCompletitud1() {
402 return FIndiceCompletitud1;
405 double getIndCompletitud2() {
406 return FIndiceCompletitud2;
409 double GetSupEspecifica(
int j,
int i) {
410 return FSupEspecifica[j][i];
412 double GetEficiencia(
int j,
int i) {
413 return FEficiencia[j][i];
416 double GetLongitudVC(
int j,
int i) {
417 return FLongitudVC[j][i];
420 double GetQreg(
int j,
int i) {
424 double Getq_reac1(
int j,
int i) {
428 double Getq_reac2(
int j,
int i) {
432 double getAnguloTotalCiclo() {
433 return FAnguloTotalCiclo;
436 double GetTPared(
int j,
int i,
int k) {
437 return FTPared[j][i][k];
440 double getCoefAjusTC() {
448 nmTipoCalcTempParedTubos getTipoCalcTempPared() {
449 return FTipoCalcTempPared;
452 nmRefrigerante getTipoRefrig() {
456 double GetDiametroExtHaz(
int i) {
457 return FDiametroHazExt[i];
460 double getCoefExt() {
464 double GetTSuperficie(
int j,
int i) {
465 return FTSuperficie[j][i];
474 double getAjustRAxAnt() {
478 double getAjustRAxPos() {
482 double getEmisividad() {
486 double getDiametroExt() {
487 return FDiametroFiltroEfect + 2 * FEspesorAislante + 2 * FEspesorAire + 2 * FEspesorMetal;
490 double getEspesorAislante() {
491 return FEspesorAislante;
494 double getEspesorAire() {
498 double getEspesorMetal() {
499 return FEspesorMetal;
502 double getConductividadMetal() {
503 return FConductividadMetal;
506 double getDiametroEfect() {
507 return FDiametroFiltroEfect;
511 void PutConcentric(
int valor) {
512 valor == 0 ? FHayConcentrico = false : FHayConcentrico =
true;