Parametric Components

These are components that represent a selection of the components found in fusion reactors and are created from parameters. These components all inherit from the parametric Shape classes.

Blankets

BlanketConstantThicknessArcH()

https://user-images.githubusercontent.com/56687624/88293663-38c86d80-ccf3-11ea-9bfa-c166fc99c52c.png
class BlanketConstantThicknessArcH(inner_mid_point, inner_upper_point, inner_lower_point, thickness, **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

An outboard blanket volume that follows the curvature of a circular arc and a constant blanket thickness. The upper and lower edges continue horizontally for the thickness of the blanket to back of the blanket.

Parameters
  • inner_mid_point – the x,z coordinates of the mid point on the inner surface of the blanket.

  • inner_upper_point – the x,z coordinates of the upper point on the inner surface of the blanket.

  • inner_lower_point – the x,z coordinates of the lower point on the inner surface of the blanket.

  • thickness – the radial thickness of the blanket in cm.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

BlanketConstantThicknessArcV()

https://user-images.githubusercontent.com/56687624/88293666-39f99a80-ccf3-11ea-8c8d-84275fd0e0ce.png
class BlanketConstantThicknessArcV(inner_mid_point, inner_upper_point, inner_lower_point, thickness, **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

An outboard blanket volume that follows the curvature of a circular arc and a constant blanket thickness. The upper and lower edges continue vertically for the thickness of the blanket to back of the blanket.

Parameters
  • inner_mid_point – the x,z coordinates of the mid point on the inner surface of the blanket.

  • inner_upper_point – the x,z coordinates of the upper point on the inner surface of the blanket.

  • inner_lower_point – the x,z coordinates of the lower point on the inner surface of the blanket.

  • thickness – the radial thickness of the blanket in cm.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

BlanketFP()

https://user-images.githubusercontent.com/8583900/94867319-f0d36e80-0438-11eb-8516-7b8f2a7cc7ee.png
class BlanketFP(thickness, start_angle, stop_angle, plasma=None, minor_radius=150.0, major_radius=450.0, triangularity=0.55, elongation=2.0, vertical_displacement=0.0, offset_from_plasma=0.0, num_points=50, allow_overlapping_shape=False, **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

A blanket volume created from plasma parameters.

Parameters
  • thickness (float or [float] or callable or [(float), (float)]) – the thickness of the blanket (cm). If the thickness is a float then this produces a blanket of constant thickness. If the thickness is a tuple of floats, blanket thickness will vary linearly between the two values. If thickness is callable, then the blanket thickness will be a function of poloidal angle (in degrees). If thickness is a list of two lists (thicknesses and angles) then these will be used together with linear interpolation.

  • start_angle – the angle in degrees to start the blanket, measured anti clockwise from 3 o’clock.

  • stop_angle – the angle in degrees to stop the blanket, measured anti clockwise from 3 o’clock.

  • plasma – If not None, the parameters of the plasma Object will be used.

  • minor_radius – the minor radius of the plasma (cm).

  • major_radius – the major radius of the plasma (cm).

  • triangularity – the triangularity of the plasma.

  • elongation – the elongation of the plasma.

  • vertical_displacement – the vertical_displacement of the plasma (cm).

  • offset_from_plasma – the distance between the plasma and the blanket (cm). If float, constant offset. If list of floats, offset will vary linearly between the values. If callable, offset will be a function of poloidal angle (in degrees). If a list of two lists (angles and offsets) then these will be used together with linear interpolation.

  • num_points – number of points that will describe the shape.

create_offset_points(thetas, offset)

generates a list of points following parametric equations with an offset

Parameters
  • thetas (np.array) – the angles in degrees.

  • offset (callable) – offset value (cm). offset=0 will follow the parametric equations.

Returns

list of points [[R1, Z1, connection1], [R2, Z2, connection2], …]

Return type

list

distribution(theta, pkg=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/paramak/conda/0.7.1/lib/python3.8/site-packages/numpy/__init__.py'>)

Plasma distribution theta in degrees

Parameters
  • theta (float or np.array or sp.Symbol) – the angle(s) in degrees.

  • pkg (module, optional) – Module to use in the funciton. If sp, as sympy object will be returned. If np, a np.array or a float will be returned. Defaults to np.

Returns

(float, float) or (sympy.Add, sympy.Mul) or

(numpy.array, numpy.array): The R and Z coordinates of the point with angle theta

find_points(angles=None)

Calculates the shape points. Empty method which some components overright when inheritting.

make_callable(attribute)

This function transforms an attribute (thickness or offset) into a callable function of theta

BlanketFPPoloidalSegments()

https://user-images.githubusercontent.com/8583900/98870151-ca0e4c00-246a-11eb-8a37-e7620344d8c1.png
class BlanketFPPoloidalSegments(segments_angles=None, num_segments=7, length_limits=None, nb_segments_limits=None, segments_gap=0.0, **kwargs)

Bases: paramak.parametric_components.blanket_fp.BlanketFP

Poloidally segmented Blanket inheriting from paramak.BlanketFP.

Parameters
  • segments_angles – If not None, the segments ends will be located at these angles. If None and if the constraints length_limits and nb_segments_limits are not None, segments angles will be linearly distributed. Else, an optimum configuration meeting the set requirements will be found. Defaults to None.

  • num_segments – Number of segments (ignored if segments_angles is not None).

  • length_limits – The minimum and maximum acceptable length of the segments. Ex: (100, 500), (100, None), (None, 300), None, (None, None).

  • nb_segments_limits – The minimum and maximum acceptable number of segments. Ex: (3, 10), (5, None), (None, 7), None, (None, None).

  • segments_gap – Distance between segments.

create_segment_cutters()

Creates a shape for cutting the blanket into segments and store it in segments_cutter attribute

create_solid()

Creates a rotated 3d solid using points with straight and spline edges.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

get_angles()

Get the poloidal angles of the segments.

Returns

the angles

Return type

list

compute_lengths_from_angles(angles, distribution)

Computes the length of segments between a set of points on a (x,y) distribution.

Parameters
  • angles (list) – Contains the angles of the points (degree)

  • distribution (callable) – function taking an angle as argument and returning (x,y) coordinates.

Returns

contains the lengths of the segments.

Return type

list

segments_optimiser(length_limits, nb_segments_limits, distribution, angles, stop_on_success=True)

Optimiser segmenting a given R(theta), Z(theta) distribution of points with constraints regarding the number of segments and the length of the segments.

Parameters
  • length_limits ((float, float)) – The minimum and maximum acceptable length of the segments. Ex: (100, 500), (100, None), (None, 300), None, (None, None)

  • nb_segments_limits ((int, int)) – The minimum and maximum acceptable number of segments. Ex: (3, 10), (5, None), (None, 7), None, (None, None)

  • distribution (callable) – function taking an angle as argument and returning (x,y) coordinates.

  • angles ((float, float)) – the start and stop angles of the distribution.

  • stop_on_sucess (bool, optional) – If set to True, the optimiser will stop as soon as a configuration meets the requirements.

Returns

list of optimised angles

Return type

list

Blanket Cutting Tools

BlanketCutterParallels()

https://user-images.githubusercontent.com/8583900/97329670-32580d80-186f-11eb-8b1a-b7712ddb0e83.png
class BlanketCutterParallels(thickness, gap_size, height=2000.0, width=2000.0, azimuth_placement_angle=[0.0, 36.0, 72.0, 108.0, 144.0, 180.0, 216.0, 252.0, 288.0, 324.0], name='blanket_cutter_parallels', **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

Creates an extruded shape with a parallel rectangular section repeated around the reactor. The shape is used to cut other components (eg. blankets and firstwalls) in order to create a banana section of the blankets with parallel sides.Typically used to divide a blanket into vertical sections with a fixed distance between each section.

Parameters
  • thickness – extruded distance (cm) of the cutter which translates to being the gap size between blankets when the cutter is used to segment blankets.

  • gap_size – the distance between the inner edges of the two parallel extrusions

  • height – height (cm) of the port. Defaults to 2000.0.

  • width – width (cm) of the port. Defaults to 2000.0.

  • name – Defaults to “blanket_cutter_Parallels”.

  • azimuth_placement_angle (float or list of floats) – Defaults to [0., 36., 72., 108., 144., 180., 216., 252., 288., 324.].

create_solid()

Creates an extruded 3d solid using points connected with straight and spline edges.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

BlanketCutterStar()

https://user-images.githubusercontent.com/8583900/97103794-b0b58380-16a6-11eb-86f0-fb5530d630af.png
class BlanketCutterStar(distance, height=2000.0, width=2000.0, azimuth_placement_angle=[0.0, 36.0, 72.0, 108.0, 144.0, 180.0, 216.0, 252.0, 288.0, 324.0], name='blanket_cutter_star', **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

Creates an extruded shape with a rectangular section that is used to cut other components (eg. blankets and firstwalls) in order to create banana style blanket segments. Typically used to divide a blanket into vertical sections with a fixed gap between each section.

Parameters
  • distance – extruded distance (cm) of the cutter which translates to being the gap size between blankets when the cutter is used to segment blankets.

  • height – height (cm) of the port. Defaults to 2000.0.

  • width – width (cm) of the port. Defaults to 2000.0.

  • azimuth_placement_angle (list or float, optional) – Defaults to [0., 36., 72., 108., 144., 180., 216., 252., 288., 324.]

  • name – defaults to “blanket_cutter_star”.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

PoloidalSegmenter()

https://user-images.githubusercontent.com/8583900/93811079-84da5480-fc47-11ea-9c6c-7fd132f6d72d.png
class PoloidalSegments(center_point, shape_to_segment=None, number_of_segments=10, max_distance_from_center=1000.0, name='poloidal_segmenter', **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a ring of wedges from a central point. When provided with a shape_to_segment the shape will be segmented by the wedges. This is useful for segmenting geometry into equal poloidal angles. Intended to segment the firstwall geometry for using in neutron wall loading simulations.

Parameters
  • center_point (tuple of floats) – the center of the segmentation wedges (x,z) values (cm).

  • shape_to_segment (paramak.Shape, optional) – the Shape to segment, if None then the segmenting solids will be returned. Defaults to None.

  • number_of_segments (int, optional) – the number of equal angles segments in 360 degrees. Defaults to 10.

  • max_distance_from_center (float) – the maximum distance from the center point outwards (cm). Defaults to 1000.0.

  • name (str, optional) – defaults to “poloidal_segmenter”.

create_solid()

Creates a 3d solid using points with straight edges. Individual solids in the compound can be accessed using .Solids()[i] where i is an int.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal segmentation shape.

Center Columns

CenterColumnShieldCylinder()

https://user-images.githubusercontent.com/56687624/88293674-3c5bf480-ccf3-11ea-8197-8db75358ff36.png
class CenterColumnShieldCylinder(height, inner_radius, outer_radius, center_height=0.0, name='CenterColumnShieldCylinder', color=(0.0, 0.333, 0.0), **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

A cylindrical center column shield volume with constant thickness.

Parameters
  • height – height of the center column shield.

  • inner_radius – the inner radius of the center column shield.

  • outer_radius – the outer radius of the center column shield.

  • center_height – the vertical height of the center of the component.

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the center column shield shape.

CenterColumnShieldHyperbola()

https://user-images.githubusercontent.com/56687624/88293672-3b2ac780-ccf3-11ea-9907-b1c8fd1ba0f0.png
class CenterColumnShieldHyperbola(height, inner_radius, mid_radius, outer_radius, name='center_column', color=(0.0, 0.333, 0.0), **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

A center column shield volume with a hyperbolic outer profile and constant cylindrical inner profile.

Parameters
  • height – height of the center column shield.

  • inner_radius – the inner radius of the center column shield.

  • mid_radius – the inner radius of the outer hyperbolic profile of the center column shield.

  • outer_radius – the outer radius of the center column shield.

  • name – Defaults to “center_column”.

find_points()

Finds the XZ points and connection types (straight and spline) that describe the 2D profile of the center column shield shape.

CenterColumnShieldFlatTopHyperbola()

https://user-images.githubusercontent.com/56687624/88293680-3ebe4e80-ccf3-11ea-8603-b7a290e6bfb4.png
class CenterColumnShieldFlatTopHyperbola(height, arc_height, inner_radius, mid_radius, outer_radius, name='center_column', color=(0.0, 0.333, 0.0), **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

A center column shield volume with a hyperbolic outer profile joined to flat profiles at the top and bottom of the shield, and a constant cylindrical inner profile.

Parameters
  • height – height of the center column shield.

  • arc_height – height of the outer hyperbolic profile of the center column shield.

  • inner_radius – the inner radius of the center column shield.

  • mid_radius – the inner radius of the outer hyperbolic profile of the center column shield.

  • outer_radius – the outer_radius of the center column shield.

  • name – Defaults to “center_column”.

find_points()

Finds the XZ points and connection types (straight and spline) that describe the 2D profile of the center column shield shape.

CenterColumnShieldFlatTopCircular()

https://user-images.githubusercontent.com/56687624/88293678-3d8d2180-ccf3-11ea-97f7-da9a46beddbf.png
class CenterColumnShieldFlatTopCircular(height, arc_height, inner_radius, mid_radius, outer_radius, name='center_column', color=(0.0, 0.333, 0.0), **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

A center column shield volume with a circular outer profile joined to flat profiles at the top and bottom of the shield, and a constant cylindrical inner profile.

Parameters
  • height – height of the center column shield.

  • arc_height – height of the outer circular profile of the center column shield.

  • inner_radius – the inner radius of the center column shield.

  • mid_radius – the inner radius of the outer circular profile of the center column shield.

  • outer_radius – the outer radius of the center column shield.

  • name – Defaults to “center_column”.

find_points()

Finds the XZ points and connection types (straight and circle) that describe the 2D profile of the center column shield shape.

CenterColumnShieldPlasmaHyperbola()

https://user-images.githubusercontent.com/56687624/86241464-d3bda400-bb9a-11ea-83b4-a3ff0bf630c4.png
class CenterColumnShieldPlasmaHyperbola(height, inner_radius, mid_offset, edge_offset, major_radius=450.0, minor_radius=150.0, triangularity=0.55, elongation=2.0, **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

A center column shield volume with a curvature controlled by the shape of the plasma and offsets specified at the plasma center and edges. Shield thickness is controlled by the relative values of the shield offsets and inner radius.

Parameters
  • height – height of the center column shield.

  • inner_radius – the inner radius of the center column shield.

  • mid_offset – the offset of the shield from the plasma at the plasma center.

  • edge_offset – the offset of the shield from the plasma at the plasma edge.

  • major_radius – the major radius of the plasma. Defaults to 450.0.

  • minor_radius – the minor radius of the plasma. Defaults to 150.0.

  • triangularity – the triangularity of the plasma. Defaults to 0.55.

  • elongation – the elongation of the plasma. Defaults to 2.0.

find_points()

Finds the XZ points and connection types (straight and spline) that describe the 2D profile of the center column shield shape.

InboardFirstwallFCCS()

https://user-images.githubusercontent.com/8583900/94197757-219e2b80-feae-11ea-8e41-0786d56c8b66.png
class InboardFirstwallFCCS(central_column_shield, thickness, color=(0.5, 0.5, 0.5), **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

An inboard firstwall component that builds a constant thickness layer from the central column shield. The center column shields can be of type: CenterColumnShieldCylinder, CenterColumnShieldHyperbola, CenterColumnShieldFlatTopHyperbola, CenterColumnShieldCircular, CenterColumnShieldPlasmaHyperbola or CenterColumnShieldFlatTopCircular

Parameters
  • central_column_shield – The central column shield object to build from

  • thickness – the radial thickness of the firstwall (cm)

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

Coolant Channels

CoolantChannelRingStraight()

https://user-images.githubusercontent.com/56687624/99048848-ff5f8a80-258d-11eb-9073-123185d7a4fb.png
class CoolantChannelRingStraight(height, channel_radius, number_of_coolant_channels, ring_radius, start_angle=0.0, **kwargs)

Bases: paramak.parametric_shapes.extruded_circle_shape.ExtrudeCircleShape

A ring of equally-spaced straight circular coolant channels with constant thickness.

Parameters
  • height – height of each coolant channel in ring.

  • channel_radius – radius of each coolant channel in ring.

  • number_of_coolant_channels – number of coolant channels in ring.

  • radius (ring) – radius of coolant channel ring.

  • start_angle – angle at which the first channel in the ring is placed. Defaults to 0.0.

  • rotation_axis (str, optional) – azimuthal axis around which the separate coolant channels are placed.

  • workplane (str, optional) – plane in which the cross-sections of the coolant channels lie. Defaults to “XY”.

find_azimuth_placement_angle()

Calculates the azimuth placement angles based on the number of coolant channels.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

CoolantChannelRingCurved()

CoolantChannelRingCurvedallstp CoolantChannelRingCurvedsvg CoolantChannelRingCurvedstp

class CoolantChannelRingCurved(height, channel_radius, number_of_coolant_channels, ring_radius, mid_offset, start_angle=0.0, **kwargs)

Bases: paramak.parametric_shapes.sweep_circle_shape.SweepCircleShape

A ring of equally-spaced curved circular coolant channels with constant thickness.

Parameters
  • height – height of each coolant channel in ring.

  • channel_radius – radius of each coolant channel in ring.

  • number_of_coolant_channels – number of coolant channels in ring.

  • ring_radius – radius of coolant channel ring.

  • start_angle – angle at which the first channel in the ring is placed. Defaults to 0.0.

  • rotation_axis – azimuthal axis around which the separate coolant channels are placed. Default calculated by workplane and path_workplane.

  • workplane (str, optional) – plane in which the cross-sections of the coolant channels lie. Defaults to “XY”.

  • path_workplane (str, optional) – plane in which the cross-sections of the coolant channels are swept. Defaults to “XZ”.

  • force_cross_section (bool, optional) – forces coolant channels to have a more constant cross-section along their curve. Defaults to False.

find_azimuth_placement_angle()

Calculates the azimuth placement angles based on the number of coolant channels.

Cutting Tools

CuttingWedge()

CuttingWedgestp CuttingWedgesvg

class CuttingWedge(height, radius, rotation_angle=180.0, **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a wedge from height, radius and rotation angle arguments than can be useful for cutting sector models.

Parameters
  • height – the vertical (z axis) height of the coil (cm).

  • radius – the horizontal (x axis) width of the coil (cm).

  • rotation_angle – Defaults to 180.0.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

CuttingWedgeFS()

https://user-images.githubusercontent.com/8583900/94726081-a678c180-0354-11eb-93f2-98d4b4a6839e.png
class CuttingWedgeFS(shape, **kwargs)

Bases: paramak.parametric_components.cutting_wedge.CuttingWedge

Creates a wedge from a Shape that can be useful for cutting sector models.

Parameters

shape (paramak.Shape) – a paramak.Shape object that is used to find the height and radius of the wedge

Divertors

ITERtypeDivertor()

https://user-images.githubusercontent.com/40028739/88180936-626b9100-cc2e-11ea-92df-1bac68b11e3b.png
class ITERtypeDivertor(anchors=((450, - 300), (561, - 367)), coverages=(90, 180), radii=(50, 25), lengths=(78, 87), dome=True, dome_height=43, dome_length=66, dome_thickness=10, dome_pos=0.5, tilts=(- 27, 0), **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

Creates an ITER-like divertor with inner and outer vertical targets and dome

Parameters
  • anchors ((float, float), (float, float), optional) – xz coordinates of points at the top of vertical targets. Defaults to ((450, -300), (561, -367)).

  • coverages ((float, float), optional) – coverages (anticlockwise) in degrees of the circular parts of vertical targets. Defaults to (90, 180).

  • radii ((float, float), optional) – radii (cm) of circular parts of the vertical targets. Defaults to (50, 25).

  • lengths ((float, float), optional) – leg length (cm) of the vertical targets. Defaults to (78, 87).

  • dome (bool, optional) – if set to False, the dome will not be created. Defaults to True.

  • dome_height (float, optional) – distance (cm) between the dome base and lower points. Defaults to 43.

  • dome_length (float, optional) – length of the dome. Defaults to 66.

  • dome_thickness (float, optional) – thickness of the dome. Defaults to 10.

  • dome_pos (float, optional) – relative location of the dome between vertical targets (0 inner, 1 outer). Ex: 0.5 will place the dome in between the targets. Defaults to 0.5.

  • tilts ((float, float), optional) – tilt angles (anticlockwise) in degrees for the vertical targets. Defaults to (-27, 0).

find_points()

Finds the XZ points and connection types (straight and circle) that describe the 2D profile of the ITER-like divertor

ITERtypeDivertorNoDome()

https://user-images.githubusercontent.com/56687624/91977407-871d5300-ed1a-11ea-91e5-922e5c9b31a0.png
class ITERtypeDivertorNoDome(**kwargs)

Bases: paramak.parametric_components.divertor_ITER.ITERtypeDivertor

Creates an ITER-like divertor with inner and outer vertical targets

Inner Toroidal Field Coils

InnerTfCoilsCircular()

InnerTfCoilsCircularstp InnerTFCoilsCircularsvg

class InnerTfCoilsCircular(height, inner_radius, outer_radius, number_of_coils, gap_size, azimuth_start_angle=0.0, workplane='XY', rotation_axis='Z', **kwargs)

Bases: paramak.parametric_shapes.extruded_mixed_shape.ExtrudeMixedShape

A tf coil volume with cylindrical inner and outer profiles and constant gaps between each coil.

Parameters
  • height – height of tf coils.

  • inner_radius – inner radius of tf coils.

  • outer_radius – outer radius of tf coils.

  • number_of_coils – number of tf coils.

  • gap_size – gap between adjacent tf coils.

  • azimuth_start_angle – Defaults to 0.0.

  • workplane – Defaults to “XY”.

  • rotation_axis – Defaults to “Z”.

find_azimuth_placement_angle()

Calculates the azimuth placement angles based on the number of tf coils

find_points()

Finds the points that describe the 2D profile of the tf coil shape

InnerTfCoilsFlat()

InnerTfCoilsFlatstp InnerTfCoilsFlatsvg

class InnerTfCoilsFlat(height, inner_radius, outer_radius, number_of_coils, gap_size, radius_type='corner', azimuth_start_angle=0.0, workplane='XY', rotation_axis='Z', **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

A tf coil volume with straight inner and outer profiles and constant gaps between each coil. Note: the inner / outer surface is not equal distance to the center point everywhere as the corners are further than the straight sections.

Parameters
  • height – height of tf coils.

  • inner_radius – Distance between center point and the inner surface of the tf coils.

  • outer_radius – Distance between center point and the outer surface of the tf coils.

  • number_of_coils – number of tf coils.

  • gap_size – gap between adjacent tf coils.

  • radius_type – Controls the part of the inner surface used when defining the inner_radius and outer_radius. Can be set to either ‘corner’ or ‘straight’.

  • azimuth_start_angle – defaults to 0.0.

  • workplane – defaults to “XY”.

  • rotation_axis – Defaults to “Z”.

find_azimuth_placement_angle()

Calculates the azimuth placement angles based on the number of tf coils

find_points()

Finds the points that describe the 2D profile of the tf coil shape

Poloidal Field coils

PoloidalFieldCoil()

PoloidalFieldCoilstp PoloidalFieldCoilsvg

class PoloidalFieldCoil(height, width, center_point, name='pf_coil', **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a rectangular poloidal field coil.

Parameters
  • height – the vertical (z axis) height of the coil (cm).

  • width – the horizontal (x axis) width of the coil (cm).

  • center_point – the center of the coil (x,z) values (cm).

  • name – defaults to “pf_coil”.

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil shape.

PoloidalFieldCoilFP()

PoloidalFieldCoilFPstp PoloidalFieldCoilFPsvg

class PoloidalFieldCoilFP(corner_points, **kwargs)

Bases: paramak.parametric_components.poloidal_field_coil.PoloidalFieldCoil

Creates a rectangular poloidal field coil.

Parameters

corner_points (list of float tuples) – the coordinates of the opposite corners of the rectangular shaped coil e.g [(x1, y1), (x2, y2)]

PoloidalFieldCoilSet()

https://user-images.githubusercontent.com/8583900/93832861-eb269d80-fc6e-11ea-861c-45de724478a8.png
class PoloidalFieldCoilSet(heights, widths, center_points, name='pf_coil', **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a series of rectangular poloidal field coils.

Parameters
  • heights (list of floats) – the vertical (z axis) heights of the coils (cm).

  • widths (list of floats) – the horizontal (x axis) widths of the coils (cm).

  • center_points (list of tuple of floats) – the center of the coil (x,z) values e.g. [(100,100), (100,200)] (cm).

  • name (str, optional) – defaults to “pf_coil”.

create_solid()

Creates a 3d solid using points with straight connections edges, azimuth_placement_angle and rotation angle. individual solids in the compound can be accessed using .Solids()[i] where i is an int

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil shape.

PoloidalFieldCoilCase()

PoloidalFieldCoilCasestp PoloidalFieldCoilCasesvg

class PoloidalFieldCoilCase(casing_thickness, coil_height, coil_width, center_point, name='poloidal_field_coil', color=(1.0, 1.0, 0.498), rotation_axis=None, rotation_angle=360.0, azimuth_placement_angle=0.0, workplane='XZ', cut=None, intersect=None, union=None, **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a casing for a rectangular coil from inputs that describe the existing coil and the thickness of the casing required.

Parameters
  • coil_height – the vertical (z axis) height of the coil (cm).

  • coil_width – the horizontal (x axis) width of the coil (cm).

  • center_point – the center of the coil (x,z) values (cm).

  • casing_thickness – the thickness of the coil casing (cm).

create_solid()

Creates a rotated 3d solid using points with straight and spline edges.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil case shape.

PoloidalFieldCoilCaseFC()

https://user-images.githubusercontent.com/56687624/86241492-e1732980-bb9a-11ea-9331-586a39d32cfb.png
class PoloidalFieldCoilCaseFC(pf_coil, casing_thickness, color=(1.0, 1.0, 0.498), **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a casing for a rectangular poloidal field coil by building around an existing coil (which is passed as an argument on construction).

Parameters
  • pf_coil (paramak.PoloidalFieldCoil) – a pf coil object with a set width, height and center point.

  • casing_thickness (float) – the thickness of the coil casing (cm).

create_solid()

Creates a rotated 3d solid using points with straight and spline edges.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil case shape.

PoloidalFieldCoilCaseSet()

https://user-images.githubusercontent.com/8583900/93908750-e86f8b00-fcf6-11ea-938e-349dd09e5915.png
class PoloidalFieldCoilCaseSet(heights, widths, casing_thicknesses, center_points, name='pf_coil_case_set', color=(1.0, 1.0, 0.498), **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a series of rectangular poloidal field coils.

Parameters
  • heights (list of floats) – the vertical (z axis) heights of the coil (cm).

  • widths (list of floats) – the horizontal (x axis) widths of the coil (cm).

  • casing_thicknesses (float or list of floats) – the thicknesses of the coil casing (cm). If float then the same thickness is applied to all coils. If list of floats then each entry is applied to a separate pf_coil, one entry for each pf_coil.

  • center_points (tuple of floats) – the center of the coil (x,z) values (cm).

  • name (str, optional) – defaults to “pf_coil_case_set”.

create_solid()

Creates a 3d solid using points with straight edges.

Returns

A 3D solid volume

Return type

A CadQuery solid

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil shape.

PoloidalFieldCoilCaseSetFC()

https://user-images.githubusercontent.com/8583900/93908750-e86f8b00-fcf6-11ea-938e-349dd09e5915.png
class PoloidalFieldCoilCaseSetFC(pf_coils, casing_thicknesses, name='pf_coil_case_set_fc', color=(1.0, 1.0, 0.498), **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a series of rectangular poloidal field coils.

Parameters
  • pf_coils (paramak.PoloidalFieldCoil) – a list of pf coil objects or a CadQuery compound object

  • casing_thicknesses (float or list of floats) – the thicknesses of the coil casing (cm). If float then the same thickness is applied to all coils. If list of floats then each entry is applied to a seperate pf_coil, one entry for each pf_coil.

  • name (str, optional) – defaults to “pf_coil_case_set_fc”.

create_solid()

Creates a 3d solid using points with straight edges. Individual solids in the compound can be accessed using .Solids()[i] where i is an int

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil shape.

Port Cutters

PortCutterRotated()

PortCutterRotatedstp PortCutterRotatedsvg

class PortCutterRotated(center_point, polar_coverage_angle=10.0, polar_placement_angle=0.0, max_distance_from_center=3000.0, fillet_radius=0.0, rotation_angle=10.0, name='port_cutter', **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates wedges from a central point with angular extent in polar direction. To control the width the rotation_angle argument can be used. This is useful as a cutting volume for the creation of ports in blankets.

Parameters
  • center_point (tuple of floats) – the center point where the ports are aimed towards, typically the center of the plasma.

  • polar_coverage_angle (float) – the angular extent of port in the polar direction (degrees). Defaults to 10.0.

  • polar_placement_angle (float) – The angle used when rotating the shape on the polar axis. 0 degrees is the outboard equatorial point. Defaults to 0.0.

  • max_distance_from_center (float) – the maximum distance from the center point outwards (cm). Default 3000.0.

  • fillet_radius (float, optional) – If not None, radius (cm) of fillets added to all edges. Defaults to 0.0.

  • rotation_angle (float, optional) – defaults to 10.0.

  • name (str, optional) – defaults to “port_cutter”.

add_fillet()

adds fillets to all edges

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the port cutter.

PortCutterRectangular()

PortCutterRectangularstp PortCutterRectangularsvg

class PortCutterRectangular(height, width, distance, center_point=(0, 0), workplane='ZY', rotation_axis='Z', extrusion_start_offset=1.0, fillet_radius=None, name='rectangular_port_cutter', **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

Creates an extruded shape with a rectangular section that is used to cut other components (eg. blanket, vessel,..) in order to create ports.

Parameters
  • height – height (cm) of the port cutter.

  • width – width (cm) of the port cutter.

  • distance – extruded distance (cm) of the port cutter.

  • center_point – Center point of the port cutter. Defaults to (0, 0).

  • workplane – workplane in which the port cutters are created. Defaults to “ZY”.

  • rotation_axis – axis around which the port cutters are rotated and placed. Defaults to “Z”.

  • extrusion_start_offset (float, optional) – the distance between 0 and the start of the extrusion. Defaults to 1..

  • fillet_radius (float, optional) – If not None, radius (cm) of fillets added to edges orthogonal to the Z direction. Defaults to None.

  • name (str, optional) – defaults to “rectangular_port_cutter”.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

PortCutterCircular()

PortCutterCircularstp PortCutterCircularsvg

class PortCutterCircular(radius, distance, center_point=(0, 0), workplane='ZY', rotation_axis='Z', extrusion_start_offset=1.0, name='circular_port_cutter', **kwargs)

Bases: paramak.parametric_shapes.extruded_circle_shape.ExtrudeCircleShape

Creates an extruded shape with a circular section that is used to cut other components (eg. blanket, vessel,..) in order to create ports.

Parameters
  • radius – radius (cm) of port cutter.

  • distance – extruded distance (cm) of the port cutter.

  • center_point – center point of the port cutter. Defaults to (0, 0).

  • workplane – workplane in which the port cutters are created. Defaults to “ZY”.

  • rotation_axis – axis around which the port cutters are rotated and placed. Defaults to “Z”.

  • extrusion_start_offset – the distance between 0 and the start of the extrusion. Defaults to 1..

  • name – defaults to “circular_port_cutter”.

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

Plasmas

Plasma()

Plasmastp Plasmasvg

class Plasma(elongation=2.0, major_radius=450.0, minor_radius=150.0, triangularity=0.55, vertical_displacement=0.0, num_points=50, configuration='non-null', x_point_shift=0.1, name='plasma', **kwargs)

Bases: paramak.parametric_shapes.rotate_spline_shape.RotateSplineShape

Creates a double null tokamak plasma shape that is controlled by 4 shaping parameters.

Parameters
  • elongation (float, optional) – the elongation of the plasma. Defaults to 2.0.

  • major_radius (float, optional) – the major radius of the plasma (cm). Defaults to 450.0.

  • minor_radius (int, optional) – the minor radius of the plasma (cm). Defaults to 150.0.

  • triangularity (float, optional) – the triangularity of the plasma. Defaults to 0.55.

  • vertical_displacement (float, optional) – the vertical_displacement of the plasma (cm). Defaults to 0.0.

  • num_points (int, optional) – number of points to describe the shape. Defaults to 50.

  • configuration (str, optional) – plasma configuration (“non-null”, “single-null”, “double-null”). Defaults to “non-null”.

  • x_point_shift (float, optional) – shift parameters for locating the X points in [0, 1]. Defaults to 0.1.

  • name (str, optional) – Defaults to “plasma”.

compute_x_points()

Computes the location of X points based on plasma parameters and configuration

Returns

lower and upper x points coordinates. None if no x points

Return type

((float, float), (float, float))

find_points()

Finds the XZ points that describe the 2D profile of the plasma.

PlasmaFromPoints()

PlasmaFPstp PlasmaFPsvg

class PlasmaFromPoints(outer_equatorial_x_point, inner_equatorial_x_point, high_point, **kwargs)

Bases: paramak.parametric_components.tokamak_plasma.Plasma

Creates a double null tokamak plasma shape that is controlled by 3 coordinates.

Parameters
  • outer_equatorial_x_point (float) – the x value of the outer equatorial of the plasma (cm).

  • inner_equatorial_x_point (float) – the x value of the inner equatorial of the plasma (cm).

  • high_point (tuple of 2 floats) – the (x,z) coordinate values of the top of the plasma (cm).

PlasmaBoundaries()

https://user-images.githubusercontent.com/8583900/97366104-a958ca80-189e-11eb-8bc6-9892b04ab053.png
class PlasmaBoundaries(A=0.05, elongation=2.0, major_radius=450.0, minor_radius=150.0, triangularity=0.55, vertical_displacement=0.0, configuration='non-null', x_point_shift=0.1, **kwargs)

Bases: paramak.parametric_components.tokamak_plasma.Plasma

Creates a double null tokamak plasma shape that is controlled by 5 shaping parameters using the plasmaboundaries package to calculate points. For more details see: http://github.com/fusion-energy/plasmaboundaries

Parameters
  • A (float, optional) – plasma parameter see plasmaboundaries doc. Defaults to 0.05.

  • elongation (float, optional) – the elongation of the plasma. Defaults to 2.0.

  • major_radius (float, optional) – the major radius of the plasma (cm). Defaults to 450.0.

  • minor_radius (float, optional) – the minor radius of the plasma (cm). Defaults to 150.0.

  • triangularity (float, optional) – the triangularity of the plasma. Defaults to 0.55.

  • vertical_displacement (float, optional) – the vertical_displacement of the plasma (cm). Defaults to 0.0.

  • configuration (str, optional) – plasma configuration (“non-null”, “single-null”, “double-null”). Defaults to “non-null”.

  • x_point_shift (float, optional) – Shift parameters for locating the X points in [0, 1]. Defaults to 0.1.

find_points()

Finds the XZ points that describe the 2D profile of the plasma.

Toroidal Field Coils

TFCoilCasing()

TFCoilCasingallstp TFCoilCasingaCutstp TFCoilCasingsvg

class TFCoilCasing(magnet, inner_offset, outer_offset, vertical_section_offset, **kwargs)

Bases: paramak.parametric_shapes.extruded_mixed_shape.ExtrudeMixedShape

Casing component for TF coils

Parameters
  • magnet – TF coil shape

  • inner_offset – radial distance between inner coil surface and inner casing surface (cm)

  • outer_offset – radial distance between outer coil surface and outer casing surface (cm)

  • vertical_section_offset – radial distance between outer coil surface and outer vertical section surface (cm)

  • distance – extrusion distance (cm)

create_solid()

Creates an extruded 3d solid using points connected with straight and spline edges.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Calculates the shape points. Empty method which some components overright when inheritting.

ToroidalFieldCoilRectangle()

ToroidalFieldCoilRectangleallstp ToroidalFieldCoilRectanglesvg ToroidalFieldCoilRectangleastp

class ToroidalFieldCoilRectangle(name='toroidal_field_coil', horizontal_start_point=(20, 200), vertical_mid_point=(350, 0), thickness=30, distance=20, number_of_coils=12, with_inner_leg=True, azimuth_start_angle=0, vertical_displacement=0.0, rotation_angle=360.0, color=(0.0, 0.0, 1.0), **kwargs)

Bases: paramak.parametric_components.toroidal_field_coil.ToroidalFieldCoil

Creates a rectangular shaped toroidal field coil.

Parameters
  • horizontal_start_point – the (x,z) coordinates of the inner upper point (cm).

  • vertical_mid_point – the (x,z) coordinates of the mid point of the vertical section (cm).

  • thickness – the thickness of the toroidal field coil.

  • distance – the extrusion distance.

  • number_of_coils – the number of tf coils. This changes by the azimuth_placement_angle dividing up 360 degrees by the number of coils.

  • with_inner_leg – include the inner tf leg. Defaults to True.

  • azimuth_start_angle – The azimuth angle to for the first TF coil which offsets the placement of coils around the azimuthal angle

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil shape.

ToroidalFieldCoilCoatHanger()

ToroidalFieldCoilCoatHangerallstp ToroidalFieldCoilCoatHangersvg ToroidalFieldCoilCoatHangerastp

class ToroidalFieldCoilCoatHanger(name='toroidal_field_coil', horizontal_start_point=(40, 200), horizontal_length=200, vertical_mid_point=(400, 0), vertical_length=250, thickness=30, distance=20, number_of_coils=12, with_inner_leg=True, azimuth_start_angle=0, vertical_displacement=0.0, rotation_angle=360.0, color=(0.0, 0.0, 1.0), **kwargs)

Bases: paramak.parametric_components.toroidal_field_coil.ToroidalFieldCoil

Creates a coat hanger shaped toroidal field coil.

Parameters
  • horizontal_start_point – the (x,z) coordinates of the inner upper point (cm).

  • horizontal_length – the radial length of the horizontal section of the TF coil (cm).

  • vertical_mid_point – the (x,z) coordinates of the mid point of the outboard vertical section (cm).

  • vertical_length – the radial length of the outboard vertical section of the TF coil (cm).

  • thickness – the thickness of the toroidal field coil.

  • distance – the extrusion distance.

  • number_of_coils – the number of TF coils. This changes with azimuth_placement_angle dividing up 360 degrees by the number of coils.

  • with_inner_leg – Include the inner TF leg. Defaults to True.

  • azimuth_start_angle – The azimuth angle to for the first TF coil which offsets the placement of coils around the azimuthal angle

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the poloidal field coil shape.

ToroidalFieldCoilPrincetonD()

ToroidalFieldCoilPrincetonDallstp ToroidalFieldCoilPrincetonDsvg ToroidalFieldCoilPrincetonDastp

class ToroidalFieldCoilPrincetonD(name='toroidal_field_coil', R1=100, R2=300, thickness=30, distance=20, number_of_coils=12, vertical_displacement=0.0, with_inner_leg=True, azimuth_start_angle=0, rotation_angle=360.0, color=(0.0, 0.0, 1.0), **kwargs)

Bases: paramak.parametric_components.toroidal_field_coil.ToroidalFieldCoil

Toroidal field coil based on Princeton-D curve

Parameters
  • R1 – smallest radius (cm)

  • R2 – largest radius (cm)

  • thickness – magnet thickness (cm)

  • distance – extrusion distance (cm)

  • number_of_coils – the number of tf coils. This changes by the azimuth_placement_angle dividing up 360 degrees by the number of coils.

  • vertical_displacement – vertical displacement (cm). Defaults to 0.0.

  • with_inner_leg – Include the inner tf leg. Defaults to True.

  • azimuth_start_angle – The azimuth angle to for the first TF coil which offsets the placement of coils around the azimuthal angle

  • rotation_angle – rotation angle of solid created. A cut is performed from rotation_angle to 360 degrees. Defaults to 360.0.

find_points()

Finds the XZ points joined by connections that describe the 2D profile of the toroidal field coil shape.

ToroidalFieldCoilTripleArc()

ToroidalFieldCoilTripleArcallstp ToroidalFieldCoilTripleArcstp ToroidalFieldCoilTripleArcsvg

class ToroidalFieldCoilTripleArc(name='toroidal_field_coil', R1=80, h=200, radii=(70, 100), coverages=(60, 60), thickness=30, distance=20, number_of_coils=12, vertical_displacement=0.0, with_inner_leg=True, azimuth_start_angle=0, rotation_angle=360.0, color=(0.0, 0.0, 1.0), **kwargs)

Bases: paramak.parametric_components.toroidal_field_coil.ToroidalFieldCoil

Toroidal field coil made of three arcs

Parameters
  • R1 – smallest radius (cm).

  • h – height of the straight section (cm).

  • radii – radii of the small and medium arcs (cm).

  • coverages – coverages of the small and medium arcs (deg).

  • thickness – magnet thickness (cm).

  • distance – extrusion distance (cm).

  • number_of_coils – the number of TF coils. This changes by the azimuth_placement_angle dividing up 360 degrees by the number of coils.

  • vertical_displacement – vertical displacement (cm). Defaults to 0.0.

  • with_inner_leg – Include the inner tf leg. Defaults to True.

  • azimuth_start_angle – The azimuth angle to for the first TF coil which offsets the placement of coils around the azimuthal angle

find_points()

Finds the XZ points joined by connections that describe the 2D profile of the toroidal field coil shape.

ToroidalFieldCoilRectangleRoundCorners()

TFCoilRoundCornersvg TFCoilRoundCornersvg2 TFCoilRoundCornerstp

class ToroidalFieldCoilRectangleRoundCorners(name='toroidal_field_coil', lower_inner_coordinates=(100, 250), mid_point_coordinates=(500, 0), thickness=30, distance=20, number_of_coils=12, with_inner_leg=True, azimuth_start_angle=0, color=(0.0, 0.0, 1.0), **kwargs)

Bases: paramak.parametric_shapes.extruded_mixed_shape.ExtrudeMixedShape

Creates geometry for TF coil with rounded corners. Finds the coordinates for vertices of a TF coil, in a 2D profile on the XZ plane using the main function find_points() which takes 3 positional arguments for the TF coil parameters, and takes three additional boolean arguments.

Parameters
  • lower_inner_coordinates (Tuple) – the (X,Z) coordinate of the inner corner of the lower end of the coil (cm)

  • mid_point_coordinates (Tuple) – the (X,Z) coordinate of the mid point of the vertical section (cm)

  • thickness – The thickness in the (X,Z) plane of the toroidal

  • coils (field) –

  • extrusiondistance – The total extruded thickness of the coils when in the y-direction (centered extrusion)

  • coil_count – The number of coils placed in the model (changing azimuth_placement_angle by dividing 360 by the amount given). Defaults to 1

  • with_inner_leg – Boolean to include the inside of the Coils defaults to False

  • azimuth_start_angle – The azimuth angle to for the first TF coil which offsets the placement of coils around the azimuthal angle

create_solid()

Creates a Cadquery 3D geometry

Returns

A 3D solid Volume

Return type

CadQuery solid

find_azimuth_placement_angle()

Finds the placement angles from the number of coils given in a 360 degree

find_points()

lower_inner_coordinates must be a 2 element tuple mid_point_coordinates must be a 2 elemenet tuple thickness must be a float or an int

Vacuum Vessels

VacuumVessel()

VacuumVesselstp VacuumVesselsvgWP VacuumVesselsvg

class VacuumVessel(height, inner_radius, thickness, **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

A cylindrical vessel volume with constant thickness.

Parameters
  • height (float) – height of the vessel.

  • inner_radius (float) – the inner radius of the vessel.

  • thickness (float) – thickness of the vessel

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the vessel shape.

VacuumVesselInnerLeg()

VacuumVesselInnerLegstp VacuumVesselInnerLegsvg

class VacuumVesselInnerLeg(inner_height, inner_radius, inner_leg_radius, thickness, **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

A cylindrical vessel volume with constant thickness.

Parameters
  • inner_height – height of the vessel.

  • inner_radius – the inner radius of the vessel.

  • inner_leg_radius – the inner radius of the inner leg.

  • thickness – thickness of the vessel

create_solid()

Creates a 3d solid using points with straight edges. Individual solids in the compound can be accessed using .Solids()[i] where i is an int

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the vessel shape.

CapsuleVacuumVessel()

https://user-images.githubusercontent.com/85617923/125429341-e5bdf20d-1739-41ce-953b-eabc01c04511.png
class CapsuleVacuumVessel(radius, outer_start_point, thickness, **kwargs)

Bases: paramak.parametric_shapes.rotate_mixed_shape.RotateMixedShape

A cylindrical vessel volume with constant thickness that has addition spherical edges.

Parameters
  • outer_start_point – the x,z coordinates of the outer bottom of the vacuum vessel

  • radius – the radius from which the centres of the vessel meets the outer circumference.

  • thickness – the radial thickness of the vessel in cm.

find_points()

Finds the XZ points joined by straight and circle connections that describe the 2D profile of the vessel shape.

Other components

ExtrudeRectangle()

class ExtrudeRectangle(height, width, center_point, name='extrude_rectangle', **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

Creates a rectangular extrusion.

Parameters
  • height – the vertical (z axis) height of the rectangle (cm).

  • width – the horizontal (x axis) width of the rectangle (cm).

  • center_point – the center of the rectangle (x,z) values (cm).

  • name – defaults to “extrude_rectangle”.

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the shape.

ExtrudeHollowRectangle()

https://user-images.githubusercontent.com/8583900/145905435-87d05386-d2e5-4de3-8f03-5a08cc5a4b22.png
class ExtrudeHollowRectangle(height, width, distance, casing_thickness, name='extrude_hollow_rectangle', center_point=(0, 0), extrude_both=True, color=(0.5, 0.5, 0.5), azimuth_placement_angle=0.0, workplane='XZ', cut=None, intersect=None, union=None, **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

Creates a rectangular with a hollow section extrusion.

Parameters
  • height – the vertical (z axis) height of the rectangle (cm).

  • width – the horizontal (x axis) width of the rectangle (cm).

  • casing_thickness – the thickness of the casing (cm).

  • center_point – the center of the rectangle (x,z) values (cm).

  • name – defaults to “extrude_rectangle”.

create_solid()

Creates an extruded 3d solid using points connected with straight and spline edges.

Returns:

A CadQuery solid: A 3D solid volume

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the shape.

HexagonPin()

HexagonPinstp HexagonPinsvg

class HexagonPin(length_of_side, distance, center_point=(0, 0), name='hexagon_pin', **kwargs)

Bases: paramak.parametric_shapes.extruded_straight_shape.ExtrudeStraightShape

Creates an extruded hexagon by a provided distance about a center point.

Parameters
  • length_of_side – the length of one side of the hexagon (mm).

  • distance – extruded distance along the y-direction (mm).

  • center_point – the center of the hexagon on the x-z plane (mm).

  • name – defaults to “hexagon_pin”.

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the hexagon faced shape.

RotatedTrapezoid()

RotatedTrapezoidstp RotatedTrapezoidsvg

class RotatedTrapezoid(length_1, length_2, length_3, pivot_point, pivot_angle=0.0, name='rotated_trapezoid', **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a rotated trapezoid (truncated triangle) shape.

Parameters
  • length_1 (float) – the length of the top parrallel edge of the trapezoid (cm).

  • length_2 (float) – the length of the base parrallel edge of the trapezoid (cm).

  • length_3 (float) – the height of the trapezoid, the distances from top to base (cm).

  • pivot_point ((float, float)) – the coordinates of the center of rotation (x,z). The piviot point is located in the center of the length_1 edge (cm).

  • pivot_angle (float, optional) – the angle (in degrees) to pivot (rotate) the shape by around the pivot point. Defaults to 0.

  • name (str, optional) – defaults to “rotated_trapezoid”.

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the trapezoid shape.

RotatedIsoscelesTriangle

RotatedIsoscelesTrianglestp RotatedIsoscelesTrianglesvg

class RotatedIsoscelesTriangle(base_length, height, pivot_point, pivot_angle=0.0, name='rotated_triangle', **kwargs)

Bases: paramak.parametric_shapes.rotate_straight_shape.RotateStraightShape

Creates a rotated triangle (truncated triangle) shape.

Parameters
  • base_length (float) – the length of the base of the triangle (cm).

  • height (float) – the height of the triangle (cm).

  • pivot_point ((float, float)) – the coordinates of the tip of the triangle at the opposite side to the base of the triangle.

  • pivot_angle (float, optional) – the angle (in degrees) to pivot (rotate) the shape by around the pivot point. Defaults to 0.

  • name (str, optional) – defaults to “rotated_triangle”.

find_points()

Finds the XZ points joined by straight connections that describe the 2D profile of the triangle shape.