Skip to content

mass

Module for coil mass calculations in stellarators.

calculate_coils_mass(a_tf_wp_with_insulation, a_tf_wp_no_insulation)

Calculates the mass of stellarator coils by aggregating the masses of various coil components.

This function computes the masses of conductor constituents (casing, ground insulation, superconductor, copper), conduit masses (steel and insulation), and then calculates the total conductor and coil masses.

Parameters:

Name Type Description Default
a_tf_wp_with_insulation float

Area of the toroidal field coil winding pack with insulation.

required
a_tf_wp_no_insulation float

Area of the toroidal field coil winding pack without insulation.

required

Returns:

Type Description

The function performs calculations and updates external state.

Source code in process/models/stellarator/coils/mass.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def calculate_coils_mass(a_tf_wp_with_insulation: float, a_tf_wp_no_insulation: float):
    """Calculates the mass of stellarator coils by aggregating the masses of various coil components.

    This function computes the masses of conductor constituents (casing, ground insulation, superconductor, copper),
    conduit masses (steel and insulation), and then calculates the total conductor and coil masses.

    Parameters
    ----------
    a_tf_wp_with_insulation :
        Area of the toroidal field coil winding pack with insulation.
    a_tf_wp_no_insulation:
        Area of the toroidal field coil winding pack without insulation.

    Returns
    -------
    :
        The function performs calculations and updates external state.

    """

    #  Masses of conductor constituents
    casing()
    ground_insulation(a_tf_wp_with_insulation, a_tf_wp_no_insulation)
    superconductor()
    copper()

    # conduit masses
    conduit_steel()
    conduit_insulation()

    # Total masses
    total_conductor()
    total_coil()

casing()

[kg] Mass of case (no need for correction factors as is the case for tokamaks) This is only correct if the winding pack is 'thin' (len_tf_coil>>sqrt(tfcoil_variables.a_tf_coil_inboard_case)).

Source code in process/models/stellarator/coils/mass.py
42
43
44
45
46
47
48
49
50
51
52
def casing():
    """[kg] Mass of case
    (no need for correction factors as is the case for tokamaks)
    This is only correct if the winding pack is 'thin' (len_tf_coil>>sqrt(tfcoil_variables.a_tf_coil_inboard_case)).

    """
    tfcoil_variables.m_tf_coil_case = (
        tfcoil_variables.len_tf_coil
        * tfcoil_variables.a_tf_coil_inboard_case
        * tfcoil_variables.den_tf_coil_case
    )

ground_insulation(a_tf_wp_with_insulation, a_tf_wp_no_insulation)

Mass of ground-wall insulation [kg] (assumed to be same density/material as conduit insulation)

Parameters:

Name Type Description Default
a_tf_wp_with_insulation
required
a_tf_wp_no_insulation
required
Source code in process/models/stellarator/coils/mass.py
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
def ground_insulation(a_tf_wp_with_insulation, a_tf_wp_no_insulation):
    """Mass of ground-wall insulation [kg]
    (assumed to be same density/material as conduit insulation)

    Parameters
    ----------
    a_tf_wp_with_insulation :

    a_tf_wp_no_insulation :

    """
    tfcoil_variables.m_tf_coil_wp_insulation = (
        tfcoil_variables.len_tf_coil
        * (a_tf_wp_with_insulation - a_tf_wp_no_insulation)
        * tfcoil_variables.den_tf_wp_turn_insulation
    )

superconductor()

[kg] mass of Superconductor a_tf_wp_coolant_channels is 0 for a stellarator. but keep this term for now.

Source code in process/models/stellarator/coils/mass.py
73
74
75
76
77
78
79
80
81
82
83
84
85
def superconductor():
    """[kg] mass of Superconductor
    a_tf_wp_coolant_channels is 0 for a stellarator. but keep this term for now.

    """
    tfcoil_variables.m_tf_coil_superconductor = (
        tfcoil_variables.len_tf_coil
        * tfcoil_variables.n_tf_coil_turns
        * tfcoil_variables.a_tf_turn_cable_space_no_void
        * (1.0e0 - tfcoil_variables.f_a_tf_turn_cable_space_extra_void)
        * (1.0e0 - tfcoil_variables.f_a_tf_turn_cable_copper)
        - tfcoil_variables.len_tf_coil * tfcoil_variables.a_tf_wp_coolant_channels
    ) * tfcoil_variables.dcond[tfcoil_variables.i_tf_sc_mat - 1]

copper()

[kg] mass of Copper in conductor

Source code in process/models/stellarator/coils/mass.py
88
89
90
91
92
93
94
95
96
97
def copper():
    """[kg] mass of Copper in conductor"""
    tfcoil_variables.m_tf_coil_copper = (
        tfcoil_variables.len_tf_coil
        * tfcoil_variables.n_tf_coil_turns
        * tfcoil_variables.a_tf_turn_cable_space_no_void
        * (1.0e0 - tfcoil_variables.f_a_tf_turn_cable_space_extra_void)
        * tfcoil_variables.f_a_tf_turn_cable_copper
        - tfcoil_variables.len_tf_coil * tfcoil_variables.a_tf_wp_coolant_channels
    ) * constants.den_copper

conduit_steel()

[kg] mass of Steel conduit (sheath)

Source code in process/models/stellarator/coils/mass.py
100
101
102
103
104
105
106
107
def conduit_steel():
    """[kg] mass of Steel conduit (sheath)"""
    tfcoil_variables.m_tf_wp_steel_conduit = (
        tfcoil_variables.len_tf_coil
        * tfcoil_variables.n_tf_coil_turns
        * tfcoil_variables.a_tf_turn_steel
        * fwbs_variables.den_steel
    )

conduit_insulation()

Conduit insulation mass [kg] (tfcoil_variables.a_tf_coil_wp_turn_insulation already contains tfcoil_variables.n_tf_coil_turns)

Source code in process/models/stellarator/coils/mass.py
111
112
113
114
115
116
117
118
119
120
def conduit_insulation():
    """Conduit insulation mass [kg]
    (tfcoil_variables.a_tf_coil_wp_turn_insulation already contains tfcoil_variables.n_tf_coil_turns)

    """
    tfcoil_variables.m_tf_coil_wp_turn_insulation = (
        tfcoil_variables.len_tf_coil
        * tfcoil_variables.a_tf_coil_wp_turn_insulation
        * tfcoil_variables.den_tf_wp_turn_insulation
    )

total_conductor()

[kg] Total conductor mass

Source code in process/models/stellarator/coils/mass.py
123
124
125
126
127
128
129
130
def total_conductor():
    """[kg] Total conductor mass"""
    tfcoil_variables.m_tf_coil_conductor = (
        tfcoil_variables.m_tf_coil_superconductor
        + tfcoil_variables.m_tf_coil_copper
        + tfcoil_variables.m_tf_wp_steel_conduit
        + tfcoil_variables.m_tf_coil_wp_turn_insulation
    )

total_coil()

[kg] Total coil mass

Source code in process/models/stellarator/coils/mass.py
133
134
135
136
137
138
139
def total_coil():
    """[kg] Total coil mass"""
    tfcoil_variables.m_tf_coils_total = (
        tfcoil_variables.m_tf_coil_case
        + tfcoil_variables.m_tf_coil_conductor
        + tfcoil_variables.m_tf_coil_wp_insulation
    ) * tfcoil_variables.n_tf_coils