Equation for checking if the design point is ECRH ignitable at lower values for n and B. Or if the design point is ECRH heatable (if ignite==0) stellarators only (but in principle usable also for tokamaks). author: J Lion, IPP Greifswald args : output structure : residual error; constraint value; residual error in physical units; output string; units string powerht_local > powerscaling #=# physics #=#=# fecrh_ignition, powerht_local, powerscaling fecrh_ignition : input real : f-value for constraint powerht_local > powerscaling max_gyrotron_frequency : input real : Max. av. gyrotron frequency te0_ecrh_achievable : input real : Max. achievable electron temperature at ignition point
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_091(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)
!! Equation for checking if the design point is ECRH ignitable
!! at lower values for n and B. Or if the design point is ECRH heatable (if ignite==0)
!! stellarators only (but in principle usable also for tokamaks).
!! author: J Lion, IPP Greifswald
!! args : output structure : residual error; constraint value;
!! residual error in physical units; output string; units string
!! powerht_local > powerscaling
!! #=# physics
!! #=#=# fecrh_ignition, powerht_local, powerscaling
!! fecrh_ignition : input real : f-value for constraint powerht_local > powerscaling
!! max_gyrotron_frequency : input real : Max. av. gyrotron frequency
!! te0_ecrh_achievable : input real : Max. achievable electron temperature at ignition point
use constraint_variables, only: fecrh_ignition
use stellarator_variables, only: max_gyrotron_frequency, te0_ecrh_achievable, powerscaling_constraint, powerht_constraint
use physics_variables, only: ignite
use current_drive_variables, only: pheat
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
! Achievable ECRH te needs to be larger than needed te for igntion
if(ignite==0) then
tmp_cc = 1.0D0 - fecrh_ignition* (powerht_constraint+pheat)/powerscaling_constraint
else
tmp_cc = 1.0D0 - fecrh_ignition* powerht_constraint/powerscaling_constraint
endif
tmp_con = powerscaling_constraint * (1.0D0 - tmp_cc)
tmp_err = powerht_constraint * tmp_cc
tmp_symbol = '<'
tmp_units = 'MW'
end subroutine constraint_eqn_091