|
46 | 46 | propertyR4 = gui_get_prop(app.PR4.Value); |
47 | 47 | additionalInputsR = [additionalInputsR, 'mach', propertyR4]; |
48 | 48 | case {'SHOCK_OBLIQUE', 'SHOCK_POLAR_R'} |
49 | | - propertyR4 = gui_get_prop(app.PR4.Value); |
50 | | - propertyR5 = gui_get_prop(app.PR5.Value); |
51 | | - propertyP5 = gui_get_prop(app.PP5.Value); |
52 | | - |
53 | | - if ~isempty(propertyR5) |
54 | | - FLAG_BETA = true; |
55 | | - additionalInputsR = [additionalInputsR, 'mach', propertyR4, 'beta', propertyR5]; |
56 | | - else |
57 | | - FLAG_THETA = true; |
58 | | - additionalInputsR = [additionalInputsR, 'mach', propertyR4, 'theta', propertyP5]; |
59 | | - end |
| 49 | + propertyR4 = gui_get_prop(app.PR4.Value); |
| 50 | + propertyR5 = gui_get_prop(app.PR5.Value); |
| 51 | + propertyP5 = gui_get_prop(app.PP5.Value); |
| 52 | + |
| 53 | + if ~isempty(propertyR5) |
| 54 | + FLAG_BETA = true; |
| 55 | + additionalInputsR = [additionalInputsR, 'mach', propertyR4, 'beta', propertyR5]; |
| 56 | + else |
| 57 | + FLAG_THETA = true; |
| 58 | + additionalInputsR = [additionalInputsR, 'mach', propertyR4, 'theta', propertyP5]; |
| 59 | + end |
60 | 60 |
|
61 | 61 | case {'DET_OVERDRIVEN', 'DET_UNDERDRIVEN', 'DET_OVERDRIVEN_R', 'DET_UNDERDRIVEN_R', 'DET_POLAR'} |
62 | 62 | propertyR3 = gui_get_prop(app.PR3.Value); |
63 | 63 | additionalInputsR = [additionalInputsR, 'driveFactor', propertyR3]; |
64 | 64 | case {'DET_OBLIQUE', 'DET_POLAR_R'} |
65 | | - propertyR3 = gui_get_prop(app.PR3.Value); |
66 | | - propertyR4 = gui_get_prop(app.PR4.Value); |
67 | | - propertyP4 = gui_get_prop(app.PP4.Value); |
68 | | - |
69 | | - if ~isempty(propertyR4) |
70 | | - FLAG_BETA = true; |
71 | | - additionalInputsR = [additionalInputsR, 'driveFactor', propertyR3, 'beta', propertyR4]; |
72 | | - else |
73 | | - FLAG_THETA = true; |
74 | | - additionalInputsR = [additionalInputsR, 'driveFactor', propertyR3, 'theta', propertyP4]; |
75 | | - end |
| 65 | + propertyR3 = gui_get_prop(app.PR3.Value); |
| 66 | + propertyR4 = gui_get_prop(app.PR4.Value); |
| 67 | + propertyP4 = gui_get_prop(app.PP4.Value); |
| 68 | + |
| 69 | + if ~isempty(propertyR4) |
| 70 | + FLAG_BETA = true; |
| 71 | + additionalInputsR = [additionalInputsR, 'driveFactor', propertyR3, 'beta', propertyR4]; |
| 72 | + else |
| 73 | + FLAG_THETA = true; |
| 74 | + additionalInputsR = [additionalInputsR, 'driveFactor', propertyR3, 'theta', propertyP4]; |
| 75 | + end |
76 | 76 | case {'ROCKET'} |
77 | 77 | propertyP1 = gui_get_prop(app.PP1.Value); |
78 | 78 | propertyR3 = gui_get_prop(app.PR3.Value); |
|
96 | 96 | FLAG_ARATIO = true; |
97 | 97 | end |
98 | 98 |
|
| 99 | + case {'SHOCKTURBULENCE_VORTICAL', 'SHOCKTURBULENCE_ACOUSTIC'} |
| 100 | + propertyP1 = 0; propertyP2 = 0; |
| 101 | + propertyR4 = gui_get_prop(app.PR4.Value); |
| 102 | + additionalInputsR = [additionalInputsR, 'mach', propertyR4]; |
| 103 | + case {'SHOCKTURBULENCE_VORTICAL_ENTROPIC'} |
| 104 | + propertyP1 = 0; |
| 105 | + propertyP2 = gui_get_prop(app.PP1.Value); |
| 106 | + propertyR4 = gui_get_prop(app.PR4.Value); |
| 107 | + additionalInputsR = [additionalInputsR, 'mach', propertyR4, 'chi', propertyP2]; |
| 108 | + case {'SHOCKTURBULENCE_COMPRESSIBLE'} |
| 109 | + propertyP1 = gui_get_prop(app.PP1.Value); |
| 110 | + propertyP2 = gui_get_prop(app.PP2.Value); |
| 111 | + propertyP6 = gui_get_prop(app.PP6.Value); |
| 112 | + propertyR4 = gui_get_prop(app.PR4.Value); |
| 113 | + additionalInputsR = [additionalInputsR, 'mach', propertyR4, 'eta', propertyP1, 'chi', propertyP2, 'etaVorticity', propertyP6]; |
99 | 114 | otherwise |
100 | 115 | propertyP1 = propertyR1; |
101 | 116 | propertyP2 = propertyR2; |
|
175 | 190 | problemType = strrep(problemType, '_BETA', ''); |
176 | 191 | % Select solver |
177 | 192 | solver = set(app.shockSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 193 | + % Turn off FLAG_RESULTS of subsolvers |
| 194 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
178 | 195 | % Solve problem |
179 | 196 | [mixArray1, mixArray2] = solver.solveArray(mixArray1); |
180 | 197 | % Set output |
|
187 | 204 | problemType = strrep(problemType, '_THETA', ''); |
188 | 205 | % Select solver |
189 | 206 | solver = set(app.shockSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 207 | + % Turn off FLAG_RESULTS of subsolvers |
| 208 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
190 | 209 | % Solve problem |
191 | 210 | [mixArray1, mixArray2, mixArray3] = solver.solveArray(mixArray1); |
192 | 211 | % Set output |
|
200 | 219 | problemType = strrep(problemType, '_THETA', ''); |
201 | 220 | % Select solver |
202 | 221 | solver = set(app.shockSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 222 | + % Turn off FLAG_RESULTS of subsolvers |
| 223 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
203 | 224 | % Solve problem |
204 | 225 | [mixArray1, mixArray2, mixArray3, mix4Array] = solver.solveArray(mixArray1); |
205 | 226 | % Set output |
|
212 | 233 | problemType = strrep(problemType, '_BETA', ''); |
213 | 234 | % Select solver |
214 | 235 | solver = set(app.shockSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 236 | + % Turn off FLAG_RESULTS of subsolvers |
| 237 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
215 | 238 | % Solve problem |
216 | 239 | [mixArray1, mixArray2, mixArray3, mix4Array, mix5Array] = solver.solveArray(mixArray1); |
217 | 240 | % Set output |
|
224 | 247 | problemType = strrep(problemType, '_THETA', ''); |
225 | 248 | % Select solver |
226 | 249 | solver = set(app.shockSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 250 | + % Turn off FLAG_RESULTS of subsolvers |
| 251 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
227 | 252 | % Solve problem |
228 | 253 | [mixArray1, mixArray2, mixArray3, mix4Array, mix5Array, mix6Array] = solver.solveArray(mixArray1); |
229 | 254 | % Set output |
|
234 | 259 | case {'DET', 'DET_OVERDRIVEN', 'DET_UNDERDRIVEN', 'DET_POLAR'} |
235 | 260 | % Select solver |
236 | 261 | solver = set(app.detonationSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 262 | + % Turn off FLAG_RESULTS of subsolvers |
| 263 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
237 | 264 | % Solve problem |
238 | 265 | [mixArray1, mixArray2] = solver.solveArray(mixArray1); |
239 | 266 | % Set output |
|
247 | 274 | problemType = strrep(problemType, '_THETA', ''); |
248 | 275 | % Select solver |
249 | 276 | solver = set(app.detonationSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 277 | + % Turn off FLAG_RESULTS of subsolvers |
| 278 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
250 | 279 | % Solve problem |
251 | 280 | [mixArray1, mixArray2, mixArray3] = solver.solveArray(mixArray1); |
252 | 281 | % Set output |
|
257 | 286 | case {'DET_POLAR_LIMITRR'} |
258 | 287 | % Select solver |
259 | 288 | solver = set(app.detonationSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 289 | + % Turn off FLAG_RESULTS of subsolvers |
| 290 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
260 | 291 | % Solve problem |
261 | 292 | [mixArray1, mixArray2, mixArray3, mixArray4] = solver.solveArray(mixArray1); |
262 | 293 | % Set output |
|
269 | 300 | problemType = strrep(problemType, '_BETA', ''); |
270 | 301 | % Select solver |
271 | 302 | solver = set(app.detonationSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 303 | + % Turn off FLAG_RESULTS of subsolvers |
| 304 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
272 | 305 | % Solve problem |
273 | 306 | [mixArray1, mixArray2, mixArray3, mixArray4, mixArray5] = solver.solveArray(mixArray1); |
274 | 307 | % Set output |
|
277 | 310 | solver.plotConfig.plotProperties = {'T', 'rho', 'h', 'e', 'g', 'cp', 's', 'gamma_s', 'sound', 'uShock'}; |
278 | 311 | solver.plotConfig.plotPropertiesBasis = {[], [], 'mi', 'mi', 'mi', 'mi', 'mi', [], [], []}; |
279 | 312 | case {'DET_POLAR_R_THETA'} |
| 313 | + % Select solver |
280 | 314 | solver = set(app.detonationSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 315 | + % Turn off FLAG_RESULTS of subsolvers |
| 316 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
281 | 317 | % Solve problem |
282 | 318 | [mixArray1, mixArray2, mixArray3, mixArray4, mixArray5, mixArray6] = solver.solveArray(mixArray1); |
283 | 319 | % Set output |
|
288 | 324 | case {'ROCKET_IAC'} |
289 | 325 | % Select solver |
290 | 326 | solver = set(app.rocketSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 327 | + % Turn off FLAG_RESULTS of subsolvers |
| 328 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
291 | 329 | % Solve problem |
292 | 330 | [mixArray1, mixArray2, mixArray3] = solver.solveArray(mixArray1); |
293 | 331 | % Set output |
|
301 | 339 | problemType = strrep(problemType, '_ARATIO', ''); |
302 | 340 | % Select solver |
303 | 341 | solver = set(app.rocketSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 342 | + % Turn off FLAG_RESULTS of subsolvers |
| 343 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
304 | 344 | % Solve problem |
305 | 345 | [mixArray1, mixArray2, mixArray3, mixArray4] = solver.solveArray(mixArray1); |
306 | 346 | % Set output |
|
316 | 356 | case {'ROCKET_FAC'} |
317 | 357 | % Select solver |
318 | 358 | solver = set(app.rocketSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 359 | + % Turn off FLAG_RESULTS of subsolvers |
| 360 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
319 | 361 | % Solve problem |
320 | 362 | [mixArray1, mixArray2, mixArray3, mixArray4] = solver.solveArray(mixArray1); |
321 | 363 | % Set output |
|
329 | 371 | problemType = strrep(problemType, '_ARATIO', ''); |
330 | 372 | % Select solver |
331 | 373 | solver = set(app.rocketSolver, 'problemType', problemType, 'FLAG_RESULTS', FLAG_RESULTS); |
| 374 | + % Turn off FLAG_RESULTS of subsolvers |
| 375 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
332 | 376 | % Solve problem |
333 | 377 | [mixArray1, mixArray2, mixArray3, mixArray4, mixArray5] = solver.solveArray(mixArray1); |
334 | 378 | % Set output |
|
341 | 385 | % Set plot properties |
342 | 386 | solver.plotConfig.plotProperties = {'T', 'rho', 'h', 'e', 'g', 'cp', 's', 'gamma_s', 'sound', 'u', 'I_sp', 'I_vac'}; |
343 | 387 | solver.plotConfig.plotPropertiesBasis = {[], [], 'mi', 'mi', 'mi', 'mi', 'mi', [], [], [], [], []}; |
| 388 | + case {'SHOCKTURBULENCE_VORTICAL', 'SHOCKTURBULENCE_VORTICAL_ENTROPIC', 'SHOCKTURBULENCE_ACOUSTIC', 'SHOCKTURBULENCE_COMPRESSIBLE'} |
| 389 | + % Select solver |
| 390 | + solver = set(app.shockTurbulenceSolver, 'problemType', strrep(problemType, 'SHOCKTURBULENCE_', ''), 'FLAG_RESULTS', FLAG_RESULTS); |
| 391 | + % Turn off FLAG_RESULTS of subsolvers |
| 392 | + solver.equilibriumSolver.FLAG_RESULTS = false; |
| 393 | + solver.shockSolver.FLAG_RESULTS = false; |
| 394 | + solver.jumpConditionsSolver.FLAG_RESULTS = false; |
| 395 | + % Solve problem |
| 396 | + [resultsLIA, mixArray1, mixArray2] = solver.solve(mixArray1); |
| 397 | + |
| 398 | + % Set output |
| 399 | + varargout = {resultsLIA, mixArray1, mixArray2}; |
| 400 | + |
| 401 | + % Set plot properties |
| 402 | + solver.plotConfig.plotProperties = {'K', 'R11', 'RTT', 'Ka', 'Kr', 'enstrophy', 'kolmogorovLengthRatio'}; |
| 403 | + solver.plotConfig.plotPropertiesBasis = {[], [], [], [], [], [], []}; |
344 | 404 | otherwise |
345 | 405 | error('Problem type %s is not found', problemType); |
346 | 406 | end |
|
351 | 411 | % Save results |
352 | 412 | if contains(problemType, 'ROCKET') |
353 | 413 | [results, app.temp_results] = save_results(app, problemType, varargout{:}); |
| 414 | + elseif contains(problemType, 'SHOCKTURBULENCE') |
| 415 | + results = save_results(app, problemType, mixArray1, mixArray2); |
| 416 | + app.temp_results = results; |
354 | 417 | else |
355 | 418 | [results, app.temp_results] = save_results(app, problemType, mixArray1, varargout{end}); |
356 | 419 | end |
|
0 commit comments