Skip to content

cryostat

Cryostat

Source code in process/models/cryostat.py
 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
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
class Cryostat:
    def __init__(self):
        self.outfile = constants.NOUT

    def run(self):
        """Run the cryostat calculations.

        This method runs the cryostat calculations, including the calculation of the cryostat geometry.
        """

        # Calculate cryostat geometry
        self.external_cryo_geometry()

    @staticmethod
    def external_cryo_geometry():
        """Calculate cryostat geometry.

        This method calculates the geometry of the cryostat, including the inboard radius,
        the vertical clearance between the uppermost PF coil and the cryostat lid, the half-height
        of the cryostat, the vertical clearance between the TF coil and the cryostat, the cryostat volume,
        the vacuum vessel mass, and the sum of internal vacuum vessel and cryostat masses.
        """

        # Cryostat radius [m]
        # Take radius of furthest PF coil and add clearance
        fwbs_variables.r_cryostat_inboard = (
            np.max(pfcoil_variables.r_pf_coil_outer) + fwbs_variables.dr_pf_cryostat
        )

        # Clearance between uppermost PF coil and cryostat lid [m].
        # Scaling from ITER by M. Kovari
        blanket_library.dz_pf_cryostat = (
            build_variables.f_z_cryostat
            * (2.0 * fwbs_variables.r_cryostat_inboard)
            / 28.440
        )

        # Half-height of cryostat [m]
        # Take height of furthest PF coil and add clearance
        fwbs_variables.z_cryostat_half_inside = (
            np.max(pfcoil_variables.z_pf_coil_upper) + blanket_library.dz_pf_cryostat
        )

        # Vertical clearance between TF coil and cryostat (m)
        buildings_variables.dz_tf_cryostat = fwbs_variables.z_cryostat_half_inside - (
            build_variables.z_tf_inside_half + build_variables.dr_tf_inboard
        )

        # Internal cryostat space volume [m^3]
        fwbs_variables.vol_cryostat_internal = (
            np.pi
            * (fwbs_variables.r_cryostat_inboard) ** 2
            * 2
            * fwbs_variables.z_cryostat_half_inside
        )

        # Cryostat structure volume [m^3]
        # Calculate by taking the volume of the outer cryostat and subtracting the volume of the inner cryostat
        fwbs_variables.vol_cryostat = (
            (
                np.pi
                * (fwbs_variables.r_cryostat_inboard + build_variables.dr_cryostat) ** 2
            )
            * 2
            * (build_variables.dr_cryostat + fwbs_variables.z_cryostat_half_inside)
        ) - (fwbs_variables.vol_cryostat_internal)

        # Sum of internal vacuum vessel and cryostat masses (kg)
        fwbs_variables.dewmkg = (
            fwbs_variables.vol_vv + fwbs_variables.vol_cryostat
        ) * fwbs_variables.den_steel

    def cryostat_output(self):
        """Outputs the cryostat geometry details to the output file."""
        po.oheadr(self.outfile, "Cryostat build")

        po.ovarrf(
            self.outfile,
            "Cryostat thickness (m)",
            "(dr_cryostat)",
            build_variables.dr_cryostat,
            "OP ",
        )
        po.ovarrf(
            self.outfile,
            "Cryostat internal radius (m)",
            "(r_cryostat_inboard)",
            fwbs_variables.r_cryostat_inboard,
            "OP ",
        )
        po.ovarrf(
            self.outfile,
            "Cryostat internal half height (m)",
            "(z_cryostat_half_inside)",
            fwbs_variables.z_cryostat_half_inside,
            "OP ",
        )
        po.ovarrf(
            self.outfile,
            "Vertical clearance from highest PF coil to cryostat (m)",
            "(dz_pf_cryostat)",
            blanket_library.dz_pf_cryostat,
            "OP ",
        )
        po.ovarrf(
            self.outfile,
            "Cryostat structure volume (m^3)",
            "(vol_cryostat)",
            fwbs_variables.vol_cryostat,
            "OP ",
        )
        po.ovarrf(
            self.outfile,
            "Cryostat internal volume (m^3)",
            "(vol_cryostat_internal)",
            fwbs_variables.vol_cryostat_internal,
            "OP ",
        )

outfile = constants.NOUT instance-attribute

run()

Run the cryostat calculations.

This method runs the cryostat calculations, including the calculation of the cryostat geometry.

Source code in process/models/cryostat.py
18
19
20
21
22
23
24
25
def run(self):
    """Run the cryostat calculations.

    This method runs the cryostat calculations, including the calculation of the cryostat geometry.
    """

    # Calculate cryostat geometry
    self.external_cryo_geometry()

external_cryo_geometry() staticmethod

Calculate cryostat geometry.

This method calculates the geometry of the cryostat, including the inboard radius, the vertical clearance between the uppermost PF coil and the cryostat lid, the half-height of the cryostat, the vertical clearance between the TF coil and the cryostat, the cryostat volume, the vacuum vessel mass, and the sum of internal vacuum vessel and cryostat masses.

Source code in process/models/cryostat.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
@staticmethod
def external_cryo_geometry():
    """Calculate cryostat geometry.

    This method calculates the geometry of the cryostat, including the inboard radius,
    the vertical clearance between the uppermost PF coil and the cryostat lid, the half-height
    of the cryostat, the vertical clearance between the TF coil and the cryostat, the cryostat volume,
    the vacuum vessel mass, and the sum of internal vacuum vessel and cryostat masses.
    """

    # Cryostat radius [m]
    # Take radius of furthest PF coil and add clearance
    fwbs_variables.r_cryostat_inboard = (
        np.max(pfcoil_variables.r_pf_coil_outer) + fwbs_variables.dr_pf_cryostat
    )

    # Clearance between uppermost PF coil and cryostat lid [m].
    # Scaling from ITER by M. Kovari
    blanket_library.dz_pf_cryostat = (
        build_variables.f_z_cryostat
        * (2.0 * fwbs_variables.r_cryostat_inboard)
        / 28.440
    )

    # Half-height of cryostat [m]
    # Take height of furthest PF coil and add clearance
    fwbs_variables.z_cryostat_half_inside = (
        np.max(pfcoil_variables.z_pf_coil_upper) + blanket_library.dz_pf_cryostat
    )

    # Vertical clearance between TF coil and cryostat (m)
    buildings_variables.dz_tf_cryostat = fwbs_variables.z_cryostat_half_inside - (
        build_variables.z_tf_inside_half + build_variables.dr_tf_inboard
    )

    # Internal cryostat space volume [m^3]
    fwbs_variables.vol_cryostat_internal = (
        np.pi
        * (fwbs_variables.r_cryostat_inboard) ** 2
        * 2
        * fwbs_variables.z_cryostat_half_inside
    )

    # Cryostat structure volume [m^3]
    # Calculate by taking the volume of the outer cryostat and subtracting the volume of the inner cryostat
    fwbs_variables.vol_cryostat = (
        (
            np.pi
            * (fwbs_variables.r_cryostat_inboard + build_variables.dr_cryostat) ** 2
        )
        * 2
        * (build_variables.dr_cryostat + fwbs_variables.z_cryostat_half_inside)
    ) - (fwbs_variables.vol_cryostat_internal)

    # Sum of internal vacuum vessel and cryostat masses (kg)
    fwbs_variables.dewmkg = (
        fwbs_variables.vol_vv + fwbs_variables.vol_cryostat
    ) * fwbs_variables.den_steel

cryostat_output()

Outputs the cryostat geometry details to the output file.

Source code in process/models/cryostat.py
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
def cryostat_output(self):
    """Outputs the cryostat geometry details to the output file."""
    po.oheadr(self.outfile, "Cryostat build")

    po.ovarrf(
        self.outfile,
        "Cryostat thickness (m)",
        "(dr_cryostat)",
        build_variables.dr_cryostat,
        "OP ",
    )
    po.ovarrf(
        self.outfile,
        "Cryostat internal radius (m)",
        "(r_cryostat_inboard)",
        fwbs_variables.r_cryostat_inboard,
        "OP ",
    )
    po.ovarrf(
        self.outfile,
        "Cryostat internal half height (m)",
        "(z_cryostat_half_inside)",
        fwbs_variables.z_cryostat_half_inside,
        "OP ",
    )
    po.ovarrf(
        self.outfile,
        "Vertical clearance from highest PF coil to cryostat (m)",
        "(dz_pf_cryostat)",
        blanket_library.dz_pf_cryostat,
        "OP ",
    )
    po.ovarrf(
        self.outfile,
        "Cryostat structure volume (m^3)",
        "(vol_cryostat)",
        fwbs_variables.vol_cryostat,
        "OP ",
    )
    po.ovarrf(
        self.outfile,
        "Cryostat internal volume (m^3)",
        "(vol_cryostat_internal)",
        fwbs_variables.vol_cryostat_internal,
        "OP ",
    )