Skip to content
Open
Show file tree
Hide file tree
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
16 changes: 8 additions & 8 deletions process/core/io/plot/summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -8060,10 +8060,10 @@ def plot_pf_coils(
noc = number_of_coils - 1 if iohcl == 1 else number_of_coils

for coil in range(noc):
coils_r.append(mfile.get(f"r_pf_coil_middle[{coil:01}]", scan=scan))
coils_z.append(mfile.get(f"z_pf_coil_middle[{coil:01}]", scan=scan))
coils_dr.append(mfile.get(f"pfdr({coil:01})", scan=scan))
coils_dz.append(mfile.get(f"pfdz({coil:01})", scan=scan))
coils_r.append(mfile.get(f"r_pf_coil_middle[{coil + 1:01}]", scan=scan))
coils_z.append(mfile.get(f"z_pf_coil_middle[{coil + 1:01}]", scan=scan))
coils_dr.append(mfile.get(f"pfdr({coil + 1:01})", scan=scan))
coils_dz.append(mfile.get(f"pfdz({coil + 1:01})", scan=scan))
coil_text.append(str(coil + 1))

r_points, z_points, central_coil = pfcoil_geometry(
Expand Down Expand Up @@ -16059,10 +16059,10 @@ def plot_pf_dimensions(
radial_thicknesses = []
vertical_thicknesses = []
for coil in range(int(mfile.get("n_pf_cs_plasma_circuits", scan=scan) - 2)):
r_pf_coil_middle.append(mfile.get(f"r_pf_coil_middle[{coil}]", scan=scan))
z_pf_coil_middle.append(mfile.get(f"z_pf_coil_middle[{coil}]", scan=scan))
radial_thicknesses.append(mfile.get(f"pfdr({coil})", scan=scan))
vertical_thicknesses.append(mfile.get(f"pfdz({coil})", scan=scan))
r_pf_coil_middle.append(mfile.get(f"r_pf_coil_middle[{coil + 1}]", scan=scan))
z_pf_coil_middle.append(mfile.get(f"z_pf_coil_middle[{coil + 1}]", scan=scan))
radial_thicknesses.append(mfile.get(f"pfdr({coil + 1})", scan=scan))
vertical_thicknesses.append(mfile.get(f"pfdz({coil + 1})", scan=scan))

plot_pf_coils(axis=axis, mfile=mfile, scan=scan, colour_scheme=colour_scheme)

Expand Down
120 changes: 76 additions & 44 deletions process/models/pfcoil.py
Original file line number Diff line number Diff line change
Expand Up @@ -1994,7 +1994,7 @@ def induct(self, output):
for ig in range(pf_d.nef):
op.write(
self.outfile,
f"{ig}\t{pf_d.ind_pf_cs_plasma_mutual[:n_pf_cs, ig]}",
f"{ig + 1}\t{pf_d.ind_pf_cs_plasma_mutual[:n_pf_cs, ig]}",
)

if self.data.build.iohcl != 0:
Expand Down Expand Up @@ -2403,7 +2403,7 @@ def outpf(self):
# PF coils
pf_coil_geometry_rows = [
[
f"PF {k}",
f"PF {k + 1}",
f"{pf_d.r_pf_coil_middle[k]:.2e}",
f"{pf_d.z_pf_coil_middle[k]:.2e}",
f"{pf_d.r_pf_coil_outer[k] - pf_d.r_pf_coil_inner[k]:.2e}",
Expand Down Expand Up @@ -2446,44 +2446,44 @@ def outpf(self):
for k in range(pf_d.nef):
op.ovarre(
self.mfile,
f"PF coil {k} radius (m)",
f"(r_pf_coil_middle[{k}])",
f"PF coil {k + 1} radius (m)",
f"(r_pf_coil_middle[{k + 1}])",
pf_d.r_pf_coil_middle[k],
)
op.ovarre(
self.mfile,
f"PF coil {k} vertical position (m)",
f"(z_pf_coil_middle[{k}])",
f"PF coil {k + 1} vertical position (m)",
f"(z_pf_coil_middle[{k + 1}])",
pf_d.z_pf_coil_middle[k],
)
op.ovarre(
self.mfile,
f"PF coil {k} radial thickness (m)",
f"(pfdr({k}))",
f"PF coil {k + 1} radial thickness (m)",
f"(pfdr({k + 1}))",
pf_d.r_pf_coil_outer[k] - pf_d.r_pf_coil_inner[k],
)
op.ovarre(
self.mfile,
f"PF coil {k} vertical thickness (m)",
f"(pfdz({k}))",
f"PF coil {k + 1} vertical thickness (m)",
f"(pfdz({k + 1}))",
pf_d.z_pf_coil_upper[k] - pf_d.z_pf_coil_lower[k],
)
op.ovarre(
self.mfile,
f"PF coil {k} turns",
f"(n_pf_coil_turns[{k}])",
f"PF coil {k + 1} turns",
f"(n_pf_coil_turns[{k + 1}])",
pf_d.n_pf_coil_turns[k],
)
op.ovarre(
self.mfile,
f"PF coil {k} current (MA)",
f"(c_pf_cs_coils_peak_ma[{k}])",
f"PF coil {k + 1} current (MA)",
f"(c_pf_cs_coils_peak_ma[{k + 1}])",
pf_d.c_pf_cs_coils_peak_ma[k],
)
op.ovarre(
self.mfile,
f"PF coil {k} field (T)",
f"(b_pf_coil_peak[{k}])",
f"PF coil {k + 1} field (T)",
f"(b_pf_coil_peak[{k + 1}])",
pf_d.b_pf_coil_peak[k],
)
for time in range(6):
Expand Down Expand Up @@ -2565,7 +2565,7 @@ def outpf(self):
for k in range(pf_d.nef):
if pf_d.i_pf_conductor == PFConductorModel.SUPERCONDUCTING:
rows.append([
f"PF {k}",
f"PF {k + 1}",
f"{pf_d.c_pf_cs_coils_peak_ma[k]:.3e}",
f"{pf_d.j_pf_wp_critical[k]:.3e}",
f"{pf_d.j_pf_coil_wp_peak[k]:.3e}",
Expand All @@ -2576,7 +2576,7 @@ def outpf(self):
])
else:
rows.append([
f"PF {k}",
f"PF {k + 1}",
f"{pf_d.c_pf_cs_coils_peak_ma[k]:.3e}",
"-1.0e0",
f"{pf_d.j_pf_coil_wp_peak[k]:.3e}",
Expand Down Expand Up @@ -2703,14 +2703,14 @@ def outvolt(self):
for k in range(pf.nef):
op.write(
self.outfile,
f"\t{k}\t\t\t{pf.vsdum[k, 0]:.3f}"
f"\t{k + 1}\t\t\t{pf.vsdum[k, 0]:.3f}"
f"\t\t\t{pf.vsdum[k, 1]:.3f}\t\t{pf.vsdum[k, 2]:.3f}",
)

n_cs = pf.n_cs_pf_coils - 1
op.write(
self.outfile,
f"\tCS coil\t\t\t{pf.vsdum[n_cs, 0]:.3f}"
f"\tCS\t\t\t{pf.vsdum[n_cs, 0]:.3f}"
f"\t\t\t{pf.vsdum[n_cs, 1]:.3f}\t\t{pf.vsdum[n_cs, 2]:.3f}",
)

Expand Down Expand Up @@ -2750,7 +2750,11 @@ def outvolt(self):
inv_st_pulse = 1.0e0 / pf_d.f_j_cs_start_pulse_end_flat_top

for k in range(self.data.pf_coil.n_pf_cs_plasma_circuits - 1):
line = f"\t{k}\t\t"
if (self.data.build.iohcl != 0) and (k ==
self.data.pf_coil.n_pf_cs_plasma_circuits - 2):
line = "\tCS\t\t"
else:
line = f"\t{k + 1}\t\t"
for jj in range(6):
line += f"\t{cpft[k, jj] * self.data.pf_coil.n_pf_coil_turns[k]:.3e}"
op.write(self.outfile, line)
Expand All @@ -2765,31 +2769,58 @@ def outvolt(self):
op.ocmmnt(self.outfile, "This consists of: CS coil field balancing:")

for k in range(pf_d.n_pf_cs_plasma_circuits - 1):
op.write(
self.outfile,
(
f"{k}\t\t\t{cpft[k, 0] * pf_d.n_pf_coil_turns[k]:.3e}\t"
f"{cpft[k, 1] * nturn[k]:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * se_ft_eft:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * se_ft_eft:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * inv_st_pulse:.3e}\t"
f"{cpft[k, 5] * nturn[k]:.3e}"
),
)
if (self.data.build.iohcl != 0) and (k ==
self.data.pf_coil.n_pf_cs_plasma_circuits - 2):
op.write(
self.outfile,
(
f"CS\t\t\t{cpft[k, 0] * pf_d.n_pf_coil_turns[k]:.3e}\t"
f"{cpft[k, 1] * nturn[k]:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * se_ft_eft:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * se_ft_eft:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * inv_st_pulse:.3e}\t"
f"{cpft[k, 5] * nturn[k]:.3e}"
),
)
else:
op.write(
self.outfile,
(
f"{k + 1}\t\t\t{cpft[k, 0] * pf_d.n_pf_coil_turns[k]:.3e}\t"
f"{cpft[k, 1] * nturn[k]:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * se_ft_eft:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * se_ft_eft:.3e}\t"
f"{-cpft[k, 1] * nturn[k] * inv_st_pulse:.3e}\t"
f"{cpft[k, 5] * nturn[k]:.3e}"
),
)

op.oblnkl(self.outfile)
op.ocmmnt(self.outfile, "And: equilibrium field:")
for k in range(pf_d.n_pf_cs_plasma_circuits - 1):
op.write(
self.outfile,
(
f"{k}\t\t\t{0.0:.3e}\t{0.0:.3e}\t"
f"{(cpft[k, 2] + cpft[k, 1] * se_ft_eft) * nturn[k]:.3e}\t"
f"{(cpft[k, 3] + cpft[k, 1] * se_ft_eft) * nturn[k]:.3e}\t"
f"{(cpft[k, 4] + cpft[k, 1] * inv_st_pulse) * nturn[k]:.3e}\t"
"0.0e0"
),
)
if (self.data.build.iohcl != 0) and (k ==
self.data.pf_coil.n_pf_cs_plasma_circuits - 2):
op.write(
self.outfile,
(
f"CS\t\t\t{0.0:.3e}\t{0.0:.3e}\t"
f"{(cpft[k, 2] + cpft[k, 1] * se_ft_eft) * nturn[k]:.3e}\t"
f"{(cpft[k, 3] + cpft[k, 1] * se_ft_eft) * nturn[k]:.3e}\t"
f"{(cpft[k, 4] + cpft[k, 1] * inv_st_pulse) * nturn[k]:.3e}\t"
"0.0e0"
),
)
else:
op.write(
self.outfile,
(
f"{k + 1}\t\t\t{0.0:.3e}\t{0.0:.3e}\t"
f"{(cpft[k, 2] + cpft[k, 1] * se_ft_eft) * nturn[k]:.3e}\t"
f"{(cpft[k, 3] + cpft[k, 1] * se_ft_eft) * nturn[k]:.3e}\t"
f"{(cpft[k, 4] + cpft[k, 1] * inv_st_pulse) * nturn[k]:.3e}\t"
"0.0e0"
),
)

op.oblnkl(self.outfile)
op.ovarre(
Expand Down Expand Up @@ -2819,11 +2850,12 @@ def outvolt(self):
if k == self.data.pf_coil.n_pf_cs_plasma_circuits - 1:
circuit_name = f"Plasma Time point {jjj} (A)"
circuit_var_name = f"(plasmat{jjj})"
elif k == self.data.pf_coil.n_pf_cs_plasma_circuits - 2:
elif (self.data.build.iohcl != 0) and (k ==
self.data.pf_coil.n_pf_cs_plasma_circuits - 2):
circuit_name = f"CS Circuit Time point {jjj} (A)"
circuit_var_name = f"(cs t{jjj})"
else:
circuit_name = f"PF Circuit {k} Time point {jjj} (A)"
circuit_name = f"PF Circuit {k + 1} Time point {jjj} (A)"
circuit_var_name = f"(pfc{k}t{jjj})"

op.ovarre(
Expand Down
Loading