Description
When running PROCESS with the --full-output option, the PROCESS optimisation/convergence completes successfully, but an exception occurs while generating the full output plots.
This means that the underlying PROCESS result appears to be valid, but the subsequent full-output generation fails and damages/incompletely generates the PDF.
Reproduction
Run PROCESS with:
process -i <input_file> --full-output
For example, this occurs for the LUCIOLE V1 case:
Plotting mfile /home/matti/code/firefly/studies/v001/config/LUCIOLE_V1_PROCESS.MFILE.DAT
The run itself successfully converges before the plotting stage is reached.
Error
Traceback (most recent call last):
File "/home/matti/code/PROCESS_PROJECT/PROCESS/env/bin/process", line 8, in <module>
sys.exit(process_cli())
^^^^^^^^^^^^^
...
File "/home/matti/code/PROCESS_PROJECT/PROCESS/process/main.py", line 243, in process_cli
plot_summary(mfile_path)
File "/home/matti/code/PROCESS_PROJECT/PROCESS/process/core/io/plot/summary.py", line 17236, in plot_summary
pages_of_plots = main_plot(
^^^^^^^^^^
File "/home/matti/code/PROCESS_PROJECT/PROCESS/process/core/io/plot/summary.py", line 16732, in main_plot
plot_brunner_divertor_power_split_comparison_stackplot(
File "/home/matti/code/PROCESS_PROJECT/PROCESS/process/core/io/plot/summary.py", line 9159, in plot_brunner_divertor_power_split_comparison_stackplot
axis.set_xlim([
File "/home/matti/code/PROCESS_PROJECT/PROCESS/env/lib/python3.12/site-packages/matplotlib/axes/_base.py", line 3828, in set_xlim
return self.xaxis._set_lim(left, right, emit=emit, auto=auto)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/matti/code/PROCESS_PROJECT/PROCESS/env/lib/python3.12/site-packages/matplotlib/axis.py", line 1216, in _set_lim
v0 = self.axes._validate_converted_limits(v0, self.convert_units)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/matti/code/PROCESS_PROJECT/PROCESS/env/lib/python3.12/site-packages/matplotlib/axes/_base.py", line 3749, in _validate_converted_limits
raise ValueError("Axis limits cannot be NaN or Inf")
ValueError: Axis limits cannot be NaN or Inf
Observed behaviour
- PROCESS completes the optimisation successfully and produces a converged result.
--full-output subsequently starts generating the plots from the MFILE.
- The failure occurs specifically in:
plot_brunner_divertor_power_split_comparison_stackplot().
- An invalid (
NaN or Inf) value is subsequently passed to axis.set_xlim().
- This raises a
ValueError and interrupts full-output generation.
- The resulting PDF is therefore incomplete/corrupted rather than containing the complete full output.
Expected behaviour
A successfully converged PROCESS run should not be considered failed because an individual diagnostic/output plot cannot be generated.
Ideally, --full-output should either:
- successfully generate the complete PDF, or
- skip the problematic plot with a warning and continue generating the remaining output.
In particular, a plotting failure should not invalidate or obscure an otherwise successfully converged PROCESS result.
Additional consideration
The full-output generation should ideally be robust to individual plots being unavailable for a particular PROCESS configuration. A missing quantity in the MFILE should result in a warning or skipped plot rather than terminating the entire PDF generation process.
Models that error when creating the estimations from various models should return N/A or nan.
Environment
- Python: 3.12
- PROCESS: main
- Command:
process --full-output ...
Description
When running PROCESS with the
--full-outputoption, the PROCESS optimisation/convergence completes successfully, but an exception occurs while generating the full output plots.This means that the underlying PROCESS result appears to be valid, but the subsequent full-output generation fails and damages/incompletely generates the PDF.
Reproduction
Run PROCESS with:
For example, this occurs for the LUCIOLE V1 case:
The run itself successfully converges before the plotting stage is reached.
Error
Observed behaviour
--full-outputsubsequently starts generating the plots from the MFILE.plot_brunner_divertor_power_split_comparison_stackplot().NaNorInf) value is subsequently passed toaxis.set_xlim().ValueErrorand interrupts full-output generation.Expected behaviour
A successfully converged PROCESS run should not be considered failed because an individual diagnostic/output plot cannot be generated.
Ideally,
--full-outputshould either:In particular, a plotting failure should not invalidate or obscure an otherwise successfully converged PROCESS result.
Additional consideration
The full-output generation should ideally be robust to individual plots being unavailable for a particular PROCESS configuration. A missing quantity in the MFILE should result in a warning or skipped plot rather than terminating the entire PDF generation process.
Models that error when creating the estimations from various models should return N/A or nan.
Environment
process --full-output ...