bluemira.builders.coil_supports

Coil support builders

Classes

ITERGravitySupportBuilderParams

ITER-like gravity support parameters

ITERGravitySupportBuilder

ITER-like gravity support builder

PFCoilSupportBuilderParams

PF coil support parameters

PFCoilSupportBuilder

PF coil support builder

StraightOISOptimisationProblem

Optimisation problem for a straight outer inter-coil structure

StraightOISDesignerParams

Parameters for the StraightOISDesigner

StraightOISDesigner

Design a set of straight length outer inter-coil structures.

OISBuilderParams

Outer intercoil structure parameters

OISBuilder

Outer intercoil structure builder

Module Contents

class bluemira.builders.coil_supports.ITERGravitySupportBuilderParams

Bases: bluemira.base.parameter_frame.ParameterFrame

Inheritance diagram of bluemira.builders.coil_supports.ITERGravitySupportBuilderParams

ITER-like gravity support parameters

x_g_support: bluemira.base.parameter_frame.Parameter[float]
z_gs: bluemira.base.parameter_frame.Parameter[float]
tf_wp_width: bluemira.base.parameter_frame.Parameter[float]
tf_wp_depth: bluemira.base.parameter_frame.Parameter[float]
tk_tf_side: bluemira.base.parameter_frame.Parameter[float]
tf_gs_tk_plate: bluemira.base.parameter_frame.Parameter[float]
tf_gs_g_plate: bluemira.base.parameter_frame.Parameter[float]
tf_gs_base_depth: bluemira.base.parameter_frame.Parameter[float]
class bluemira.builders.coil_supports.ITERGravitySupportBuilder(params: bluemira.base.parameter_frame.typed.ParameterFrameLike, build_config: bluemira.base.builder.BuildConfig, tf_xz_keep_out_zone: bluemira.geometry.wire.BluemiraWire)

Bases: bluemira.base.builder.Builder

Inheritance diagram of bluemira.builders.coil_supports.ITERGravitySupportBuilder

ITER-like gravity support builder

Parameters:
  • params (bluemira.base.parameter_frame.typed.ParameterFrameLike) – Parameters to use

  • build_config (bluemira.base.builder.BuildConfig) – Build config to use

  • tf_kz_keep_out_zone – TF coil wire keep-out-zone for the outer edge of the TF coil (including casing) Note that this should be on the y=0 plane.

  • tf_xz_keep_out_zone (bluemira.geometry.wire.BluemiraWire)

param_cls: type[ITERGravitySupportBuilderParams]

The class to hold this Builders’s parameters.

params: ITERGravitySupportBuilderParams
GS = 'GS'
tf_xz_keep_out_zone
build() bluemira.base.components.Component

Build the ITER-like gravity support component.

Return type:

bluemira.base.components.Component

static build_xz(xyz_component: bluemira.base.components.PhysicalComponent) bluemira.base.components.PhysicalComponent

Build the x-z component of the ITER-like gravity support.

Parameters:

xyz_component (bluemira.base.components.PhysicalComponent)

Return type:

bluemira.base.components.PhysicalComponent

build_xy()

Build the x-y component of the ITER-like gravity support.

_get_intersection_wire(width)
_make_connection_block(width, v1, v4, intersection_wire)
Returns:

The connection block of the gravity support with the TF coil

_make_plates(width, v1x, v4x, z_block_lower) list[bluemira.geometry.wire.BluemiraWire]

Make the gravity support vertical plates

Return type:

list[bluemira.geometry.wire.BluemiraWire]

_make_floor_block(v1x, v4x)
build_xyz() bluemira.base.components.PhysicalComponent

Build the x-y-z component of the ITER-like gravity support.

Return type:

bluemira.base.components.PhysicalComponent

class bluemira.builders.coil_supports.PFCoilSupportBuilderParams

Bases: bluemira.base.parameter_frame.ParameterFrame

Inheritance diagram of bluemira.builders.coil_supports.PFCoilSupportBuilderParams

PF coil support parameters

tf_wp_width: bluemira.base.parameter_frame.Parameter[float]
tf_wp_depth: bluemira.base.parameter_frame.Parameter[float]
tk_tf_side: bluemira.base.parameter_frame.Parameter[float]
pf_s_tk_plate: bluemira.base.parameter_frame.Parameter[float]
pf_s_n_plate: bluemira.base.parameter_frame.Parameter[int]
pf_s_g: bluemira.base.parameter_frame.Parameter[float]
class bluemira.builders.coil_supports.PFCoilSupportBuilder(params: bluemira.base.parameter_frame.typed.ParameterFrameLike, build_config: dict, tf_xz_keep_out_zone: bluemira.geometry.wire.BluemiraWire, pf_coil_xz: bluemira.geometry.wire.BluemiraWire)

Bases: bluemira.base.builder.Builder

Inheritance diagram of bluemira.builders.coil_supports.PFCoilSupportBuilder

PF coil support builder

Parameters:
param_cls: type[PFCoilSupportBuilderParams]

The class to hold this Builders’s parameters.

params: PFCoilSupportBuilderParams
PF_ICS = 'PF ICS'
tf_xz_keep_out_zone
pf_coil_xz
name
build() bluemira.base.components.Component
Returns:

The PF coil support component.

Return type:

bluemira.base.components.Component

build_xy()

Build the x-y components of the PF coil support.

build_xz(xyz)
Returns:

The x-z components of the PF coil support.

_build_support_xs()
static _get_first_intersection(point, angle, wire)
Returns:

The first intersection from a point along an angle with a wire.

_get_support_point_angle(support_face: bluemira.geometry.face.BluemiraFace)
Parameters:

support_face (bluemira.geometry.face.BluemiraFace)

_get_intersecting_wire(v1, v2, v3, v4, angle)
_make_rib_profile(support_face)
_make_ribs(width, support_face)
build_xyz() bluemira.base.components.PhysicalComponent

Build the x-y-z components of the PF coil support.

Returns:

The coil support

Return type:

bluemira.base.components.PhysicalComponent

class bluemira.builders.coil_supports.StraightOISOptimisationProblem(wire: bluemira.geometry.wire.BluemiraWire, keep_out_zone: bluemira.geometry.face.BluemiraFace, n_koz_discr: int = 100)

Bases: bluemira.optimisation.OptimisationProblem

Inheritance diagram of bluemira.builders.coil_supports.StraightOISOptimisationProblem

Optimisation problem for a straight outer inter-coil structure

Parameters:
wire
n_koz_discr = 100
koz_points
objective(x: numpy.ndarray) float

Objective function to maximise length.

Parameters:

x (numpy.ndarray)

Return type:

float

ineq_constraints() list[bluemira.optimisation.ConstraintT]

The inequality constraints for the problem.

Return type:

list[bluemira.optimisation.ConstraintT]

static bounds() tuple[numpy.ndarray, numpy.ndarray]

The optimisation parameter bounds.

Return type:

tuple[numpy.ndarray, numpy.ndarray]

static f_L_to_wire(wire: bluemira.geometry.wire.BluemiraWire, x_norm: list[float] | numpy.typing.NDArray) bluemira.geometry.wire.BluemiraWire

Convert a pair of normalised L values to a wire

Returns:

The wire

Parameters:
Return type:

bluemira.geometry.wire.BluemiraWire

static f_L_to_xz(wire: bluemira.geometry.wire.BluemiraWire, value: float) numpy.ndarray

Convert a normalised L value to an x, z pair.

Parameters:
Return type:

numpy.ndarray

negative_length(x_norm: numpy.ndarray) float

Calculate the negative length of the straight OIS

Parameters:

x_norm (numpy.ndarray) – Normalised solution vector

Returns:

Negative length from the normalised solution vector

Return type:

float

constrain_koz(x_norm: numpy.ndarray) numpy.ndarray

Constrain the straight OIS to be outside a keep-out-zone

Parameters:

x_norm (numpy.ndarray) – Normalised solution vector

Returns:

KOZ constraint array

Return type:

numpy.ndarray

static constrain_x(x_norm: numpy.ndarray) numpy.ndarray

Constrain the second normalised value to be always greater than the first.

Parameters:

x_norm (numpy.ndarray)

Return type:

numpy.ndarray

static df_constrain_x(x_norm: numpy.ndarray) numpy.ndarray

Gradient of the constraint on the solution vector

Parameters:

x_norm (numpy.ndarray)

Return type:

numpy.ndarray

class bluemira.builders.coil_supports.StraightOISDesignerParams

Bases: bluemira.base.parameter_frame.ParameterFrame

Inheritance diagram of bluemira.builders.coil_supports.StraightOISDesignerParams

Parameters for the StraightOISDesigner

tk_ois: bluemira.base.parameter_frame.Parameter[float]
g_ois_tf_edge: bluemira.base.parameter_frame.Parameter[float]
min_OIS_length: bluemira.base.parameter_frame.Parameter[float]
class bluemira.builders.coil_supports.StraightOISDesigner(params: bluemira.base.parameter_frame.typed.ParameterFrameLike, build_config: bluemira.base.builder.BuildConfig, tf_coil_xz_face: bluemira.geometry.face.BluemiraFace, keep_out_zones: list[bluemira.geometry.face.BluemiraFace])

Bases: bluemira.base.designer.Designer[list[bluemira.geometry.wire.BluemiraWire]]

Inheritance diagram of bluemira.builders.coil_supports.StraightOISDesigner

Design a set of straight length outer inter-coil structures.

Parameters:
  • params (bluemira.base.parameter_frame.typed.ParameterFrameLike) – ParameterFrame for the StraightOISDesigner

  • build_config (bluemira.base.builder.BuildConfig) – Build config dictionary for the StraightOISDesigner

  • tf_coil_xz_face (bluemira.geometry.face.BluemiraFace) – x-z face of the TF coil on the y=0 plane

  • keep_out_zones (list[bluemira.geometry.face.BluemiraFace]) – List of x-z keep_out_zone faces on the y=0 plane

param_cls: type[StraightOISDesignerParams]

The ParameterFrame class defining this designer’s parameters.

params: StraightOISDesignerParams
tf_face
keep_out_zones
run() list[bluemira.geometry.wire.BluemiraWire]

Create and run the design optimisation problem.

Returns:

A list of outer inter-coil structure wires on the y=0 plane.

Return type:

list[bluemira.geometry.wire.BluemiraWire]

_make_ois_wire(p1, p2)

Make a rectangular wire from the two inner edge points

_make_ois_koz(koz_centreline)

Make the (fused) keep-out-zone for the outer inter-coil structures.

_make_ois_regions(ois_centreline, koz_centreline)

Select regions that are viable for outer inter-coil structures

class bluemira.builders.coil_supports.OISBuilderParams

Bases: bluemira.base.parameter_frame.ParameterFrame

Inheritance diagram of bluemira.builders.coil_supports.OISBuilderParams

Outer intercoil structure parameters

n_TF: bluemira.base.parameter_frame.Parameter[int]
tf_wp_depth: bluemira.base.parameter_frame.Parameter[float]
tk_tf_side: bluemira.base.parameter_frame.Parameter[float]
class bluemira.builders.coil_supports.OISBuilder(params: bluemira.base.parameter_frame.typed.ParameterFrameLike, build_config: bluemira.base.builder.BuildConfig, ois_xz_profiles: bluemira.geometry.wire.BluemiraWire | list[bluemira.geometry.wire.BluemiraWire])

Bases: bluemira.base.builder.Builder

Inheritance diagram of bluemira.builders.coil_supports.OISBuilder

Outer intercoil structure builder

Parameters:
param_cls: type[OISBuilderParams]

The class to hold this Builders’s parameters.

params: OISBuilderParams
RIGHT_OIS = 'TF OIS right'
LEFT_OIS = 'TF OIS left'
TF_OIS = 'TF OIS'
ois_xz_profiles
build() bluemira.base.components.Component

Build the PF coil support component.

Return type:

bluemira.base.components.Component

build_xy()

Build the x-y component of the OIS

build_xz()

Build the x-z component of the OIS

build_xyz()

Build the x-y-z component of the OIS