Currently the parametric reactor classes take a few parameters for the PF coil sizes (pf_coil_radial_thicknesses and pf_coil_vertical_thicknesses)
Also some parameters that position the PF coils radially (pf_coil_to_tf_coil_radial_gap and pf_coil_to_rear_blanket_radial_gap)
The vertical spacing is just shared equally between the number of PF coils.
While the existing setup is is great as it makes it difficult for users to make overlapping geometry we don't have quite enough flexibility to make PF coils in the correct positions.
Therefore I am proposing that ....
The two arguments for (pf_coil_to_tf_coil_radial_gap and pf_coil_to_rear_blanket_radial_gap) can be combined into one argument called rear_blanket_to_tf_gap
Another argument should be provided called pf_coil_vertical_position that can be used to control the y position of the PF coils (center points). This should be a list of numbers then the PF coils can each take a value
Another argument should be provided called pf_coil_radial_position that can be used to control the x position of the PF coils (center points). This should be a list of numbers then the PF coils can each take a value
While all of the radial thickness numbers sequentially build on each other the PF coils will be unique as the user provides a radial position so the user can therefore provide coordinates that overlap with existing geometry. It is therefore necessary to cut everything else with the PF coils to avoid overlaps, and also to check the user has not overlapped PF coils with themselves.
One downside is that this makes it harder to make reactor geometry but on the plus side it adds the flexibility needed
Comments, suggestions, feedback on this idea are most welcome,