.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/gallery/plot_torch_flow_system_example.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_gallery_plot_torch_flow_system_example.py: Torch Flow System ================== This example demonstrates the TorchFlowSystem which calculates flow velocity, residence time, and pressure drop in the plasma torch. .. GENERATED FROM PYTHON SOURCE LINES 8-91 .. image-sg:: /auto_examples/gallery/images/sphx_glr_plot_torch_flow_system_example_001.png :alt: Flow Velocity vs Mass Flow Rate, Residence Time vs Mass Flow Rate, Pressure Drop vs Mass Flow Rate :srcset: /auto_examples/gallery/images/sphx_glr_plot_torch_flow_system_example_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none ================================================== Torch Flow System ================================================== Flow Velocity: 8.22 m/s Residence Time: 1.22 ms Pressure Drop: 0.38 Pa ================================================== Generating plot: Flow Characteristics vs Mass Flow Rate... | .. code-block:: Python import matplotlib.pyplot as plt import numpy as np import openmdao.api as om from paroto.systems.torch.flow import TorchFlowSystem # Create OpenMDAO problem prob = om.Problem() prob.model.add_subsystem( "flow", TorchFlowSystem(gas_density=0.717), # CH4 at 1 bar, 300K promotes=["*"], ) prob.setup() # Set operating parameters prob.set_val("mass_flow", 160.0 / 86400.0) # 160 g/day in kg/s prob.set_val("torch_diameter", 0.02) # 20 mm prob.set_val("geometry_params", 0.01) # 10 mm gap prob.set_val("torch_length", 0.01) # 10 mm arc length # Run model prob.run_model() # Extract results velocity = prob.get_val("flow_velocity")[0] residence_time = prob.get_val("residence_time")[0] pressure_drop = prob.get_val("pressure_drop")[0] print("=" * 50) print("Torch Flow System") print("=" * 50) print(f"Flow Velocity: {velocity:.2f} m/s") print(f"Residence Time: {residence_time * 1000:.2f} ms") print(f"Pressure Drop: {pressure_drop:.2f} Pa") print("=" * 50) # Plot flow characteristics vs mass flow rate print("\nGenerating plot: Flow Characteristics vs Mass Flow Rate...") flow_range = np.linspace(50, 500, 50) / 86400.0 # 50-500 g/day in kg/s velocity_values = [] residence_values = [] pressure_values = [] for flow in flow_range: prob.set_val("mass_flow", flow) prob.run_model() velocity_values.append(prob.get_val("flow_velocity")[0]) residence_values.append(prob.get_val("residence_time")[0] * 1000) # ms pressure_values.append(prob.get_val("pressure_drop")[0]) fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(8, 10)) # Plot 1: Velocity ax1.plot(flow_range * 86400, velocity_values, "b-", linewidth=2) ax1.axvline(x=160, color="g", linestyle=":", alpha=0.7, label="Nominal (160 g/day)") ax1.set_xlabel("Mass Flow Rate (g/day)") ax1.set_ylabel("Flow Velocity (m/s)") ax1.set_title("Flow Velocity vs Mass Flow Rate") ax1.grid(True, alpha=0.3) ax1.legend() # Plot 2: Residence Time ax2.plot(flow_range * 86400, residence_values, "r-", linewidth=2) ax2.axvline(x=160, color="g", linestyle=":", alpha=0.7, label="Nominal (160 g/day)") ax2.set_xlabel("Mass Flow Rate (g/day)") ax2.set_ylabel("Residence Time (ms)") ax2.set_title("Residence Time vs Mass Flow Rate") ax2.grid(True, alpha=0.3) ax2.legend() # Plot 3: Pressure Drop ax3.plot(flow_range * 86400, pressure_values, "m-", linewidth=2) ax3.axvline(x=160, color="g", linestyle=":", alpha=0.7, label="Nominal (160 g/day)") ax3.set_xlabel("Mass Flow Rate (g/day)") ax3.set_ylabel("Pressure Drop (Pa)") ax3.set_title("Pressure Drop vs Mass Flow Rate") ax3.grid(True, alpha=0.3) ax3.legend() plt.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.290 seconds) .. _sphx_glr_download_auto_examples_gallery_plot_torch_flow_system_example.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_torch_flow_system_example.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_torch_flow_system_example.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_torch_flow_system_example.zip `