Process produces a feasible solution but in the log file an area or fraction of the TF magnet coil is negative
Opened this issue · 4 comments
In GitLab by @cjwgriesel on Jul 6, 2022, 17:18
Process produces a feasible solution for a concept but in the log file a warning is generated that is an error. An area or fraction of a TF magnet coil is negative.
Typically
276 2 CHECK: One of the areas or fractions is negative in the internal SC TF coil geom
Floating point diagnostic values for this error:
- 3.05541E-02
- 1.62942E-03
- 7.65500E-03
- -7.86779E-03
- 4.22782E-02
- 4.81483E-01
- 1.29416E-02
- 1.47385E-01
Or
276 2 CHECK: One of the areas or fractions is negative in the internal SC TF coil geom
Floating point diagnostic values for this error:
- 1.54265E-01
- 8.12355E-03
- 1.55290E-03
- -1.57456E-01
- -1.48735E-01
- -8.25437E+00
- 4.28264E-03
- 2.37675E-01
this is from sctfcoil.f90
! Negative areas or fractions error reporting
if ( acond <= 0.0D0 .or. avwp <= 0.0D0 .or. aiwp <= 0.0D0 .or. &
aswp <= 0.0D0 .or. a_tf_steel <= 0.0D0 .or. f_tf_steel <= 0.0D0 .or. &
a_tf_ins <= 0.0D0 .or. f_tf_ins <= 0.0D0 ) then
fdiags(1) = acond
fdiags(2) = avwp
fdiags(3) = aiwp
fdiags(4) = aswp
fdiags(5) = a_tf_steel
fdiags(6) = f_tf_steel
fdiags(7) = a_tf_ins
fdiags(8) = f_tf_ins
call report_error(276)
end if
so in the upper case aswp is -ve.
and in the lower case aswp, a_tf_steel and f_tf_steel are all -ve.
NOTE in the MFILE.DAT output and OUT.DAT there is an error in that the wrong variable has been used to display output of aswp. See issue #1702.
In GitLab by @cjwgriesel on Jul 6, 2022, 17:24
Note also that the negative area or fraction of the TF magnet coil is negative in the final output of the so called feasible solution!!!
In GitLab by @mkovari on Jul 28, 2022, 11:56
The error lies in subroutine tf_averaged_turn_geom
. If this option is selected:
! ITER like turn structure
if ( i_tf_sc_mat /= 6 ) thenthen the cable dimension can become negative:
! Dimension of square cable space inside conduit [m]
t_cable = t_conductor - 2.0D0*thwcndut
Unfortunately, this is not picked up by the error check, which looks only at the square of the cable dimension:
! Cross-sectional area of cable space per turn
! taking account of rounded inside corners [m2]
acstf = t_cable**2 - (4.0D0-pi)*rbcndut**2
if (acstf <= 0.0D0) then
Note that this problem has been known for a long time and has been partially solved before - see Issue #784.
Also the diameter of the helium channel is an input in m, so it doesn't scale with the other dimensions. You can have a positive cable space that is smaller than the helium channel (dhecoil
)