Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

PROCESS has three separate TF temperature margin variables. For CROCO two are calculated differently

未关闭
#4,687 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@CoronelBuendia 已经在做这个了。

开始于 2026年10月15日。

  • #4689 来自 @CoronelBuendia —— 未关闭

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
重构
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
backend

调研方向

Start in tfcoil_variables.py, where tmargmin, temp_margin and temp_tf_superconductor_margin are declared, then find every read and write of temp_margin and tmargmin across the codebase. Compare the CROCO path, which sets temp_margin via superconductors.current_sharing_rebco and temp_tf_superconductor_margin via calculate_superconductor_temperature_margin. The issue needs a maintainer decision on which name survives before any edit. Done means one temperature-margin variable remains, with the availability routine and the margin constraint still giving the same results.

由索引模型根据 Issue 内容生成。

描述

Bug TF Coil

Echoes of #527

//tfcoil_variables.py

    tmargmin: float = 0.0
    """minimum allowable temperature margin : TFC AND CS (K)"""

    temp_margin: float = 0.0
    """temperature margin (K)"""

    temp_tf_superconductor_margin: float = 0.0
    """TF coil superconductor temperature margin (K)"""

For CICC, temp_margin = temp_tf_superconductor_margin. No-brainer.

For CROCO, it's a horror show, with the two being calculated one after the other with different superconducting parameterisations.
temp_margin is calculated with one hard-coded REBCO current density parameterisation:

        # Temperature margin
        current_sharing_t = superconductors.current_sharing_rebco(
            b_tf_inboard_peak, j_superconductor
        )
        tmarg = current_sharing_t - temp_tf_peak
        self.data.tfcoil.temp_margin = (
            tmarg  # Only used in the availabilty routine - see comment to Issue #526
        )

temp_tf_superconductor_margin is calculated with an input-based current density parameterisation:

        if self.data.tfcoil.i_str_wp == 0:
            strain = self.data.tfcoil.str_tf_con_res
        else:
            strain = self.data.tfcoil.str_wp

        self.data.tfcoil.temp_tf_superconductor_margin = (
            self.calculate_superconductor_temperature_margin(
                i_tf_superconductor=self.data.tfcoil.i_tf_sc_mat,
                j_superconductor=d_sc_tf.j_tf_superconductor,
                b_tf_inboard_peak=self.data.tfcoil.b_tf_inboard_peak_with_ripple,
                strain=strain,
                bc20m=d_sc_tf.b_tf_superconductor_critical_zero_temp_strain,
                tc0m=d_sc_tf.temp_tf_superconductor_critical_zero_field_strain,
                c0=1.0e10,
                temp_tf_coolant_peak_field=self.data.tfcoil.tftmp,
                data=self.data,
            )
        )

temp_margin is only used in the availability calculations, not in the temperature margin constraint.

tmargmin appears to exist for backwards compatibility only, and applies to both TF and CS.

temp_tf_superconductor_margin is the most explicit name, and the one used most frequently. Please could we simplify these down, it's rather confusing.

主要语言
Python
星标
74
派生
29
平均合并
3 天 11 小时
30 天内合并 PR
43

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ukaea/PROCESS 的其他 Issue

查看 ukaea/PROCESS 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。