OpenWAM
TDiscoRotativo.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 TDiscoRotativoH
30 #define TDiscoRotativoH
31 
32 #include <cstdio>
33 #ifdef __BORLANDC__
34 #include <vcl.h>
35 #endif
36 #include <iostream>
37 //#include <cmath>
38 
39 #include "TTipoValvula.h"
40 
41 //---------------------------------------------------------------------------
42 //---------------------------------------------------------------------------
43 
45  private:
46 
47  double FDiametroRef;
48  int FNumeroPuntos;
49 
50  double FAngle0;
51 
52  dVector FAngulo;
53  dVector FDatosCDEntrada;
54  Hermite_interp *fun_CDin;
55  dVector FDatosCDSalida;
56  Hermite_interp *fun_CDout;
57 
58  int FValvula;
59 
60  double FDCMultiplier;
61  double FShift;
62  double FDuration;
63 
64  public:
65 
66  TDiscoRotativo(TDiscoRotativo *Origen, int valv);
67 
69 
70  ~TDiscoRotativo();
71 
72  void LeeDatosIniciales(const char *FileWAM, fpos_t &filepos, int norden, bool HayMotor, TBloqueMotor *Engine);
73 
74  void CalculaCD(double AnguloActual);
75 
76  void GetCDin(double Time);
77 
78  void GetCDout(double Time);
79 
80  void PutAngle0(double val) {
81  FAngle0 = val * FRelacionVelocidades - FShift;
82  }
83  ;
84 
85 };
86 
87 //---------------------------------------------------------------------------
88 //---------------------------------------------------------------------------
89 
90 #endif
TTipoValvula
Definition: TTipoValvula.h:53
Hermite_interp
Definition: Math_wam.h:311
TDiscoRotativo
Definition: TDiscoRotativo.h:44
TBloqueMotor
Definition: TBloqueMotor.h:43
dVector
std::vector< double > dVector
Double vector.
Definition: Math_wam.h:70