OpenWAM
TCCDeposito.h
1 /*--------------------------------------------------------------------------------*\
2 ==========================|
3  \\ /\ /\ // O pen | OpenWAM: The Open Source 1D Gas-Dynamic Code
4  \\ | X | // W ave |
5  \\ \/_\/ // A ction | CMT-Motores Termicos / Universidad Politecnica Valencia
6  \\/ \// M odel |
7  ----------------------------------------------------------------------------------
8  License
9 
10  This file is part of OpenWAM.
11 
12  OpenWAM is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  OpenWAM is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with OpenWAM. If not, see <http://www.gnu.org/licenses/>.
24 
25 
26  \*--------------------------------------------------------------------------------*/
27 
28 //---------------------------------------------------------------------------
29 #ifndef TCCDepositoH
30 #define TCCDepositoH
31 
32 #include "TCondicionContorno.h"
33 #include <cstdio>
34 #include <iostream>
35 
36 //---------------------------------------------------------------------------
37 //---------------------------------------------------------------------------
38 class TDeposito;
39 
41  private:
42 
43  TTipoValvula *FValvula;
44  TDeposito *FDeposito;
45 
46  int FNumeroDeposito; // Numero de deposito ligado a la condicion de contorno.
47 
48  int FNodoFin; // Nodo en el extremo del tubo.
49  int FIndiceCC; // Posicion del vector para tomar datos del tubo para la BC (0 Nodo izquierdo; 1 Nodo derecho)
50  double *FCC; // Caracteristica conocida del tubo.
51  double *FCD; // Caracteristica desconocida del tubo.
52 
53  double FPref; // Pressure de referencia
54 
55  double FCDEntrada; // Coeficiente de descarga a la entrada
56  double FCDSalida; // Coeficiente de descarga a la salida
57  double FCTorbellino; // Coeficiente de torbellino
58 
59  double FSeccionEficaz; // Seccion eficaz de la valvula
60  double FGasto; // Massflow en el extremo del tubo. Si es entrante, signo -. Si es saliente, signo +
61  double FVelocity; // Velocity en el extremo del tubo
62  double FSonido; // Velocity del sonido en el extremo del tubo
63  double FVelocidadGarganta; // Velocity en la garganta
64  double FMachGarganta; // Numero de Mach en la garganta.
65  double FGastoGarganta; // Massflow en la garganta.
66  double FRelacionPresionGarganta;
67  double FAd;
68  double FAdCr; // Ad teniendo en cuenta la recuperacion de energia cinetica.
69 
70  double FSeccionValvula; // Seccion en la garganta
71  double FSeccionTubo; // Seccion en el extremo del tubo
72 
73  double FCarrera;
74  double Fk; // Relacion entre la seccion del tubo en el extremo y la seccion eficaz de la valvula.
75  double Fcc; // Variable auxiliar utilizada para el calculo de el caso saliente supercritico.
76 // double FMachVenturi; // Numero de Mach en la condicion de contorno que para el calculo de presion de parada en // por el modelo en el extremo del tubo. Influye en el calculo de FAdCr
77  // el extremo del tubo.
78  nmCaso FCaso;
79  nmSentidoFlujo FSentidoFlujo;
80 
81  double FRegimen;
82 
83  double FGamma1;
84  double FGamma2;
85  double FGamma3;
86  double FGamma4;
87  double FGamma5;
88  double FGamma6;
89 
90  bool FEncontrado;
91 
92 // FUNCIONES
93 
94  void FEDRecuperacionEnergiaCinetica();
95 
96  void FlujoEntranteDeposito();
97 
98  void FlujoSalienteDeposito();
99 
100  void Resolucion(double ext1, double ext2, nmCaso Caso, double *u2t, double *a2t);
101 
102  public:
103 
104  int getNumeroDeposito() {
105  return FNumeroDeposito;
106  }
107  ;
108  double getMassflow() {
109  return FGasto;
110  }
111  ;
112  double getVelocity() {
113  return FVelocity;
114  }
115  ;
116  double getSpeedSound() {
117  return FSonido;
118  }
119  ;
120  double getSeccionTubo() {
121  return FSeccionTubo;
122  }
123  ;
124  TTipoValvula* getValvula() {
125  return FValvula;
126  }
127  ;
128  nmSentidoFlujo getSentidoFlujo() {
129  return FSentidoFlujo;
130  }
131  ;
132  TDeposito* getPlenum() {
133  return FDeposito;
134  }
135  ;
136  void PutCDSalida(double valor) {
137  FCDSalida = valor;
138  }
139  ;
140  double FMachVenturi;
141  double getMachVenturi() {
142  return FMachVenturi;
143  }
144  ;
145  void putMachVenturi(double valor) {
146  FMachVenturi = valor;
147  }
148 
149  TCCDeposito(nmTypeBC TipoCC, int numCC, nmTipoCalculoEspecies SpeciesModel, int numeroespecies,
150  nmCalculoGamma GammaCalculation, bool ThereIsEGR);
151 
152  ~TCCDeposito();
153 
154  void ReadBoundaryData(const char *FileWAM, fpos_t &filepos, int NumberOfPipes, TTubo **Pipe, int nDPF, TDPF **DPF);
155 
156  void AsignaDeposito(TDeposito **Plenum);
157 
158  void CalculaCondicionContorno(double Time);
159 
160  void AsignaTipoValvula(TTipoValvula **Origen, int Valv, int i);
161 
162  void CalculaCoeficientesDescarga(double TiempoAcutal, double mfcomb = 0., double RegimenMotor = 0.);
163 
164  void IniciaGamma();
165 
166  void TuboCalculandose(int TuboActual) {
167  }
168  ;
169 
170 };
171 
172 #endif
173 
TTubo
a Finite differences pipe.
Definition: TTubo.h:116
TTipoValvula
Definition: TTipoValvula.h:53
TDPF
Definition: TDPF.h:45
TCondicionContorno
Definition: TCondicionContorno.h:54
TDeposito
Definition: TDeposito.h:44
TCCDeposito
Definition: TCCDeposito.h:40