@@ -26,20 +26,20 @@ def setUp(self):
26
26
27
27
self .prob .set_val ('DESIGN.hpc.PR' , 9.369 )
28
28
self .prob .set_val ('DESIGN.hpc.eff' , 0.8707 )
29
-
29
+
30
30
self .prob .set_val ('DESIGN.hpt.eff' , 0.8888 )
31
31
self .prob .set_val ('DESIGN.lpt.eff' , 0.8996 )
32
-
32
+
33
33
self .prob .set_val ('DESIGN.fc.alt' , 35000. , units = 'ft' )
34
34
self .prob .set_val ('DESIGN.fc.MN' , 0.8 )
35
-
35
+
36
36
self .prob .set_val ('DESIGN.T4_MAX' , 2857 , units = 'degR' )
37
- self .prob .set_val ('DESIGN.Fn_DES' , 5900.0 , units = 'lbf' )
37
+ self .prob .set_val ('DESIGN.Fn_DES' , 5900.0 , units = 'lbf' )
38
38
39
39
self .prob .set_val ('OD_full_pwr.T4_MAX' , 2857 , units = 'degR' )
40
40
self .prob .set_val ('OD_part_pwr.PC' , 0.8 )
41
41
42
-
42
+
43
43
# Set initial guesses for balances
44
44
self .prob ['DESIGN.balance.FAR' ] = 0.025
45
45
self .prob ['DESIGN.balance.W' ] = 100.
@@ -48,15 +48,15 @@ def setUp(self):
48
48
self .prob ['DESIGN.fc.balance.Pt' ] = 5.2
49
49
self .prob ['DESIGN.fc.balance.Tt' ] = 440.0
50
50
51
-
51
+
52
52
for pt in ['OD_full_pwr' , 'OD_part_pwr' ]:
53
53
54
54
# initial guesses
55
55
self .prob [pt + '.balance.FAR' ] = 0.02467
56
56
self .prob [pt + '.balance.W' ] = 300
57
57
self .prob [pt + '.balance.BPR' ] = 5.105
58
- self .prob [pt + '.balance.lp_Nmech' ] = 5000
59
- self .prob [pt + '.balance.hp_Nmech' ] = 15000
58
+ self .prob [pt + '.balance.lp_Nmech' ] = 5000
59
+ self .prob [pt + '.balance.hp_Nmech' ] = 15000
60
60
self .prob [pt + '.hpt.PR' ] = 3.
61
61
self .prob [pt + '.lpt.PR' ] = 4.
62
62
self .prob [pt + '.fan.map.RlineMap' ] = 2.0
@@ -65,153 +65,154 @@ def setUp(self):
65
65
66
66
67
67
def benchmark_case1 (self ):
68
- np .seterr (divide = 'raise' )
69
-
70
-
71
- self .prob .set_solver_print (level = - 1 )
72
- self .prob .set_solver_print (level = 2 , depth = 1 )
73
- self .prob .run_model ()
74
- tol = 1e-5
75
- print ()
76
-
77
- reg_data = 344.303
78
- pyc = self .prob ['DESIGN.inlet.Fl_O:stat:W' ][0 ]
79
- print ('W:' , pyc , reg_data )
80
- assert_near_equal (pyc , reg_data , tol )
81
-
82
- reg_data = 30.094
83
- pyc = self .prob ['DESIGN.perf.OPR' ][0 ]
84
- print ('OPR:' , pyc , reg_data )
85
- assert_near_equal (pyc , reg_data , tol )
86
-
87
- reg_data = 0.02491989
88
- pyc = self .prob ['DESIGN.balance.FAR' ][0 ]
89
- print ('FAR:' , pyc , reg_data )
90
- assert_near_equal (pyc , reg_data , tol )
91
-
92
- reg_data = 3.61475
93
- pyc = self .prob ['DESIGN.balance.hpt_PR' ][0 ]
94
- print ('HPT PR:' , pyc , reg_data )
95
- assert_near_equal (pyc , reg_data , tol )
96
-
97
- reg_data = 4.3656305
98
- pyc = self .prob ['DESIGN.balance.lpt_PR' ][0 ]
99
- print ('LPT PR:' , pyc , reg_data )
100
- assert_near_equal (pyc , reg_data , tol )
101
-
102
- reg_data = 14232.2
103
- pyc = self .prob ['DESIGN.perf.Fg' ][0 ]
104
- print ('Fg:' , pyc , reg_data )
105
- assert_near_equal (pyc , reg_data , tol )
106
-
107
- reg_data = 0.63071997
108
- pyc = self .prob ['DESIGN.perf.TSFC' ][0 ]
109
- print ('TSFC:' , pyc , reg_data )
110
- assert_near_equal (pyc , reg_data , tol )
111
-
112
- reg_data = 1276.47613
113
- pyc = self .prob ['DESIGN.bld3.Fl_O:tot:T' ][0 ]
114
- print ('Tt3:' , pyc , reg_data )
115
- assert_near_equal (pyc , reg_data , tol )
116
-
117
-
118
- print ('#' * 10 )
119
- print ('# OD_full_pwr' )
120
- print ('#' * 10 )
121
- reg_data = 344.303
122
- pyc = self .prob ['OD_full_pwr.inlet.Fl_O:stat:W' ][0 ]
123
- print ('W:' , pyc , reg_data )
124
- assert_near_equal (pyc , reg_data , tol )
125
-
126
- reg_data = 30.0937151
127
- pyc = self .prob ['OD_full_pwr.perf.OPR' ][0 ]
128
- print ('OPR:' , pyc , reg_data )
129
- assert_near_equal (pyc , reg_data , tol )
130
-
131
- reg_data = 0.0249198
132
- pyc = self .prob ['OD_full_pwr.balance.FAR' ][0 ]
133
- print ('FAR:' , pyc , reg_data )
134
- assert_near_equal (pyc , reg_data , tol )
135
-
136
- reg_data = 14705.7
137
- pyc = self .prob ['OD_full_pwr.balance.hp_Nmech' ][0 ]
138
- print ('HPT Nmech:' , pyc , reg_data )
139
- assert_near_equal (pyc , reg_data , tol )
140
-
141
- reg_data = 4666.1
142
- pyc = self .prob ['OD_full_pwr.balance.lp_Nmech' ][0 ]
143
- print ('LPT Nmech:' , pyc , reg_data )
144
- assert_near_equal (pyc , reg_data , tol )
145
-
146
- reg_data = 14232.2
147
- pyc = self .prob ['OD_full_pwr.perf.Fg' ][0 ]
148
- print ('Fg:' , pyc , reg_data )
149
- assert_near_equal (pyc , reg_data , tol )
150
-
151
- reg_data = 0.63071997
152
- pyc = self .prob ['OD_full_pwr.perf.TSFC' ][0 ]
153
- print ('TSFC:' , pyc , reg_data )
154
- assert_near_equal (pyc , reg_data , tol )
155
-
156
- reg_data = 1276.48
157
- pyc = self .prob ['OD_full_pwr.bld3.Fl_O:tot:T' ][0 ]
158
- print ('Tt3:' , pyc , reg_data )
159
- assert_near_equal (pyc , reg_data , tol )
160
-
161
- reg_data = 5.105
162
- pyc = self .prob ['OD_full_pwr.balance.BPR' ][0 ]
163
- print ('BPR:' , pyc , reg_data )
164
- assert_near_equal (pyc , reg_data , tol )
165
-
166
-
167
- print ('#' * 10 )
168
- print ('# OD_part_pwr' )
169
- print ('#' * 10 )
170
- reg_data = 324.633
171
- pyc = self .prob ['OD_part_pwr.inlet.Fl_O:stat:W' ][0 ]
172
- print ('W:' , pyc , reg_data )
173
- assert_near_equal (pyc , reg_data , tol )
174
-
175
- reg_data = 25.21321086
176
- pyc = self .prob ['OD_part_pwr.perf.OPR' ][0 ]
177
- print ('OPR:' , pyc , reg_data )
178
- assert_near_equal (pyc , reg_data , tol )
179
-
180
- reg_data = 0.0224776
181
- pyc = self .prob ['OD_part_pwr.balance.FAR' ][0 ]
182
- print ('FAR:' , pyc , reg_data )
183
- assert_near_equal (pyc , reg_data , tol )
184
-
185
- reg_data = 14251.973
186
- pyc = self .prob ['OD_part_pwr.balance.hp_Nmech' ][0 ]
187
- print ('HPT Nmech:' , pyc , reg_data )
188
- assert_near_equal (pyc , reg_data , tol )
189
-
190
- reg_data = 4301.935
191
- pyc = self .prob ['OD_part_pwr.balance.lp_Nmech' ][0 ]
192
- print ('LPT Nmech:' , pyc , reg_data )
193
- assert_near_equal (pyc , reg_data , tol )
194
-
195
- reg_data = 12576.2
196
- pyc = self .prob ['OD_part_pwr.perf.Fg' ][0 ]
197
- print ('Fg:' , pyc , reg_data )
198
- assert_near_equal (pyc , reg_data , tol )
199
-
200
- reg_data = 0.61883
201
- pyc = self .prob ['OD_part_pwr.perf.TSFC' ][0 ]
202
- print ('TSFC:' , pyc , reg_data )
203
- assert_near_equal (pyc , reg_data , tol )
204
-
205
- reg_data = 1205.007
206
- pyc = self .prob ['OD_part_pwr.bld3.Fl_O:tot:T' ][0 ]
207
- print ('Tt3:' , pyc , reg_data )
208
- assert_near_equal (pyc , reg_data , tol )
209
-
210
- reg_data = 5.614823
211
- pyc = self .prob ['OD_part_pwr.balance.BPR' ][0 ]
212
- print ('BPR:' , pyc , reg_data )
213
- assert_near_equal (pyc , reg_data , tol )
214
-
68
+ old = np .seterr (divide = 'raise' )
69
+
70
+ try :
71
+ self .prob .set_solver_print (level = - 1 )
72
+ self .prob .set_solver_print (level = 2 , depth = 1 )
73
+ self .prob .run_model ()
74
+ tol = 1e-5
75
+ print ()
76
+
77
+ reg_data = 344.303
78
+ pyc = self .prob ['DESIGN.inlet.Fl_O:stat:W' ][0 ]
79
+ print ('W:' , pyc , reg_data )
80
+ assert_near_equal (pyc , reg_data , tol )
81
+
82
+ reg_data = 30.094
83
+ pyc = self .prob ['DESIGN.perf.OPR' ][0 ]
84
+ print ('OPR:' , pyc , reg_data )
85
+ assert_near_equal (pyc , reg_data , tol )
86
+
87
+ reg_data = 0.02491989
88
+ pyc = self .prob ['DESIGN.balance.FAR' ][0 ]
89
+ print ('FAR:' , pyc , reg_data )
90
+ assert_near_equal (pyc , reg_data , tol )
91
+
92
+ reg_data = 3.61475
93
+ pyc = self .prob ['DESIGN.balance.hpt_PR' ][0 ]
94
+ print ('HPT PR:' , pyc , reg_data )
95
+ assert_near_equal (pyc , reg_data , tol )
96
+
97
+ reg_data = 4.3656305
98
+ pyc = self .prob ['DESIGN.balance.lpt_PR' ][0 ]
99
+ print ('LPT PR:' , pyc , reg_data )
100
+ assert_near_equal (pyc , reg_data , tol )
101
+
102
+ reg_data = 14232.2
103
+ pyc = self .prob ['DESIGN.perf.Fg' ][0 ]
104
+ print ('Fg:' , pyc , reg_data )
105
+ assert_near_equal (pyc , reg_data , tol )
106
+
107
+ reg_data = 0.63071997
108
+ pyc = self .prob ['DESIGN.perf.TSFC' ][0 ]
109
+ print ('TSFC:' , pyc , reg_data )
110
+ assert_near_equal (pyc , reg_data , tol )
111
+
112
+ reg_data = 1276.47613
113
+ pyc = self .prob ['DESIGN.bld3.Fl_O:tot:T' ][0 ]
114
+ print ('Tt3:' , pyc , reg_data )
115
+ assert_near_equal (pyc , reg_data , tol )
116
+
117
+
118
+ print ('#' * 10 )
119
+ print ('# OD_full_pwr' )
120
+ print ('#' * 10 )
121
+ reg_data = 344.303
122
+ pyc = self .prob ['OD_full_pwr.inlet.Fl_O:stat:W' ][0 ]
123
+ print ('W:' , pyc , reg_data )
124
+ assert_near_equal (pyc , reg_data , tol )
125
+
126
+ reg_data = 30.0937151
127
+ pyc = self .prob ['OD_full_pwr.perf.OPR' ][0 ]
128
+ print ('OPR:' , pyc , reg_data )
129
+ assert_near_equal (pyc , reg_data , tol )
130
+
131
+ reg_data = 0.0249198
132
+ pyc = self .prob ['OD_full_pwr.balance.FAR' ][0 ]
133
+ print ('FAR:' , pyc , reg_data )
134
+ assert_near_equal (pyc , reg_data , tol )
135
+
136
+ reg_data = 14705.7
137
+ pyc = self .prob ['OD_full_pwr.balance.hp_Nmech' ][0 ]
138
+ print ('HPT Nmech:' , pyc , reg_data )
139
+ assert_near_equal (pyc , reg_data , tol )
140
+
141
+ reg_data = 4666.1
142
+ pyc = self .prob ['OD_full_pwr.balance.lp_Nmech' ][0 ]
143
+ print ('LPT Nmech:' , pyc , reg_data )
144
+ assert_near_equal (pyc , reg_data , tol )
145
+
146
+ reg_data = 14232.2
147
+ pyc = self .prob ['OD_full_pwr.perf.Fg' ][0 ]
148
+ print ('Fg:' , pyc , reg_data )
149
+ assert_near_equal (pyc , reg_data , tol )
150
+
151
+ reg_data = 0.63071997
152
+ pyc = self .prob ['OD_full_pwr.perf.TSFC' ][0 ]
153
+ print ('TSFC:' , pyc , reg_data )
154
+ assert_near_equal (pyc , reg_data , tol )
155
+
156
+ reg_data = 1276.48
157
+ pyc = self .prob ['OD_full_pwr.bld3.Fl_O:tot:T' ][0 ]
158
+ print ('Tt3:' , pyc , reg_data )
159
+ assert_near_equal (pyc , reg_data , tol )
160
+
161
+ reg_data = 5.105
162
+ pyc = self .prob ['OD_full_pwr.balance.BPR' ][0 ]
163
+ print ('BPR:' , pyc , reg_data )
164
+ assert_near_equal (pyc , reg_data , tol )
165
+
166
+
167
+ print ('#' * 10 )
168
+ print ('# OD_part_pwr' )
169
+ print ('#' * 10 )
170
+ reg_data = 324.633
171
+ pyc = self .prob ['OD_part_pwr.inlet.Fl_O:stat:W' ][0 ]
172
+ print ('W:' , pyc , reg_data )
173
+ assert_near_equal (pyc , reg_data , tol )
174
+
175
+ reg_data = 25.21321086
176
+ pyc = self .prob ['OD_part_pwr.perf.OPR' ][0 ]
177
+ print ('OPR:' , pyc , reg_data )
178
+ assert_near_equal (pyc , reg_data , tol )
179
+
180
+ reg_data = 0.0224776
181
+ pyc = self .prob ['OD_part_pwr.balance.FAR' ][0 ]
182
+ print ('FAR:' , pyc , reg_data )
183
+ assert_near_equal (pyc , reg_data , tol )
184
+
185
+ reg_data = 14251.973
186
+ pyc = self .prob ['OD_part_pwr.balance.hp_Nmech' ][0 ]
187
+ print ('HPT Nmech:' , pyc , reg_data )
188
+ assert_near_equal (pyc , reg_data , tol )
189
+
190
+ reg_data = 4301.935
191
+ pyc = self .prob ['OD_part_pwr.balance.lp_Nmech' ][0 ]
192
+ print ('LPT Nmech:' , pyc , reg_data )
193
+ assert_near_equal (pyc , reg_data , tol )
194
+
195
+ reg_data = 12576.2
196
+ pyc = self .prob ['OD_part_pwr.perf.Fg' ][0 ]
197
+ print ('Fg:' , pyc , reg_data )
198
+ assert_near_equal (pyc , reg_data , tol )
199
+
200
+ reg_data = 0.61883
201
+ pyc = self .prob ['OD_part_pwr.perf.TSFC' ][0 ]
202
+ print ('TSFC:' , pyc , reg_data )
203
+ assert_near_equal (pyc , reg_data , tol )
204
+
205
+ reg_data = 1205.007
206
+ pyc = self .prob ['OD_part_pwr.bld3.Fl_O:tot:T' ][0 ]
207
+ print ('Tt3:' , pyc , reg_data )
208
+ assert_near_equal (pyc , reg_data , tol )
209
+
210
+ reg_data = 5.614823
211
+ pyc = self .prob ['OD_part_pwr.balance.BPR' ][0 ]
212
+ print ('BPR:' , pyc , reg_data )
213
+ assert_near_equal (pyc , reg_data , tol )
214
+ finally :
215
+ np .seterr (** old )
215
216
216
217
if __name__ == "__main__" :
217
218
unittest .main ()
0 commit comments