VR-Vantage 3.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ciGreNrt.h
Go to the documentation of this file.
1 
2 // Original Author: Tim George
3 // Date: Oct 2005
4 //
5 //
6 //
8 
9 #if !defined(_CIGreNrt_H_)
10 #define _CIGreNrt_H_
11 #include "ciApi.h"
12 
13 #if _MSC_VER > 1000
14 #pragma once
15 #endif // _MSC_VER > 1000
16 
20 #include <iostream>
21 #include <fstream>
22 #include <string.h>
23 #include "clXML.h"
24 #include "clXMLNode.h"
25 
26 typedef struct
27 {
28  double WIDM; // [m] Hardbody width (Default = 14) : NOT IN SIGSIMC
29  double LENM; // [m] Hardbody Length (Default = 15.39)
30  double RADM; // [m] Hardbody Radius or half the "Height" (Default = 2)
31  double RADN; // [m] Nozzle Radius (Default = 1), or set = -1.0 if it is to be Calculated from the Flowfield
32  double EMSH; // [1] Hot Parts Emissivity (Default = 0.95)
33  double TMPH; // [degK] Hot Parts Temperature (Default = 1833)
34  double HMASS; // [kg] Mass of object
35  double ALT; // [km] altitude
36  double PWRRTG; // [1] Power rating
37  double THRUST; // [lb ft] Net thrust
38  double FLTVEL; // [knot] Flight velocity
39  double FLTMACH; // [1] Mach number
40  double AMBTMP; // [degK] Ambient air temperature
41  double AMBPRS; // [psia] Ambient air pressure
42  double TOTAIN; // [lb/s] Total air intake
43  double CORAIN; // [lb/s] Core air intake
44  double CORRPM; // [rpm] Core speed
45  double CORPER; // [%] Percent core speed
46  double CORTMP; // [degK] Turbine/Core exit static temperature
47  double CORTTM; // [degK] Turbine/Core exit total temperature
48  double CORPRS; // [psia] Turbine/Core exit static pressure
49  double CORTPR; // [psia] Turbine/Core exit total pressure
50  double CORMCH; // [1] Turbine/Core exit Mach number
51  double FANTMP; // [degK] Fan exit static temperature
52  double FANTTM; // [degK] Fan exit total temperature
53  double FANPRS; // [psia] Fan exit static pressure
54  double FANTPR; // [psia] Fan exit total pressure
55  double FANMCH; // [1] Fan exit Mach number
56  double FANRPM; // [rpm] Fan speed
57  double FANPER; // [%] Percent fan speed
58  double STRTMP; // [degK] Nozzle throat static temperature
59  double STRTTM; // [degK] Nozzle throat (or exit) total temperature
60  double STRMCH; // [1] Nozzle throat Mach number
61  double STRTPR; // [psia] Nozzle throat (or exit) total pressure
62  double STRPRS; // [psia] Nozzle throat static pressure
63  double TOTFUL; // [lb/hr] Total Fuel Flow Rate
64  double TRBTTM; // [degK] Low pressure total turbine inlet temperature
65  double CMBFUL; // [lb/hr] Fuel flow rate in the combustor
66  double ABFUL; // [lb/hr] Fuel flow rate in the afterburner
67  double SFUELC; // [lb/hr/hp] Specific fuel consumption
68  double MIXPRR; // [1] Nozzle pressure ratio (STRTPR/AMBPRS)
69  double SHFTHP; // [hp] Delivered shaft horsepower
70  double TORQUE; // [ft lbf] Delivered shaft torque
71  double PROPRD; // [m] Propeller radius
72  double PROPNP; // [%] Propeller efficiency
73  double AOA; // [deg] Target Pitch = Angle of Attack (>0 = Nose pitched up)
74  double AOR; // [deg] Angle of Rotor (>0 = Forward section pitched up)
75  double ROL; // [deg] Target roll (positive left-up) - Done after pitch
76  double EPR; // [1] Engine pressure ratio (STRTPR/INLTPR)
77  double RAMREC; // [0-1] RAM (inlet) recovery (INLTPR/AMBPRS)
78  double MIXPCT; // [%] Mixing Percentage of hot core gas
79  double USRRAD; // [ft] Total gas radius at exit plane
80  double NOZARE; // [ft2] Nozzle exit area
81  double STRARE; // [ft2] Nozzle throat area
82  double INLTTM; // [degK] Inlet duct total temperature
83  double INLTMP; // [degK] Inlet duct static temperature
84  double INLTPR; // [psia] Inlet duct total pressure
85  double CTLTTM; // [degK] Control temperature
86  double PLMLEN; // [ft] Total plume length
87  int NGAS; // [1] Number of EXITPLANE_GAS_DATA radii
89 
90 
91 typedef struct
92 {
93  int ECT; // Engine Cycle Input Option : ENGD=0, ENGI=1, ENGE=2
94  int PSP; // Power Setting Parameter : PWRRTG=0, TRBTTM=1, TOTFUL-2, CMBFUL=3, ABFUL=4, TOTAIN=5, CORAIN=6, CORTMP=7, CORPRS=8, CORMCH=9, STRTTM=10, MIXPRR=11, NOZARE=12, STRARE=13, STRTPR=14, FANRPM=15, CORRPM=16
95  int ET; // Engine Type : TFIN=0, TFEX=1, TPRP=2, TPHG=3, TJET=4, TSHF=5
96  int HCG; // Hot Core Gas Input Option : TTMTPR=0, TMPPRS=1, TMPTPR=2, TTMPRS=3
97  int BYFAN; // Bypass Fan Air Input Option : TTMTPR=0, TMPPRS=1, TMPTPR=2, TTMPRS=3
98  int NTT; // Nozzle Throat Temperature Input Option : STRTTM=0, TMPMCH=1
99  int FFR; // Fuel Flow Rate Input Option : TOTFUL=0, CMBAB=1
100  int EPP; // Exit Plane Gas Profile Input Option : TTJE=0, UMIX=1, HYBR=2, COSN=3, MIXD=4, USER=5
101  int CHOKE; // Adjust nozzle exit area to ambient pressure: NO=0, YES=1
102  int MIX; // Mixing scheme : UNIF=0, SELE=1
103  int FIM; // Flowfield Model : SPF1=0, SPF2=1, APPL=2, EXTF=3, CRAF=4
105 
106 
107 class SpiritsTrbextData;
108 class SpiritsTrbextOptions;
109 
111 {
112 public: // methods
113 
114  void set_SPIRITS_TRBEXT_OPTIONS_ECT(int val);
115  int get_SPIRITS_TRBEXT_OPTIONS_ECT();
116  void set_SPIRITS_TRBEXT_OPTIONS_PSP(int val);
117  int get_SPIRITS_TRBEXT_OPTIONS_PSP();
118  void set_SPIRITS_TRBEXT_OPTIONS_ET(int val);
119  int get_SPIRITS_TRBEXT_OPTIONS_ET();
120  void set_SPIRITS_TRBEXT_OPTIONS_HCG(int val);
121  int get_SPIRITS_TRBEXT_OPTIONS_HCG();
122  void set_SPIRITS_TRBEXT_OPTIONS_BYFAN(int val);
123  int get_SPIRITS_TRBEXT_OPTIONS_BYFAN();
124  void set_SPIRITS_TRBEXT_OPTIONS_NTT(int val);
125  int get_SPIRITS_TRBEXT_OPTIONS_NTT();
126  void set_SPIRITS_TRBEXT_OPTIONS_FFR(int val);
127  int get_SPIRITS_TRBEXT_OPTIONS_FFR();
128  void set_SPIRITS_TRBEXT_OPTIONS_EPP(int val);
129  int get_SPIRITS_TRBEXT_OPTIONS_EPP();
130  void set_SPIRITS_TRBEXT_OPTIONS_CHOKE(int val);
131  int get_SPIRITS_TRBEXT_OPTIONS_CHOKE();
132  void set_SPIRITS_TRBEXT_OPTIONS_MIX(int val);
133  int get_SPIRITS_TRBEXT_OPTIONS_MIX();
134  void set_SPIRITS_TRBEXT_OPTIONS_FIM(int val);
135  int get_SPIRITS_TRBEXT_OPTIONS_FIM();
136 
137  void set_SPIRITS_TRBEXT_DATA_LENM(double val);
138  double get_SPIRITS_TRBEXT_DATA_LENM();
139  void set_SPIRITS_TRBEXT_DATA_WIDM(double val);
140  double get_SPIRITS_TRBEXT_DATA_WIDM();
141  void set_SPIRITS_TRBEXT_DATA_RADM(double val);
142  double get_SPIRITS_TRBEXT_DATA_RADM();
143  void set_SPIRITS_TRBEXT_DATA_RADN(double val);
144  double get_SPIRITS_TRBEXT_DATA_RADN();
145  void set_SPIRITS_TRBEXT_DATA_EMSH(double val);
146  double get_SPIRITS_TRBEXT_DATA_EMSH();
147  void set_SPIRITS_TRBEXT_DATA_TMPH(double val);
148  double get_SPIRITS_TRBEXT_DATA_TMPH();
149  void set_SPIRITS_TRBEXT_DATA_HMASS(double val);
150  double get_SPIRITS_TRBEXT_DATA_HMASS();
151  void set_SPIRITS_TRBEXT_DATA_ALT(double val);
152  double get_SPIRITS_TRBEXT_DATA_ALT();
153  void set_SPIRITS_TRBEXT_DATA_PWRRTG(double val);
154  double get_SPIRITS_TRBEXT_DATA_PWRRTG();
155  void set_SPIRITS_TRBEXT_DATA_THRUST(double val);
156  double get_SPIRITS_TRBEXT_DATA_THRUST();
157  void set_SPIRITS_TRBEXT_DATA_FLTVEL(double val);
158  double get_SPIRITS_TRBEXT_DATA_FLTVEL();
159  void set_SPIRITS_TRBEXT_DATA_FLTMACH(double val);
160  double get_SPIRITS_TRBEXT_DATA_FLTMACH();
161  void set_SPIRITS_TRBEXT_DATA_AMBTMP(double val);
162  double get_SPIRITS_TRBEXT_DATA_AMBTMP();
163  void set_SPIRITS_TRBEXT_DATA_AMBPRS(double val);
164  double get_SPIRITS_TRBEXT_DATA_AMBPRS();
165  void set_SPIRITS_TRBEXT_DATA_TOTAIN(double val);
166  double get_SPIRITS_TRBEXT_DATA_TOTAIN();
167  void set_SPIRITS_TRBEXT_DATA_CORAIN(double val);
168  double get_SPIRITS_TRBEXT_DATA_CORAIN();
169  void set_SPIRITS_TRBEXT_DATA_CORRPM(double val);
170  double get_SPIRITS_TRBEXT_DATA_CORRPM();
171  void set_SPIRITS_TRBEXT_DATA_CORPER(double val);
172  double get_SPIRITS_TRBEXT_DATA_CORPER();
173  void set_SPIRITS_TRBEXT_DATA_CORTMP(double val);
174  double get_SPIRITS_TRBEXT_DATA_CORTMP();
175  void set_SPIRITS_TRBEXT_DATA_CORTTM(double val);
176  double get_SPIRITS_TRBEXT_DATA_CORTTM();
177  void set_SPIRITS_TRBEXT_DATA_CORPRS(double val);
178  double get_SPIRITS_TRBEXT_DATA_CORPRS();
179  void set_SPIRITS_TRBEXT_DATA_CORTPR(double val);
180  double get_SPIRITS_TRBEXT_DATA_CORTPR();
181  void set_SPIRITS_TRBEXT_DATA_CORMCH(double val);
182  double get_SPIRITS_TRBEXT_DATA_CORMCH();
183  void set_SPIRITS_TRBEXT_DATA_FANTMP(double val);
184  double get_SPIRITS_TRBEXT_DATA_FANTMP();
185  void set_SPIRITS_TRBEXT_DATA_FANTTM(double val);
186  double get_SPIRITS_TRBEXT_DATA_FANTTM();
187  void set_SPIRITS_TRBEXT_DATA_FANPRS(double val);
188  double get_SPIRITS_TRBEXT_DATA_FANPRS();
189  void set_SPIRITS_TRBEXT_DATA_FANTPR(double val);
190  double get_SPIRITS_TRBEXT_DATA_FANTPR();
191  void set_SPIRITS_TRBEXT_DATA_FANMCH(double val);
192  double get_SPIRITS_TRBEXT_DATA_FANMCH();
193  void set_SPIRITS_TRBEXT_DATA_FANRPM(double val);
194  double get_SPIRITS_TRBEXT_DATA_FANRPM();
195  void set_SPIRITS_TRBEXT_DATA_FANPER(double val);
196  double get_SPIRITS_TRBEXT_DATA_FANPER();
197  void set_SPIRITS_TRBEXT_DATA_STRTMP(double val);
198  double get_SPIRITS_TRBEXT_DATA_STRTMP();
199  void set_SPIRITS_TRBEXT_DATA_STRTTM(double val);
200  double get_SPIRITS_TRBEXT_DATA_STRTTM();
201  void set_SPIRITS_TRBEXT_DATA_STRMCH(double val);
202  double get_SPIRITS_TRBEXT_DATA_STRMCH();
203  void set_SPIRITS_TRBEXT_DATA_STRTPR(double val);
204  double get_SPIRITS_TRBEXT_DATA_STRTPR();
205  void set_SPIRITS_TRBEXT_DATA_STRPRS(double val);
206  double get_SPIRITS_TRBEXT_DATA_STRPRS();
207  void set_SPIRITS_TRBEXT_DATA_TOTFUL(double val);
208  double get_SPIRITS_TRBEXT_DATA_TOTFUL();
209  void set_SPIRITS_TRBEXT_DATA_TRBTTM(double val);
210  double get_SPIRITS_TRBEXT_DATA_TRBTTM();
211  void set_SPIRITS_TRBEXT_DATA_CMBFUL(double val);
212  double get_SPIRITS_TRBEXT_DATA_CMBFUL();
213  void set_SPIRITS_TRBEXT_DATA_ABFUL(double val);
214  double get_SPIRITS_TRBEXT_DATA_ABFUL();
215  void set_SPIRITS_TRBEXT_DATA_SFUELC(double val);
216  double get_SPIRITS_TRBEXT_DATA_SFUELC();
217  void set_SPIRITS_TRBEXT_DATA_MIXPRR(double val);
218  double get_SPIRITS_TRBEXT_DATA_MIXPRR();
219  void set_SPIRITS_TRBEXT_DATA_SHFTHP(double val);
220  double get_SPIRITS_TRBEXT_DATA_SHFTHP();
221  void set_SPIRITS_TRBEXT_DATA_TORQUE(double val);
222  double get_SPIRITS_TRBEXT_DATA_TORQUE();
223  void set_SPIRITS_TRBEXT_DATA_PROPRD(double val);
224  double get_SPIRITS_TRBEXT_DATA_PROPRD();
225  void set_SPIRITS_TRBEXT_DATA_PROPNP(double val);
226  double get_SPIRITS_TRBEXT_DATA_PROPNP();
227  void set_SPIRITS_TRBEXT_DATA_AOA(double val);
228  double get_SPIRITS_TRBEXT_DATA_AOA();
229  void set_SPIRITS_TRBEXT_DATA_AOR(double val);
230  double get_SPIRITS_TRBEXT_DATA_AOR();
231  void set_SPIRITS_TRBEXT_DATA_ROL(double val);
232  double get_SPIRITS_TRBEXT_DATA_ROL();
233  void set_SPIRITS_TRBEXT_DATA_EPR(double val);
234  double get_SPIRITS_TRBEXT_DATA_EPR();
235  void set_SPIRITS_TRBEXT_DATA_RAMREC(double val);
236  double get_SPIRITS_TRBEXT_DATA_RAMREC();
237  void set_SPIRITS_TRBEXT_DATA_MIXPCT(double val);
238  double get_SPIRITS_TRBEXT_DATA_MIXPCT();
239  void set_SPIRITS_TRBEXT_DATA_USRRAD(double val);
240  double get_SPIRITS_TRBEXT_DATA_USRRAD();
241  void set_SPIRITS_TRBEXT_DATA_NOZARE(double val);
242  double get_SPIRITS_TRBEXT_DATA_NOZARE();
243  void set_SPIRITS_TRBEXT_DATA_STRARE(double val);
244  double get_SPIRITS_TRBEXT_DATA_STRARE();
245  void set_SPIRITS_TRBEXT_DATA_INLTTM(double val);
246  double get_SPIRITS_TRBEXT_DATA_INLTTM();
247  void set_SPIRITS_TRBEXT_DATA_INLTMP(double val);
248  double get_SPIRITS_TRBEXT_DATA_INLTMP();
249  void set_SPIRITS_TRBEXT_DATA_INLTPR(double val);
250  double get_SPIRITS_TRBEXT_DATA_INLTPR();
251  void set_SPIRITS_TRBEXT_DATA_CTLTTM(double val);
252  double get_SPIRITS_TRBEXT_DATA_CTLTTM();
253  void set_SPIRITS_TRBEXT_DATA_PLMLEN(double val);
254  double get_SPIRITS_TRBEXT_DATA_PLMLEN();
255 
256  void loadArgXML(char *str, double &d);
257  void loadArgXML(char *str, int &i);
258 
259  void saveArgXML(clXML* xmlDocument, char *str, double d);
260  void saveArgXML(clXML* xmlDocument, char *str, int i);
261 
262 
264  // archive
272  bool archive(std::ofstream &outf);
273 
275  // serialize
283  bool serialize(char *filepath);
284 
285  //
286  // loadXML
287  //
288  // \par Description:
289  // Loads attributes from an XML node
290  //
291  // \param clXMLNode* GreNrtNode
292  // \return bool
293  //
294  bool loadXML(clXMLNode* GreNrtNode);
295 
296  //
297  // parseXML
298  //
299  // \par Description:
300  // Parses an XML document for specific tags
301  //
302  // \param clXML xmlDocument
303  // \return bool
304  //
305  bool parseXML(clXML& xmlDocument);
306 
308  //loadXMLNode
315  bool loadXMLNode(std::string tag, char *nodeString);
317  //loadXMLNode
324  bool loadXMLNode(std::string tag, bool *nodeBool);
326  //loadXMLNode
333  bool loadXMLNode(std::string tag, int *nodeBool);
335  //loadXMLNode
342  bool loadXMLNode(std::string tag, double *nodeBool);
343 
344  //
345  // saveXML
346  //
347  // \par Description:
348  // Saves XML nodes to an XML document
349  //
350  // \param clXML* xmlDocument
351  //
352  void saveXML(clXML* xmlDocument, const char *ID_XML_NODE);
353 
355  // operator =
363  ciGreNrt operator = (ciGreNrt &obj);
364 
365 protected: // methods
366 
367 public: // construction/destruction
368 
370  // ciTrack
375  ciGreNrt();
376 
378  // ciGreNrt
385  ciGreNrt(ciGreNrt &obj);
386 
387  virtual ~ciGreNrt();
388 
389 protected: // variables
390 
391  SpiritsTrbextData *TRBEXT_DATA;
392  SpiritsTrbextOptions *TRBEXT_OPTIONS;
393 
395 private: // variables
396 
397 };
398 
399 #endif // _ciGreNrt_H_


Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)