Paroto Examples#

This directory contains example files and configurations for the Paroto optimization framework.

📁 Contents#

Python Examples#

  • EXAMPLE_MODEL_USAGE.py - Demonstrates different model fidelities and the model registry

    • Compares breakdown voltage models at different fidelity levels

    • Shows how to use the model registry

    • Exports architecture to STONE format

Subdirectories#

  • VDEF_optim/ - Voltage-gap-Distance-Energy-Frequency (VDEF) optimization

    • Complete parameter sweep example with OpenMDAO

    • Parallel execution (multiprocessing/MPI)

    • Advanced pairwise grid visualization

    • See VDEF_optim/README.rst for details

Configuration Files#

  • config_example.yml - Basic configuration template with all available options

  • config_low_fidelity.yml - Fast exploration with low-fidelity models

  • config_with_models.yml - Recommended balanced configuration (medium fidelity)

  • config_high_fidelity.yml - High accuracy with physical models

Results#

  • example_results/ - Sample output from running optimizations

    • cases.db - OpenMDAO case database

    • problem_summary.txt - Problem structure summary

    • config.json - Configuration used for the run

  • example_architecture.yml - Generated STONE format architecture file

🚀 Quick Start#

Run the Python Example#

conda activate paroto
python examples/EXAMPLE_MODEL_USAGE.py

Run Optimization with Different Fidelities#

# Fast exploration (low fidelity)
paroto-optimize --config examples/config_low_fidelity.yml --out results_low/

# Recommended balance (medium fidelity)
paroto-optimize --config examples/config_with_models.yml --out results_medium/

# High accuracy (high fidelity)
paroto-optimize --config examples/config_high_fidelity.yml --out results_high/

Single-Point Evaluation#

Test a configuration without optimization:

paroto-optimize --config examples/config_example.yml --out results/ --driver none

Model Validation#

Validate breakdown voltage models against experimental data:

conda activate paroto
python -m paroto.validation.validate_breakdown_models

This will:

  • Compare all 5 breakdown models against Paschen curve data

  • Validate temperature correction factors

  • Test spark breakdown transition (G-S) with field enhancement

  • Generate validation plots with statistical metrics

See paroto/validation/README.md for details.

📚 Documentation#

For more details, see:

  • Main documentation

  • QUICK_START_MODELS.md - Quick start guide

  • MODEL_SELECTION_GUIDE.md - Complete model selection guide

📊 Advanced Examples#

VDEF MDAO Parameter Space Exploration#

For a complete example of parameter space exploration using OpenMDAO with parallel execution and advanced visualization:

cd VDEF_optim/
python example_vdef_mdao.py      # Run parameter sweep
python analyze_vdef_pairwise.py  # Generate pairwise grid visualization

See VDEF_optim/README.rst for complete documentation.

sphx_glr_auto_examples_EXAMPLE_MODEL_USAGE.py

Example: Load and run Paroto system from STONE configuration.

sphx_glr_auto_examples_VALIDATION_EXAMPLE.py

Example: Running breakdown voltage model validation.

sphx_glr_auto_examples_example_problem_graph.py

Example: Using ProblemGraph abstraction for unified visualization.

sphx_glr_auto_examples_gallery_hierarchical_viz.py

Gallery Example: Hierarchical Parameter Visualization.

sphx_glr_auto_examples_plot_generator_operating_window.py

Automatic Constraint Boundary Exploration.

VDEF MDAO Optimization Example#

This folder contains a comprehensive example of using the paroto library for Voltage-gap-Distance-Energy-Frequency (VDEF) optimization in plasma torch design, using Multidisciplinary Analysis and Optimization (MDAO) with OpenMDAO.

Overview#

The example demonstrates:

  • Parameter sweep of plasma torch operating conditions

  • Constraint satisfaction (25 kW power target, breakdown voltage limits)

  • Parallel execution using Python multiprocessing (Windows) or MPI (Linux)

  • Data persistence using SQLite databases

  • Advanced visualization with pairwise grid (corner plot) analysis

Files#

1. example_vdef_mdao.py#

Main parameter sweep script that explores the plasma torch design space.

Features:

  • Uses OpenMDAO’s TorchDesignGroup with physics-based models

  • Explores 3D parameter space: Voltage × gap-Distance × Frequency

  • Computes Energy per pulse as output (satisfying power constraint)

  • Implements power constraint (25 kW) via balance component

  • Tracks convergence status for all evaluations

  • Saves results to SQLite database (parameter_sweep_cases.sql)

Usage:

# Run parameter sweep (default: multiprocessing)
python example_vdef_mdao.py

# Generate N2 diagram only
python example_vdef_mdao.py --n2

Parameters Explored (VDEF):

  • Voltage (V): HV voltage: 5 - 80 kV (15 levels)

  • gap (D): Gap distance: 6 - 30 mm (8 levels)

  • Energy (E): Energy per pulse (computed output)

  • Frequency (F): Pulse frequency: 5 - 200 kHz (10 levels)

  • Total evaluations: 1,200 cases (15 × 8 × 10)

Outputs:

  • parameter_sweep_cases.sql: SQLite database with all results

  • parameter_space_visualization.png: Standard 6-panel visualization

  • Console output with convergence statistics

2. analyze_vdef_pairwise.py#

Post-processing script that creates pairwise grid (corner plot) visualization.

Features:

  • Loads results from SQLite database

  • Creates comprehensive pairwise grid showing:

    • All 2D parameter combinations

    • 1D marginal distributions (histograms)

    • Three-way classification: Feasible / Converged-Infeasible / Non-converged

  • Eliminates 2D projection ambiguity

  • Color-coded by energy per pulse

Usage:

# Run after example_vdef_mdao.py has generated data
python analyze_vdef_pairwise.py

Output:

  • pairwise_grid_visualization.png: Comprehensive corner plot

3. generate_n2_diagram.py#

Utility script to generate OpenMDAO N2 diagram showing system architecture.

Usage:

python generate_n2_diagram.py

Output:

  • n2.html: Interactive N2 diagram

4. plot_generator_operating_window.py#

Demonstrates automatic constraint boundary exploration for the generator.

Usage:

python plot_generator_operating_window.py

sphx_glr_auto_examples_VDEF_optim_analyze_vdef_pairwise.py

Analysis script: Pairwise grid visualization of parameter space.

sphx_glr_auto_examples_VDEF_optim_example_vdef_mdao.py

Example: Direct MDAO problem setup for plasma torch parameter space exploration.

sphx_glr_auto_examples_VDEF_optim_generate_n2_diagram.py

Generate N2 diagram for the VDEF MDAO example.

sphx_glr_auto_examples_VDEF_optim_plot_generator_operating_window.py

Plot Generator Operating Window from VDEF Parameter Sweep.

VedEf Operating Window - 5D Parameter Space Exploration#

This directory contains a comprehensive example for exploring the operating window of a pulsed plasma torch with 5 design parameters and multiple physics-based constraints.

Overview#

The VedEf optimization explores 5 design parameters using ARC002 parameter naming convention:

  • G_UMAX_OUT (kV): Generator voltage (High voltage)

  • G_e (mm): Interelectrode gap distance

  • TP_D_OUT (mm): Torch outlet diameter

  • G_F (kHz): PRF - Pulse Frequency

  • G_Ep (J): Energy per pulse

  • TP_QM (kg/h): Mass flow rate per torch

All parameters follow the ARC002 parameter registry standard for consistency across the project and compatibility with experimental specifications.

Files#

Integration Layer (Example-Specific)#

  • 1_model_vedef_design_group.py - VedEfDesignGroup model definition

    Defines the VedEfDesignGroup class that integrates all models for 5D exploration. This is the reusable model component containing physics models, constraints, and connections.

  • 1_setup_vedef_problem.py - Problem factory function

    Provides setup_vedef_problem() convenience function that creates a fully configured OpenMDAO Problem with default parameter values. Used by all analysis scripts for consistency.

    Note: These are application-specific integration files, not core library components. They connect the 5 parameters, 7 physics models/systems, and 10 constraints for this example.

    Architecture Update (Nov 2025): Refactored to use:

    • HighVoltageGeneratorSystem instead of simple HV window ExecComp

    • TorchFlowSystem instead of separate flow_rate and residence_time ExecComps

    • BrownianArcMobilityModel for physics-based mobility modeling

    • Explicit intermediate variables (T_0, breakdown_voltage, flow_velocity, etc.)

Main Example#

  • example_operating_window_5d.py - 5D parameter sweep with parallel execution

  • visualize_operating_window.py - Static matplotlib visualization of operating windows

  • dashboard_operating_window.py - Interactive Plotly Dash dashboard

  • generate_vedef_diagram.py - Mermaid diagram generation

Validation and Compliance#

  • validate_arc002_compliance.py - Validates parameter names against ARC002 registry

    Checks that all critical design parameters:

    • Are defined in the ARC002 parameter registry

    • Are associated with the correct Equipment_Class (Generator, PlasmaTorch, etc.)

    • Follow the standard naming convention

    Usage:

    python examples/VedEf_optim/validate_arc002_compliance.py
    

    ARC002 Registry Utilities: paroto/validation/arc002.py

Utilities#

  • Uses paroto/utils/mermaid_generator.py for flowchart generation

  • Uses paroto/utils/cytoscape_layout.py for interactive graph layouts

Physics Models#

New Models Created#

1. Initial Temperature Model (PulseInitialTemperatureModel)#

Computes the initial gas temperature before each pulse, accounting for:

  • Energy-to-temperature conversion via sub-model:

    • ConstantCpEnergyModel (Low fidelity, default)

    • CanteraEnergyModel (High fidelity, optional)

  • Cylindrical thermal diffusion with characteristic time τ = (d_a/2)² / (4α)

  • Exponential relaxation between pulses

Location: paroto/core/models/initial_temperature.py

Sub-models: paroto/core/models/energy_to_temperature.py

Gallery: examples/gallery/plot_initial_temperature_model_example.py, plot_energy_to_temperature_example.py

Validation: paroto/validation/validate_initial_temperature.py

2. Coverage Model (ArcCoverageModel)#

Ensures complete gas treatment by the arc, as if the arc was painting the cross-flow gas:

  • Constraint: π × e × d_a² / 4 × f ≥ v × S

  • Outputs coverage fraction and constraint satisfaction

  • Critical for ensuring all gas passes through the thermal treatment zone

Location: paroto/core/models/coverage.py

Gallery: examples/gallery/plot_coverage_model_example.py

Validation: paroto/validation/validate_coverage.py

3. Arc Density Constraint Model (ArcDensityConstraintModel)#

Limits energy density in the arc volume:

  • Constraint: ρ_E = E_p / V_arc < ρ_E_max

  • Prevents arc instabilities from excessive energy concentration

  • Note: Max energy density threshold requires experimental validation

Location: paroto/core/models/arc_density.py

Gallery: examples/gallery/plot_arc_density_model_example.py

4. Arc Mobility Model (BrownianArcMobilityModel)#

Models arc attachment point movement as Brownian motion:

  • Affects reignition probability and thermal loading distribution

  • Computes RMS displacement, mobility factor, and thermal spread factor

  • Based on characteristic velocity and time between pulses

Location: paroto/core/models/arc_mobility.py

Gallery: examples/gallery/plot_mobility_model_example.py

Validation: validation/validate_mobility.py

Existing Systems Integrated#

5. High Voltage Generator System (HighVoltageGeneratorSystem)#

Models power electronics constraints:

  • Operating window: f × V² × t_pulse / Z ≤ P_max

  • Replaces simple ExecComp with full system model

  • Outputs: operating_window_power, hv_operating_window_satisfied

Location: paroto/systems/generator.py

6. Torch Flow System (TorchFlowSystem)#

Models gas dynamics:

  • Mass conservation: ṁ = ρ × v × S

  • Residence time calculation

  • Reynolds number and pressure drop

  • Replaces simple ExecComps with physics-based flow model

Location: paroto/systems/torch/flow.py

Auto-Generated Architecture Diagrams#

The VeDeF example now includes automatic Mermaid diagram generation that introspects the OpenMDAO problem structure to visualize the complete architecture:

  • Run generate_auto_diagram.py to create diagrams showing actual data flow

  • Shows parameters (green), models (blue), intermediates (orange), constraints (red)

  • Eliminates manual diagram maintenance - always reflects current implementation

Script: examples/VedEf_optim/generate_auto_diagram.py

Generator: utils/mermaid_generator.py - generate_problem_graph() function

sphx_glr_auto_examples_VedEf_optim_1_model_vedef_design_group.py

VedEf Design Group for 5-parameter operating window exploration.

sphx_glr_auto_examples_VedEf_optim_1_problem_generate_diagram.py

Generate hierarchical visualization for VedEf operating window models.

sphx_glr_auto_examples_VedEf_optim_1_setup_vedef_problem.py

VedEf Operating Window Problem Setup.

sphx_glr_auto_examples_VedEf_optim_2_optim_find_working_params.py

Find working VedEf parameters through systematic search.

sphx_glr_auto_examples_VedEf_optim_2_optim_parameter_sweep_5d.py

Example: 5D Operating Window Exploration for VedEf Parameters.

sphx_glr_auto_examples_VedEf_optim_2_optim_simple_test.py

Minimal test to diagnose VedEf model issues.

sphx_glr_auto_examples_VedEf_optim_2_optim_smart_search.py

Smart parameter search for VedEf - targeting power and temperature constraints.

sphx_glr_auto_examples_VedEf_optim_2_optim_temperature_focused.py

Search focusing on achieving temperature rise for mobility constraint.

sphx_glr_auto_examples_VedEf_optim_3_analysis_dashboard.py

Interactive Dash Dashboard for VedEf Operating Window Exploration.

sphx_glr_auto_examples_VedEf_optim_3_analysis_power_constraint.py

Analyze power constraint violations to find near-feasible operating points.

sphx_glr_auto_examples_VedEf_optim_3_analysis_recommend_parameters.py

Recommend parameter ranges to achieve 25 kW target power.

sphx_glr_auto_examples_VedEf_optim_3_analysis_visualize_window.py

Visualization of 5D Operating Window with 2D Slices.

sphx_glr_auto_examples_VedEf_optim_analyze_problem_graph.py

Analyze and visualize the VedEf problem graph structure.

sphx_glr_auto_examples_VedEf_optim_validate_arc002_compliance.py

Validate VedEf Problem Compliance with ARC002 Parameter Registry.