Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions process/io/plot_proc.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import argparse
import json
import os
import textwrap
from argparse import RawTextHelpFormatter
from importlib import resources

Expand Down Expand Up @@ -59,6 +60,7 @@
vacuum_vessel_geometry_single_null,
)
from process.impurity_radiation import read_impurity_file
from process.io.mfile import MFileErrorClass
from process.objectives import OBJECTIVE_NAMES
from process.superconducting_tf_coil import SUPERCONDUCTING_TF_TYPES

Expand Down Expand Up @@ -7027,7 +7029,9 @@ def plot_header(axis, mfile_data, scan):
(f"!{mfile_data.data['date'].get_scan(-1)}", "Date:", ""),
(f"!{mfile_data.data['time'].get_scan(-1)}", "Time:", ""),
(f"!{mfile_data.data['username'].get_scan(-1)}", "User:", ""),
(
("!Evaluation", "Run type", "")
if isinstance(mfile_data.data["minmax"], MFileErrorClass)
else (
f"!{OBJECTIVE_NAMES[abs(int(mfile_data.data['minmax'].get_scan(-1)))]}",
"Optimising:",
"",
Expand Down Expand Up @@ -10753,22 +10757,28 @@ def plot_cover_page(axis, mfile_data, scan, fig, colour_scheme):
branch_name = mfile_data.data["branch_name"].get_scan(-1)
fileprefix = mfile_data.data["fileprefix"].get_scan(-1)
optmisation_switch = mfile_data.data["ioptimz"].get_scan(-1)
minmax_switch = mfile_data.data["minmax"].get_scan(-1)
minmax_switch = mfile_data.data["minmax"].get_scan(-1) or "N/A"
ifail = mfile_data.data["ifail"].get_scan(-1)
nvars = mfile_data.data["nvar"].get_scan(-1)
# Objective_function_name
objf_name = mfile_data.data["objf_name"].get_scan(-1)
# Square_root_of_the_sum_of_squares_of_the_constraint_residuals
sqsumsq = mfile_data.data["sqsumsq"].get_scan(-1)
# VMCON_convergence_parameter
convergence_parameter = mfile_data.data["convergence_parameter"].get_scan(-1)
convergence_parameter = (
mfile_data.data["convergence_parameter"].get_scan(-1) or "N/A"
)
# Number_of_optimising_solver_iterations
nviter = mfile_data.data["nviter"].get_scan(-1)
nviter = int(mfile_data.data["nviter"].get_scan(-1)) or "N/A"

# Objective name with minimising/maximising
if minmax_switch >= 0:
if isinstance(minmax_switch, str):
objective_text = ""
elif minmax_switch >= 0:
minmax_switch = int(minmax_switch)
objective_text = f"• Minimising {objf_name}"
else:
minmax_switch = int(minmax_switch)
objective_text = f"• Maximising {objf_name}"

axis.text(
Expand Down Expand Up @@ -10807,15 +10817,10 @@ def plot_cover_page(axis, mfile_data, scan, fig, colour_scheme):
# Box 2: File/Branch Info
# Wrap the whole "Branch Name: ..." line if too long
max_line_len = 60
branch_line = f"• Branch Name: {branch_name}"
if isinstance(branch_line, str) and len(branch_line) > max_line_len:
# Insert a newline every max_line_len characters
branch_line = "\n".join([
branch_line[i : i + max_line_len]
for i in range(0, len(branch_line), max_line_len)
])
branch_line = textwrap.fill(f"• Branch Name: {branch_name}", max_line_len)
fileprefix = textwrap.fill(f"File Prefix: {fileprefix}", max_line_len)

file_info = f"• Tag Number: {tagno}\n{branch_line}\n• File Prefix: {fileprefix}"
file_info = f"• Tag Number: {tagno}\n{branch_line}\n• {fileprefix}"
axis.text(
0.1,
0.57,
Expand All @@ -10835,13 +10840,13 @@ def plot_cover_page(axis, mfile_data, scan, fig, colour_scheme):
# Box 3: Run Settings
settings_info = (
f"• Optimisation Switch: {int(optmisation_switch)}\n"
f"• Figure of Merit Switch (minmax): {int(minmax_switch)}\n"
f"• Figure of Merit Switch (minmax): {minmax_switch}\n"
f"• Fail Status (ifail): {int(ifail)}\n"
f"• Number of Iteration Variables: {int(nvars)}\n"
f"{objective_text}\n"
f"• Constraint Residuals (sqrt sum sq): {sqsumsq}\n"
f"• Convergence Parameter: {convergence_parameter}\n"
f"• Solver Iterations: {int(nviter)}"
f"• Solver Iterations: {nviter}"
)
axis.text(
0.1,
Expand Down