ukaea / ukaea/PROCESS

:bug:TF coil conduit shear stress "correction"

Open
#4,003 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
71
Forks
27
Avg merge
2d 18h
Merged PRs (30d)
33

Description

A fudge factor was put in to adjust the maximum shear stress (used in the Tresca yield criterion) for the TF coil, based on collaboration with CEA. This isn't documented and doesn't have any justification that I can recall. It was supposed to be optional, but the stress profile plots in the pdf summary seem to use it every time. As a result, the "Structure Stress Summary" plot shows a "Tresca stress" which is higher than it should be and not consistent with the stress components on the same plot.

The adjustment is based on this switch, whose default is zero.:

i_tf_tresca: int = None
"""Switch for TF coil conduit Tresca stress criterion:
0 : Tresca (no adjustment);
1 : Tresca with CEA adjustment factors (radial+2%, vertical+60%) </UL>
"""

The adjustment is made when i_tf_tresca = 1 when calculating the maximum shear stress of each layer.

However, when the stress data is saved to a file, i_tf_tresca is not used. The adjusted data is always output whenever the coil is superconducting:

        # SIG_TF.json storage
        sig_file_data = {
      ...
            "CEA Tresca stress (MPa)": (
                s_shear_cea_tf_cond * 1e-6
                if tfcoil_variables.i_tf_sup == 1
                else s_shear_tf * 1e-6
            ),
            "rad. displacement (mm)": deflect * 1e3,
        }

Consequently, the CEA stress is used in plot_proc whether or not it is relevant:

            tresca_stress[ii].append(
                sig_file_data["CEA Tresca stress (MPa)"][ii * n_radial_array_layer + jj]
            )
            cea_tresca_stress[ii].append(
                sig_file_data["CEA Tresca stress (MPa)"][ii * n_radial_array_layer + jj]
            )

(Note that sig_file_data["CEA Tresca stress (MPa)"] appears 6 times in plot_proc.)

Steps to reproduce

example_R6_2000MW_baseline_1_bucking_TA.MFILE.DATSUMMARY_TFstress_0.pdf

example_R6_2000MW_baseline_1_bucking_TA.MFILE_TFstress_0.DAT.txt

example_R6_2000MW_baseline_1_bucking_TA.OUT_TFstress_0.DAT.txt

Expected behaviour

By default, and whenever i_tf_tresca = 1, all plos and outputs should use the unadjusted values of max shear stress.

Evidence

Image The "sigma_Tresca" peaks at around 1100 MPa, but would be about 850 MPa if calculated from the stress components.

@chris-ashe Any chance you could sweep up this bug in one of your PRs?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Trace the i_tf_tresca handling from the TF coil maximum-shear-stress calculation into the SIG_TF.json storage and plot_proc uses of "CEA Tresca stress (MPa)". Compare the generated stress summary with the stress components and clarify the intended switch behavior; done means default and selected outputs consistently use the correct Tresca values, with regression coverage for both switch settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.