paroto.validation.validation_utils#
Utility functions for breakdown voltage model validation.
Functions#
|
Evaluate a breakdown voltage model with given inputs. |
|
Sweep a model parameter and collect breakdown voltages. |
|
Compute statistical metrics for model validation. |
|
Print validation statistics in standard format. |
|
Print a formatted section header. |
|
Convert Torr·cm to Pa·m. |
|
Convert voltage to electric field in kV/cm. |
|
Create default input dictionary for breakdown models. |
Module Contents#
- paroto.validation.validation_utils.evaluate_model(model_class, inputs)#
Evaluate a breakdown voltage model with given inputs.
This is a lightweight wrapper for running OpenMDAO models in validation scripts. It creates a minimal OpenMDAO Problem, sets inputs, runs the model, and extracts the breakdown voltage output.
Warning
Function is AI generated, not ready for production.
Workflow#
Create new OpenMDAO Problem
Instantiate the model class
Add model as subsystem with promoted variables
Setup the problem (allocate arrays, check connections)
Set all input values from the inputs dictionary
Run the model (compute outputs)
Extract and return breakdown_voltage
- param model_class:
Breakdown voltage model class to instantiate (e.g., PaschenSimpleModel)
- type model_class:
class- param inputs:
Dictionary mapping input names to values. Typical keys: - ‘gas_properties_pressure’: pressure in Pa - ‘gap_distance’: electrode gap in m - ‘preheat_temperature’: gas temperature in K - Additional model-specific inputs (e.g., ‘gas_ionization_potential’)
- type inputs:
- returns:
V_breakdown – Breakdown voltage in V
- rtype:
Examples
>>> from paroto.models.breakdown_voltage import PaschenSimpleModel >>> inputs = { ... "gas_properties_pressure": 101325.0, # 1 bar ... "gap_distance": 0.01, # 1 cm ... "preheat_temperature": 300.0, # room temp ... } >>> V = evaluate_model(PaschenSimpleModel, inputs) >>> print(f"Breakdown voltage: {V:.2f} V")
See also
sweep_modelEvaluate model across a range of parameter values
create_default_inputsGenerate standard input dictionary
- paroto.validation.validation_utils.sweep_model(model_class, sweep_param, sweep_values, fixed_inputs)#
Sweep a model parameter and collect breakdown voltages.
This function performs a parametric sweep by varying one input parameter while holding all others constant. It’s the validation equivalent of a Design of Experiments (DOE) for a single variable.
Warning
Function is AI generated, not ready for production.
Workflow#
- For each value in sweep_values:
Copy fixed_inputs dictionary
Override the sweep_param with current sweep value
Call evaluate_model() to compute breakdown voltage
Store result
Return array of all breakdown voltages
Use Cases#
Generate Paschen curves (sweep pressure at fixed gap)
Temperature sensitivity analysis (sweep temperature)
Gap distance effects (sweep gap at fixed pressure)
Validation against experimental data
- param model_class:
Breakdown voltage model class (e.g., PaschenTemperatureCorrectedModel)
- type model_class:
class- param sweep_param:
Name of parameter to sweep. Must match OpenMDAO input name: - ‘gas_properties_pressure’: for pressure sweeps - ‘gap_distance’: for gap sweeps - ‘preheat_temperature’: for temperature sweeps
- type sweep_param:
- param sweep_values:
Array of values for swept parameter. Units must match model expectations.
- type sweep_values:
ndarray- param fixed_inputs:
Fixed input values that remain constant during sweep. Should NOT include sweep_param (it will be overridden).
- type fixed_inputs:
- returns:
V_breakdown – Breakdown voltages (V) at each sweep point. Same length as sweep_values.
- rtype:
ndarray
Examples
>>> # Example 1: Pressure sweep at fixed gap (Paschen curve) >>> from paroto.models.breakdown_voltage import PaschenSimpleModel >>> pressures = np.linspace(50000, 200000, 20) # 0.5 to 2 bar >>> fixed = {"gap_distance": 0.01, "preheat_temperature": 300.0} >>> V_array = sweep_model( ... PaschenSimpleModel, "gas_properties_pressure", pressures, fixed ... ) >>> # V_array now contains 20 breakdown voltages
>>> # Example 2: Temperature sweep at fixed pressure/gap >>> temperatures = np.linspace(300, 1000, 15) # K >>> fixed = {"gas_properties_pressure": 101325.0, "gap_distance": 0.01} >>> V_temps = sweep_model( ... PaschenTemperatureCorrectedModel, "preheat_temperature", temperatures, fixed ... )
>>> # Example 3: Gap distance sweep for scaling analysis >>> gaps = np.logspace(-3, -1, 30) # 1 mm to 10 cm >>> fixed = {"gas_properties_pressure": 101325.0, "preheat_temperature": 300.0} >>> V_gaps = sweep_model(PaschenSimpleModel, "gap_distance", gaps, fixed)
Notes
This function creates a new OpenMDAO Problem for each sweep point. For large sweeps or complex models, consider using OpenMDAO’s native DOE drivers for better performance.
The function is serial (no parallelization). For production use, implement parallel evaluation.
Memory footprint is O(N) where N = len(sweep_values).
See also
evaluate_modelEvaluate model at a single point
create_default_inputsGenerate standard input dictionary
- paroto.validation.validation_utils.compute_statistics(model_values, exp_values)#
Compute statistical metrics for model validation.
Warning
Function is AI generated, not ready for production.
- Parameters:
model_values (
ndarray) – Model predictionsexp_values (
ndarray) – Experimental values
- Returns:
metrics – RMSE, MAE, R², max error
- Return type:
- paroto.validation.validation_utils.print_statistics(stats, units='V', model_name=None)#
Print validation statistics in standard format.
Warning
Function is AI generated, not ready for production.
- paroto.validation.validation_utils.print_section_header(title, level='=')#
Print a formatted section header.
Warning
Function is AI generated, not ready for production.
- paroto.validation.validation_utils.torr_cm_to_pa_m(pd_torr_cm)#
Convert Torr·cm to Pa·m.
Warning
Function is AI generated, not ready for production.
- paroto.validation.validation_utils.voltage_to_field_kv_cm(V, d_m)#
Convert voltage to electric field in kV/cm.
- paroto.validation.validation_utils.create_default_inputs(p=101325.0, d=0.01, T=300.0)#
Create default input dictionary for breakdown models.
Warning
Function is AI generated, not ready for production.