.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/VedEf_optim/1_setup_vedef_problem.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_VedEf_optim_1_setup_vedef_problem.py: VedEf Operating Window Problem Setup. This module provides the canonical Problem instance for the VedEf operating window example. All analysis and optimization scripts should import and use setup_vedef_problem() to ensure consistency. .. GENERATED FROM PYTHON SOURCE LINES 7-68 .. code-block:: Python import importlib.util from pathlib import Path import openmdao.api as om def setup_vedef_problem(target_power=25000.0, max_energy_density=1e9, as_subsystem=True): """Set up VedEf OpenMDAO problem with default parameter values. Parameters ---------- target_power : float, optional Target total power in W. Default: 25000.0 (25 kW) max_energy_density : float, optional Maximum arc energy density in J/m^3. Default: 1e9 (1 GJ/m^3) as_subsystem : bool, optional If True, adds VedEfDesignGroup as a subsystem (hierarchical). If False, uses VedEfDesignGroup directly as the model. Default: True Returns ------- openmdao.api.Problem Configured problem ready for optimization/analysis with: - VedEfDesignGroup configured with specified parameters - Default parameter values set - Problem setup() called Examples -------- >>> prob = setup_vedef_problem() >>> prob.run_model() >>> print(prob.get_val("T_0")) """ # Import VedEfDesignGroup from the model definition file spec = importlib.util.spec_from_file_location( "vedef_module", Path(__file__).parent / "1_model_vedef_design_group.py" ) vedef_module = importlib.util.module_from_spec(spec) spec.loader.exec_module(vedef_module) VedEfDesignGroup = vedef_module.VedEfDesignGroup prob = om.Problem() vedef_group = VedEfDesignGroup(target_power=target_power, max_energy_density=max_energy_density) if as_subsystem: prob.model.add_subsystem("vedef", vedef_group, promotes=["*"]) else: prob.model = vedef_group # Setup the problem prob.setup() # Set default values (using ARC002 parameter tags) prob.set_val("G_UMAX_OUT", 20000.0, units="V") # Generator voltage prob.set_val("G_e", 0.01, units="m") # Interelectrode gap prob.set_val("TP_D_OUT", 0.02, units="m") # Torch outlet diameter prob.set_val("G_F", 50000.0, units="Hz") # PRF - Pulse Frequency prob.set_val("G_Ep", 0.01, units="J") # Energy per pulse return prob .. _sphx_glr_download_auto_examples_VedEf_optim_1_setup_vedef_problem.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 1_setup_vedef_problem.ipynb <1_setup_vedef_problem.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 1_setup_vedef_problem.py <1_setup_vedef_problem.py>` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: 1_setup_vedef_problem.zip <1_setup_vedef_problem.zip>`