Central Solenoid Tresca yield criterion author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Central Solenoid Tresca yield criterion #=# pfcoil #=#=# foh_stress, alstroh In the case if the bucked and wedged option ( i_tf_bucking >= 2 ) the constrained stress is the largest the largest stress of the - CS stress at maximum current (conservative as the TF inward pressure is not taken into account) - CS stress at flux swing (no current in CS) from the TF inward pressure This allow to cover the 2 worst stress scenario in the bucked and wedged design Otherwise (free standing TF), the stress limits are only set by the CS stress at max current Reverse the sign so it works as an inequality constraint (tmp_cc > 0) This will have no effect if it is used as an equality constraint because it will be squared. and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. foh_stress : input real : f-value for Tresca yield criterion in Central Solenoid alstroh : input real : allowable hoop stress in Central Solenoid structural material (Pa) s_tresca_oh : input real : Maximum shear stress coils/central solenoid (Pa) sig_tf_cs_bucked : input real : Maximum shear stress in CS case at flux swing (no current in CS) can be significant for the bucked and weged design i_tf_bucking : input integer : switch for TF structure design
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(out) | :: | tmp_cc | |||
real(kind=dp), | intent(out) | :: | tmp_con | |||
real(kind=dp), | intent(out) | :: | tmp_err | |||
character(len=1), | intent(out) | :: | tmp_symbol | |||
character(len=10), | intent(out) | :: | tmp_units |
subroutine constraint_eqn_072(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)
!! Central Solenoid Tresca yield criterion
!! author: P B Lloyd, CCFE, Culham Science Centre
!! args : output structure : residual error; constraint value;
!! residual error in physical units; output string; units string
!! Central Solenoid Tresca yield criterion
!! #=# pfcoil
!! #=#=# foh_stress, alstroh
!! In the case if the bucked and wedged option ( i_tf_bucking >= 2 ) the constrained
!! stress is the largest the largest stress of the
!! - CS stress at maximum current (conservative as the TF inward pressure is not taken
!! into account)
!! - CS stress at flux swing (no current in CS) from the TF inward pressure
!! This allow to cover the 2 worst stress scenario in the bucked and wedged design
!! Otherwise (free standing TF), the stress limits are only set by the CS stress at max current
!! Reverse the sign so it works as an inequality constraint (tmp_cc > 0)
!! This will have no effect if it is used as an equality constraint because it will be squared.
!! and hence also optional here.
!! Logic change during pre-factoring: err, symbol, units will be assigned only if present.
!! foh_stress : input real : f-value for Tresca yield criterion in Central Solenoid
!! alstroh : input real : allowable hoop stress in Central Solenoid structural material (Pa)
!! s_tresca_oh : input real : Maximum shear stress coils/central solenoid (Pa)
!! sig_tf_cs_bucked : input real : Maximum shear stress in CS case at flux swing (no current in CS)
!! can be significant for the bucked and weged design
!! i_tf_bucking : input integer : switch for TF structure design
use constraint_variables, only: foh_stress
use pfcoil_variables, only: alstroh, s_tresca_oh
use tfcoil_variables, only: sig_tf_cs_bucked, i_tf_bucking
use build_variables, only: tf_in_cs
implicit none
real(dp), intent(out) :: tmp_cc
real(dp), intent(out) :: tmp_con
real(dp), intent(out) :: tmp_err
character(len=1), intent(out) :: tmp_symbol
character(len=10), intent(out) :: tmp_units
! bucked and wedged desing (see subroutine comment)
if ( i_tf_bucking >= 2 .and. tf_in_cs == 0 ) then
tmp_cc = 1.0d0 - foh_stress * alstroh / max(s_tresca_oh, sig_tf_cs_bucked)
tmp_err = alstroh - max(s_tresca_oh, sig_tf_cs_bucked)
! Free standing CS
else
tmp_cc = 1.0d0 - foh_stress * alstroh / s_tresca_oh
tmp_err = alstroh - s_tresca_oh
end if
tmp_con = alstroh
tmp_symbol = '<'
tmp_units = 'Pa'
end subroutine constraint_eqn_072