def define_onera_physical_hycom_14_test_combustion_object(): """ Define the ONERA physical test CombustionObject for Hycom 14 test :return combustion object """ # ------------ Generate the data layer: json_interpreter = generate_data_layer("DataLayerONERATests_Hycom14.json") # Use same data-layer used for Griffon (same pressure) combustion_table = json_interpreter.return_combustion_table() # ------------ Define parameters: geometric_params = { 'L': 0.130, 'rintInitial': 13.30e-3 / 2, 'rext0': 94.5e-3 / 2, 'regressionModel': Reg.TwoRegimesMarxmanAndFloodedModel(**combustion_table) } nozzle_params = { 'At': (np.pi / 4) * 7.25e-3**2, 'expansion': 6.3, 'lambda_e': 0.98, 'erosion': 0 } simulation_params = { 'ox_flow': 0.080, 'safety_thickness': 0.005, 'dt': 0.01, 'max_burn_time': 8.5 } # ------------- Generate objects: geometry_obj = Geom.OneCircularPort(**geometric_params) nozzle_obj = Noz.Nozzle(**nozzle_params) # Instantiate the combustion module combustion_object = CombustionObjectClassic( json_interpreter=json_interpreter, geometry_object=geometry_obj, nozzle_object=nozzle_obj) # -------------- Run simulation & Plot: combustion_object.run_simulation_constant_fuel_sliver(**simulation_params) # Return the combustion object return combustion_object
def test_onera_physical_test_2(): """ Study the potential evolution of the geometry associated to the 2nd physical test to be performed at ONERA. The characteristics of the Test are: 1. Single Port Geometry 2. Go range: [100, 500] kg/m^2/sec 3. Chamber pressure: 36 bar, closest possible to the target pressure of Griffon. """ # ------------ Generate the data layer: json_interpreter = generate_data_layer() # Use same data-layer used for Griffon (same pressure) combustion_table = json_interpreter.return_combustion_table() # ------------ Define parameters: geometric_params = {'L': 0.157, 'rintInitial': 0.007465, 'rext0': 0.041, 'regressionModel': Reg.TwoRegimesMarxmanAndFloodedModel(**combustion_table)} nozzle_params = {'At': 0.000038, 'expansion': 6.3, 'lambda_e': 0.98, 'erosion': 0} simulation_params = {'ox_flow': 0.0876, 'safety_thickness': 0.005, 'dt': 0.01, 'max_burn_time': 8} # ------------- Generate objects: geometry_obj = Geom.OneCircularPort(**geometric_params) nozzle_obj = Noz.Nozzle(**nozzle_params) json_interpreter = generate_data_layer(data_file="Thermodynamic Data Onera 41 bar H2O2 87_5.json") # Instantiate the combustion module combustion_obj = CombustionObjectClassic(json_interpreter=json_interpreter, geometry_object=geometry_obj, nozzle_object=nozzle_obj) # -------------- Run simulation & Plot: combustion_obj.run_simulation_constant_fuel_sliver(**simulation_params) # Print the module print(combustion_obj) # Plot the results combustion_obj.plot_results()
def define_onera_physical_hycom_16_test_combustion_object(): """ Define the ONERA physical test CombustionObject for Hycom 16 test :return combustion object """ # ------------ Generate the data layer: json_interpreter = generate_data_layer("DataLayerONERATests_Hycom16.json") # Use same data-layer used for Griffon (same pressure) combustion_table = json_interpreter.return_combustion_table() # ------------ Define parameters: shape_params = { 'polynom': [-0.2701822916666667, 0.15625, 0], 'baseRadius': 0.02, 'branches': 5, 'n': 50 } geometric_params = { 'L': 0.130, 'externalRadius': 74.5 / 2000, 'imagePixelSize': 2048, 'imageMeterSize': 0.09, 'regressionModel': Reg.TwoRegimesMarxmanAndFloodedModel(**combustion_table) } nozzle_params = { 'At': 4.243e-5, 'expansion': 6.3, 'lambda_e': 0.98, 'erosion': 0 } simulation_params = { 'ox_flow': 0.0975, 'safety_thickness': 0.005, 'max_burn_time': 7.5 } # ------------- Generate objects: geometry_obj = Geom.SinglePortImageGeometry(**geometric_params) geometry_obj.generatePolynom(**shape_params) nozzle_obj = Noz.Nozzle(**nozzle_params) # Instantiate the combustion module combustion_object = CombustionObjectImage( json_interpreter=json_interpreter, geometry_object=geometry_obj, nozzle_object=nozzle_obj) # -------------- Run simulation & Plot: combustion_object.run_simulation_constant_fuel_sliver_image_geometry( **simulation_params) # Return the combustion object return combustion_object