constraints Module

Module defining the constraint equations and the routine that evaluates the constraint equations.



Contents

constraint_eqns constraint_err_001 constraint_err_016 constraint_err_030 constraint_err_066 constraint_eqn_001 constraint_eqn_002 constraint_eqn_003 constraint_eqn_004 constraint_eqn_005 constraint_eqn_006 constraint_eqn_007 constraint_eqn_008 constraint_eqn_009 constraint_eqn_010 constraint_eqn_011 constraint_eqn_012 constraint_eqn_013 constraint_eqn_014 constraint_eqn_015 constraint_eqn_016 constraint_eqn_017 constraint_eqn_018 constraint_eqn_019 constraint_eqn_020 constraint_eqn_021 constraint_eqn_022 constraint_eqn_023 constraint_eqn_024 constraint_eqn_025 constraint_eqn_026 constraint_eqn_027 constraint_eqn_028 constraint_eqn_029 constraint_eqn_030 constraint_eqn_031 constraint_eqn_032 constraint_eqn_033 constraint_eqn_034 constraint_eqn_035 constraint_eqn_036 constraint_eqn_037 constraint_eqn_038 constraint_eqn_039 constraint_eqn_040 constraint_eqn_041 constraint_eqn_042 constraint_eqn_043 constraint_eqn_044 constraint_eqn_045 constraint_eqn_046 constraint_eqn_047 constraint_eqn_048 constraint_eqn_049 constraint_eqn_050 constraint_eqn_051 constraint_eqn_052 constraint_eqn_053 constraint_eqn_054 constraint_eqn_055 constraint_eqn_056 constraint_eqn_057 constraint_eqn_058 constraint_eqn_059 constraint_eqn_060 constraint_eqn_061 constraint_eqn_062 constraint_eqn_063 constraint_eqn_064 constraint_eqn_065 constraint_eqn_066 constraint_eqn_067 constraint_eqn_068 constraint_eqn_069 constraint_eqn_070 constraint_eqn_071 constraint_eqn_072 constraint_eqn_073 constraint_eqn_074 constraint_eqn_075 constraint_eqn_076 constraint_eqn_077 constraint_eqn_078 constraint_eqn_079 constraint_eqn_080 constraint_eqn_081 constraint_eqn_082 constraint_eqn_083 constraint_eqn_084 constraint_eqn_085 constraint_eqn_086 constraint_eqn_087 constraint_eqn_088 constraint_eqn_089 constraint_eqn_090 constraint_eqn_091

Subroutines

public subroutine constraint_eqns(m, ieqn, cc, con, err, symbol, units)

Routine that formulates the constraint equations

Read more…

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: m

Number of constraint equations to solve

integer, intent(in) :: ieqn

Switch for constraint equations to evaluate;

real(kind=dp), intent(out), dimension(m):: cc

Residual error in equation i

real(kind=dp), intent(out), optional dimension(m):: con

constraint value for equation i in physical units

real(kind=dp), intent(out), optional dimension(m):: err

residual error in equation i in physical units

character(len=1), intent(out), optional dimension(m):: symbol

=<, >, < symbol for equation i denoting its type

character(len=10), intent(out), optional dimension(m):: units

constraint units in equation i

public subroutine constraint_err_001()

Error in: Relationship between beta, temperature (keV) and density (consistency equation) author: P B Lloyd, CCFE, Culham Science Centre

Arguments

None

public subroutine constraint_err_016()

Error in: Equation for net electric power lower limit author: P B Lloyd, CCFE, Culham Science Centre

Arguments

None

public subroutine constraint_err_030()

Error in: Equation for injection power upper limit author: P B Lloyd, CCFE, Culham Science Centre

Arguments

None

public subroutine constraint_err_066()

Error in: Limit on rate of change of energy in poloidal field author: P B Lloyd, CCFE, Culham Science Centre

Arguments

None

public subroutine constraint_eqn_001(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author
J Morris
Category
equality constraint

Relationship between beta, temperature (keV) and density

Read more…

Arguments

Type IntentOptional AttributesName
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

constraint derived type

public subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author
J. Morris
Category
equality constraint

Global plasma power balance equation

Read more…

Arguments

Type IntentOptional AttributesName
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

constraint derived type

public subroutine constraint_eqn_003(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Global power balance equation for ions args : output structure : residual error; constraint value; residual error in physical units; output string; units string Global power balance equation for ions This is a consistency equation (NBI) #=# physics #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ignite : input integer : switch for ignition assumption:

  • = 0 do not assume plasma ignition;
  • = 1 assume ignited (but include auxiliary power in costs)
ptripv : input real : ion transport power per volume (MW/m3) piepv : input real : ion/electron equilibration power per volume (MW/m3) f_alpha_plasma : input real : fraction of alpha power deposited in plasma alpha_power_ions_density : input real : alpha power per volume to ions (MW/m3) pinjimw : input real : auxiliary injected power to ions (MW) plasma_volume : input real : plasma volume (m3)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Global power balance equation for electrons author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Global power balance equation for electrons This is a consistency equation N.B. This constraint is currently NOT RECOMMENDED for use. #=# physics #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. iradloss : input integer : switch for radiation loss term usage in power balance (see User Guide):

  • = 0 total power lost is scaling power plus radiation (needed for ipedestal=2,3)
  • = 1 total power lost is scaling power plus core radiation only
  • = 2 total power lost is scaling power only, with no additional allowance for radiation. This is not recommended for power plant models.
ignite : input integer : switch for ignition assumption:
  • = 0 do not assume plasma ignition;
  • = 1 assume ignited (but include auxiliary power in costs)
ptrepv : input real : electron transport power per volume (MW/m3) pradpv : input real : total radiation power per volume (MW/m3) pcoreradpv : input real : total core radiation power per volume (MW/m3) f_alpha_plasma : input real : fraction of alpha power deposited in plasma alpha_power_electron_density : input real : alpha power per volume to electrons (MW/m3) piepv : input real : ion/electron equilibration power per volume (MW/m3) pinjemw : input real : auxiliary injected power to electrons (MW) plasma_volume : input real : plasma volume (m3)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_005(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for density upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for density upper limit #=# physics #=#=# fdene, dnelimt and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. i_density_limit : input integer : switch for density limit to enforce (constraint equation 5):

  • = 1 old ASDEX;
  • = 2 Borrass model for ITER (I);
  • = 3 Borrass model for ITER (II);
  • = 4 JET edge radiation;
  • = 5 JET simplified;
  • = 6 Hugill-Murakami Mq limit;
  • = 7 Greenwald limit
fdene : input real : f-value for density limit dene : input real : electron density (/m3) dnelimt : input real : density limit (/m3) dnla : input real : line averaged electron density (m-3)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_006(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for epsilon beta-poloidal upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for epsilon beta-poloidal upper limit #=# physics #=#=# fbeta, epbetmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fbeta : input real : f-value for epsilon beta-poloidal epbetmax : input real : maximum (eps*beta_poloidal) eps : input real : inverse aspect ratio betap : input real : poloidal beta

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_007(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for hot beam ion density args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for hot beam ion density This is a consistency equation (NBI) #=# physics #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ignite : input integer : switch for ignition assumption:

  • = 0 do not assume plasma ignition;
  • = 1 assume ignited (but include auxiliary power in costs)
Obviously, ignite must be zero if current drive is required. If ignite=1, any auxiliary power is assumed to be used only during plasma start-up, and is excluded from all steady-state power balance calculations. beam_density_out : input real : hot beam ion density from calculation (/m3) dnbeam : input real : hot beam ion density, variable (/m3)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_008(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for neutron wall load upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for neutron wall load upper limit #=# physics #=#=# fwalld, walalw and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fwalld : input real : f-value for maximum wall load walalw : input real : allowable wall-load (MW/m2) wallmw : input real : average neutron wall load (MW/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_009(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for fusion power upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for fusion power upper limit #=# physics #=#=# ffuspow, powfmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ffuspow : input real : f-value for maximum fusion power powfmax : input real : maximum fusion power (MW) fusion_power : input real : fusion power (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_010(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author
P B Lloyd, CCFE, Culham Science Centre

Equation for field at TF coil This is a consistency equation (do not use for stellarators) #=# tfcoil #=#=# consistency rmajor | plasma major radius (m) bt | toroidal field on axis (T) rbmax | radius of maximum toroidal field (m) bmaxtf | peak field at toroidal field coil (T)

Read more…

Arguments

Type IntentOptional AttributesName
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

Constraints output

public subroutine constraint_eqn_011(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for radial build author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for radial build (This is a consistency equation.) #=# build #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. rbld : input real : sum of thicknesses to the major radius (m) rmajor : input real : plasma major radius (m)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_012(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for volt-second capability lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for volt-second capability lower limit #=# pfcoil #=#=# fvs, vsstt and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. vsstt : input real : total V-s needed (Wb) vsstt (lower limit) is positive; vstot (available) is negative fvs : input real : f-value for flux-swing (V-s) requirement (STEADY STATE) vstot : input real : total flux swing for pulse (Wb)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_013(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for burn time lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for burn time lower limit #=# times #=#=# ft_burn, t_burn_min and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ft_burn : input real : f-value for minimum burn time t_burn : input real : burn time (s) (calculated if lpulse=1) t_burn_min : input real : minimum burn time (s)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_014(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation to fix number of NBI decay lengths to plasma centre author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation to fix number of NBI decay lengths to plasma centre This is a consistency equation #=# current_drive #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. taubeam : input real : neutral beam e-decay lengths to plasma centre tbeamin : input real : permitted neutral beam e-decay lengths to plasma centre

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_015(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for L-H power threshold limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for L-H power threshold limit #=# physics #=#=# flhthresh, plhthresh and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. flhthresh : input real : f-value for L-H power threshold plhthresh : input real : L-H mode power threshold (MW) pdivt : input real : power to conducted to the divertor region (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_016(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for net electric power lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for net electric power lower limit #=# heat_transport #=#=# fpnetel, pnetelin and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fpnetel : input real : f-value for net electric power pnetelmw : input real : net electric power (MW) pnetelin : input real : required net electric power (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_017(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for radiation power upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for radiation power upper limit #=# physics #=#=# fradpwr, pradmaxpv and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. f_alpha_plasma : input real : fraction of alpha power deposited in plasma pinjmw : input real : total auxiliary injected power (MW) plasma_volume : input real : plasma volume (m3) alpha_power_density_total : input real : alpha power per volume (MW/m3) charged_power_density : input real : non-alpha charged particle fusion power per volume (MW/m3) pohmpv : input real : ohmic heating power per volume (MW/m3) fradpwr : input real : f-value for core radiation power limit pradpv : input real : total radiation power per volume (MW/m3)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_018(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for divertor heat load upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for divertor heat load upper limit #=# divertor #=#=# fhldiv, hldivlim and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fhldiv : input real : f-value for divertor heat load hldivlim : input real : heat load limit (MW/m2) hldiv : input real : divertor heat load (MW/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_019(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for MVA (power) upper limit: resistive TF coil set author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for MVA upper limit #=# tfcoil #=#=# fmva, mvalim and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. tfcpmw : input real : peak resistive TF coil inboard leg power (total) (MW) tflegmw : input real : TF coil outboard leg resistive power (total) (MW) fmva : input real : f-value for maximum MVA mvalim : input real : MVA limit for resistive TF coil set (total) (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_020(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for neutral beam tangency radius upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for neutral beam tangency radius upper limit #=# current_drive #=#=# fportsz, rtanmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fportsz : input real : f-value for neutral beam tangency radius limit rtanmax : input real : maximum tangency radius for centreline of beam (m) rtanbeam : input real : neutral beam centreline tangency radius (m)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_021(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for minor radius lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for minor radius lower limit #=# physics #=#=# frminor, aplasmin and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. frminor : input real : f-value for minor radius limit rminor : input real : plasma minor radius (m) aplasmin : input real : minimum minor radius (m)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_022(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for divertor collision/connection length ratio upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for divertor collision/connection length ratio upper limit #=# divertor #=#=# fdivcol, rlenmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fdivcol : input real : f-value for divertor collisionality rlenmax : input real : maximum value for length ratio (rlclolcn) rlclolcn : input real : ratio of collision length / connection length

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_023(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for conducting shell radius / rminor upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for conducting shell radius / rminor upper limit #=# physics #=#=# fcwr, cwrmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. rminor : input real : plasma minor radius (m) scraplo : input real : gap between plasma and first wall, outboard side (m) fwoth : input real : outboard first wall thickness, initial estimate (m) blnkoth : input real : outboard blanket thickness (m) fcwr : input real : f-value for conducting wall radius / rminor limit cwrmax : input real : maximum ratio of conducting wall distance to plasma minor radius for vertical stability

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_024(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for beta upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for beta upper limit #=# physics #=#=# fbetatry, betalim and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. iculbl : input integer : switch for beta limit scaling (constraint equation 24):

  • = 0 apply limit to total beta;
  • = 1 apply limit to thermal beta;
  • = 2 apply limit to thermal + neutral beam beta
  • = 3 apply limit to toroidal beta
istell : input integer : switch for stellarator option (set via device.dat):
  • = 0 use tokamak model;
  • = 1 use stellarator model
fbetatry : input real : f-value for beta limit betalim : input real : allowable beta beta : input real : total plasma beta (calculated if ipedestal =3) betaft : input real : fast alpha beta component beta_beam : input real : neutral beam beta component bt : input real : toroidal field btot : input real : total field

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_025(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for peak toroidal field upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for peak toroidal field upper limit #=# tfcoil #=#=# fpeakb, bmxlim and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fpeakb : input real : f-value for maximum toroidal field bmxlim : input real : maximum peak toroidal field (T) bmaxtf : input real : mean peak field at TF coil (T)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_026(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for Central Solenoid current density upper limit at EOF author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for Central Solenoid current density upper limit at EOF #=# pfcoil #=#=# fjohc, rjohc and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fjohc : input real : f-value for central solenoid current at end-of-flattop rjohc : input real : allowable central solenoid current density at end of flat-top (A/m2) coheof : input real : central solenoid overall current density at end of flat-top (A/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_027(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for Central Solenoid current density upper limit at BOP author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for Central Solenoid current density upper limit at BOP #=# pfcoil #=#=# fjohc0, rjohc0 and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fjohc0 : input real : f-value for central solenoid current at beginning of pulse rjohc0 : input real : allowable central solenoid current density at beginning of pulse (A/m2) cohbop : input real : central solenoid overall current density at beginning of pulse (A/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_028(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for fusion gain (big Q) lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for fusion gain (big Q) lower limit #=# physics #=#=# fqval, bigqmin and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fqval : input real : pf-value for Q bigq : input real : Fusion gain; P_fusion / (P_injection + P_ohmic) bigqmin : input real : minimum fusion gain Q ignite : input integer : switch for ignition assumption:

  • = 0 do not assume plasma ignition;
  • = 1 assume ignited (but include auxiliary power in costs)
Obviously, ignite must be zero if current drive is required. If ignite=1, any auxiliary power is assumed to be used only during plasma start-up, and is excluded from all steady-state power balance calculations.

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_029(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for inboard major radius: This is a consistency equation author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for inboard major radius: This is a consistency equation #=# build #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. rmajor : input real : plasma major radius (m) (iteration variable 3) rminor : input real : plasma minor radius (m) rinboard : input real : plasma inboard radius (m)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_030(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for injection power upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for injection power upper limit #=# current_drive #=#=# fpinj, pinjalw and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. pinjmw : input real : total auxiliary injected power (MW) fpinj : input real : f-value for injection power pinjalw : input real : Maximum allowable value for injected power (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_031(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil case stress upper limit (SCTF) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil case stress upper limit (SCTF) #=# tfcoil #=#=# fstrcase, sig_tf_case_max and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fstrcase : input real : f-value for TF coil case stress sig_tf_case_max : input real : Allowable maximum shear stress in TF coil case (Tresca criterion) (Pa) sig_tf_case : input real : Constrained stress in TF coil case (Pa)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_032(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil conduit stress upper limit (SCTF) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil conduit stress upper limit (SCTF) #=# tfcoil #=#=# fstrcond, sig_tf_wp_max and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fstrcond : input real : f-value for TF coil conduit stress sig_tf_wp_max : input real : Allowable maximum shear stress in TF coil conduit (Tresca criterion) (Pa) sig_tf_wp : input real : Constrained stress in TF conductor conduit (Pa)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_033(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil operating/critical J upper limit (SCTF) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil operating/critical J upper limit (SCTF) #=# tfcoil #=#=# fiooic, jwdgcrt and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fiooic : input real : f-value for TF coil operating current / critical jwdgcrt : input real : critical current density for winding pack (A/m2) jwptf : input real : winding pack current density (A/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_034(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil dump voltage upper limit (SCTF) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil dump voltage upper limit (SCTF) #=# tfcoil #=#=# fvdump, vdalw and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fvdump : input real : f-value for dump voltage vdalw : input real : max voltage across TF coil during quench (kV) vtfskv : input real : voltage across a TF coil during quench (kV)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_035(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil J_wp/J_prot upper limit (SCTF) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil J_wp/J_prot upper limit (SCTF) #=# tfcoil #=#=# fjprot, jwdgpro and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fjprot : input real : f-value for TF coil winding pack current density jwdgpro : input real : allowable TF coil winding pack current density, for dump temperature rise protection (A/m2) jwptf : input real : winding pack current density (A/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_036(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil s/c temperature margin lower limit (SCTF) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil s/c temperature margin lower limit (SCTF) #=# tfcoil #=#=# ftmargtf, tmargmin_tf and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftmargtf : input real : f-value for TF coil temperature margin tmargtf : input real : TF coil temperature margin (K) tmargmin_tf : input real : minimum allowable temperature margin : TF coils (K)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_037(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for current drive gamma upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for current drive gamma upper limit #=# current_drive #=#=# fgamcd, gammax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fgamcd : input real : f-value for current drive gamma gammax : input real : maximum current drive gamma gamcd : input real : normalised current drive efficiency (1.0e20 A/W-m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_038(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Obsolete author: P B Lloyd, CCFE, Culham Science Centre Obsolete #=# empty #=#=# empty

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_039(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for first wall temperature upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for first wall temperature upper limit #=# fwbs #=#=# ftpeak, tfwmatmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftpeak : input real : f-value for first wall peak temperature tfwmatmax : input real : maximum temperature of first wall material (K) (secondary_cycle>1) tpeak : input real : peak first wall temperature (K)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_040(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for auxiliary power lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for auxiliary power lower limit #=# current_drive #=#=# fauxmn, auxmin and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fauxmn : input real : f-value for minimum auxiliary power pinjmw : input real : total auxiliary injected power (MW) auxmin : input real : minimum auxiliary power (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_041(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for plasma current ramp-up time lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for plasma current ramp-up time lower limit #=# times #=#=# ft_current_ramp_up, t_current_ramp_up_min and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ft_current_ramp_up : input real : f-value for plasma current ramp-up time t_current_ramp_up : input real : plasma current ramp-up time for current initiation (s) t_current_ramp_up_min : input real : minimum plasma current ramp-up time (s)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_042(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for cycle time lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for cycle time lower limit #=# times #=#=# ftcycl, tcycmn and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftcycl : input real : f-value for cycle time t_cycle : input real : full cycle time (s) tcycmn : input real : minimum cycle time (s)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_043(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for average centrepost temperature: This is a consistency equation (TART) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for average centrepost temperature: This is a consistency equation (TART) #=# tfcoil #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. tcpav : input real : average temp of TF coil inboard leg conductor (C)e tcpav2 : input real : centrepost average temperature (C) (for consistency) itart : input integer : switch for spherical tokamak (ST) models:

  • = 0 use conventional aspect ratio models;
  • = 1 use spherical tokamak models

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_044(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for centrepost temperature upper limit (TART) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for centrepost temperature upper limit (TART) #=# tfcoil #=#=# fptemp, ptempalw and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fptemp : input real : f-value for peak centrepost temperature ptempalw : input real : maximum peak centrepost temperature (K) tcpmax : input real : peak centrepost temperature (K) itart : input integer : switch for spherical tokamak (ST) models:

  • = 0 use conventional aspect ratio models;
  • = 1 use spherical tokamak models

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_045(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for edge safety factor lower limit (TART) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for edge safety factor lower limit (TART) #=# tfcoil #=#=# fq, qlim and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fq : input real : f-value for edge safety factor q : safety factor 'near' plasma edge: equal to q95 (unless i_plasma_current = 2 (ST current scaling), in which case q = mean edge safety factor qbar) qlim : input real : lower limit for edge safety factor itart : input integer : switch for spherical tokamak (ST) models:

  • = 0 use conventional aspect ratio models;
  • = 1 use spherical tokamak models

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_046(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for Ip/Irod upper limit (TART) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for Ip/Irod upper limit (TART) #=# tfcoil #=#=# fipir, cratmx and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. eps : input real : inverse aspect ratio fipir : input real : f-value for Ip/Irod upper limit ritfc : input real : total (summed) current in TF coils (A) plasma_current : input real : plasma current (A) itart : input integer : switch for spherical tokamak (ST) models:

  • = 0 use conventional aspect ratio models;
  • = 1 use spherical tokamak models

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_047(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Issue #508 Remove RFP option: Relevant only to reversed field pinch devices author: P B Lloyd, CCFE, Culham Science Centre Issue #508 Remove RFP option: Relevant only to reversed field pinch devices Equation for TF coil toroidal thickness upper limit #=# empty #=#=# empty

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_048(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for poloidal beta upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for poloidal beta upper limit #=# physics #=#=# fbetap, betpmx and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fbetap : input real : rf-value for poloidal beta betpmx : input real : maximum poloidal beta betap : input real : poloidal beta

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_049(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Issue #508 Remove IFE option: Equation for repetition rate upper limit author: P B Lloyd, CCFE, Culham Science Centre Issue #508 Remove IFE option: Equation for repetition rate upper limit #=# empty #=#=# empty

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_050(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

IFE option: Equation for repetition rate upper limit author: P B Lloyd, CCFE, Culham Science Centre author: S I Muldrew, CCFE, Culham Science Centre IFE option: Equation for repetition rate upper limit #=# IFE #=#=# frrmax, rrmax

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_051(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation to enforce startup flux = available startup flux author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation to enforce startup flux = available startup flux #=# pfcoil #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. vsres : input real : resistive losses in startup V-s (Wb) vsind : input real : internal and external plasma inductance V-s (Wb)) vssu : input real : total flux swing for startup (Wb)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_052(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for tritium breeding ratio lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for tritium breeding ratio lower limit #=# fwbs #=#=# ftbr, tbrmin ? TODO should this only be for certain blanket models ? and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftbr : input real : f-value for minimum tritium breeding ratio tbr : input real : tritium breeding ratio (iblanket=2,3 (KIT HCPB/HCLL)) tbrmin : input real : minimum tritium breeding ratio (If iblanket=1, tbrmin=minimum 5-year time-averaged tritium breeding ratio)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_053(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for fast neutron fluence on TF coil upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for fast neutron fluence on TF coil upper limit #=# fwbs #=#=# fflutf, nflutfmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fflutf : input real : f-value for maximum TF coil nuclear heating nflutfmax : input real : max fast neutron fluence on TF coil (n/m2) nflutf : input real : peak fast neutron fluence on TF coil superconductor (n/m2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_054(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for peak TF coil nuclear heating upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for peak TF coil nuclear heating upper limit #=# fwbs #=#=# fptfnuc, ptfnucmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fptfnuc : input real : f-value for maximum TF coil nuclear heating ptfnucmax : input real : maximum nuclear heating in TF coil (MW/m3) ptfnucpm3 : input real : nuclear heating in the TF coil (MW/m3) (blktmodel>0)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_055(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

vvhemax is no longer calculated in PROCESS and this constraint is disabled

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_056(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for power through separatrix / major radius upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for power through separatrix / major radius upper limit #=# current_drive #=#=# fnbshinef, nbshinefmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fpsepr : input real : f-value for maximum Psep/R limit pseprmax : input real : maximum ratio of power crossing the separatrix to plasma major radius (Psep/R) (MW/m) pdivt : input real : power to be conducted to the divertor region (MW) rmajor : input real : plasma major radius (m)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_057(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Obsolete author: P B Lloyd, CCFE, Culham Science Centre Obsolete #=# empty #=#=# empty

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_058(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Obsolete author: P B Lloyd, CCFE, Culham Science Centre Obsolete #=# empty #=#=# empty

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_059(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for neutral beam shine-through fraction upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for neutral beam shine-through fraction upper limit #=# current_drive #=#=# fnbshinef, nbshinefmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fnbshinef : input real : f-value for maximum neutral beam shine-through fraction nbshinefmax : input real : maximum neutral beam shine-through fraction nbshinef : input real : neutral beam shine-through fraction

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_060(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for Central Solenoid s/c temperature margin lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for Central Solenoid s/c temperature margin lower limit #=# tfcoil #=#=# ftmargoh, tmargmin_cs and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftmargoh : input real : f-value for central solenoid temperature margin tmargoh : input real : Central solenoid temperature margin (K) tmargmin_cs : input real : Minimum allowable temperature margin : CS (K)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_061(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for availability limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for availability limit #=# cost #=#=# favail, avail_min and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. favail : input real : F-value for minimum availability cfactr : input real : Total plant availability fraction avail_min : input real : Minimum availability

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Lower limit on taup/taueff the ratio of alpha particle to energy confinement times author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Lower limit on taup/taueff the ratio of alpha particle to energy confinement times #=# physics #=#=# ftaulimit, taulimit and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftaulimit : input real : f-value for lower limit on taup/taueff the ratio of alpha particle to energy confinement taup : input real : alpha particle confinement time (s) taueff : input real : global thermal energy confinement time (sec) taulimit : input real : Lower limit on taup/taueff the ratio of alpha particle to energy confinement times

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_063(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Upper limit on niterpump (vacuum_model = simple) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Upper limit on niterpump (vacuum_model = simple) #=# vacuum #=#=# fniterpump, tfno and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fniterpump : input real : f-value for constraint that number of pumps < tfno tfno : input real : number of TF coils (default = 50 for stellarators) niterpump : input real : number of high vacuum pumps (real number), each with the throughput

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_064(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Upper limit on Zeff author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Upper limit on Zeff #=# physics #=#=# fzeffmax, zeffmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fzeffmax : input real : f-value for maximum zeff zeffmax : input real : maximum value for Zeff zeff : input real : plasma effective charge

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_065(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Limit the stress of the vacuum vessel that occurs when the TF coil quenches. author: Timothy Nunn, UKAEA args : output structure : residual error; constraint value; residual error in physical units; output string; units string Logic change during pre-factoring: err, symbol, units will be assigned only if present. fmaxvvstress : input real : f-value for constraint on maximum VV stress max_vv_stress : input real : Maximum permitted stress of the VV (Pa) vv_stress_quench : input real : Stress of the VV (Pa)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_066(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Limit on rate of change of energy in poloidal field author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Limit on rate of change of energy in poloidal field #=# pfcoil #=#=# fpoloidalpower, maxpoloidalpower and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fpoloidalpower : input real : f-value for constraint on rate of change of energy in poloidal field maxpoloidalpower : input real : Maximum permitted absolute rate of change of stored energy in poloidal field (MW) peakpoloidalpower : input real : Peak absolute rate of change of stored energy in poloidal field (MW) (11/01/16)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_067(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Simple upper limit on radiation wall load author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Simple upper limit on radiation wall load #=# physics #=#=# fradwall, maxradwallload and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fradwall : input real : f-value for upper limit on radiation wall load maxradwallload : input real : Maximum permitted radiation wall load (MW/m^2) peakradwallload : input real : Peak radiation wall load (MW/m^2)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_068(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

New Psep scaling (PsepB/qAR) author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string New Psep scaling (PsepB/qAR) Issue #464 #=# physics #=#=# fpsepbqar, psepbqarmax and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fpsepbqar : input real : f-value for upper limit on psepbqar, maximum PsepBt/qAR limit psepbqarmax : input real : maximum permitted value of ratio of PsepBt/qAR (MWT/m) pdivt : input real : Power to conducted to the divertor region (MW) bt : input real : toroidal field on axis (T) (iteration variable 2) q95 : input real : safety factor q at 95% flux surface aspect : input real : aspect ratio (iteration variable 1) rmajor : input real : plasma major radius (m) (iteration variable 3)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_069(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Ensure separatrix power is less than value from Kallenbach divertor author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Ensure separatrix power is less than value from Kallenbach divertor #=# divertor_kallenbach #=#=# consistency, psep_kallenbach fpsep has been removed from the equation. and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. psep_kallenbach : input real : Power conducted through the separatrix, as calculated by the divertor model [W] pdivt : input real : power to conducted to the divertor region (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_070(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Separatrix density consistency author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Separatrix density consistency #=# divertor_kallenbach #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. teomp : input real : Separatrix temperature calculated by the Kallenbach divertor model [eV] tesep : input real : Electron temperature at separatrix [keV]

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_071(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Separatrix density consistency author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Separatrix density consistency #=# divertor_kallenbach #=#=# consistency and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. neomp : input real : Mean SOL density at OMP calculated by the Kallenbach divertor model [m-3] nesep : input real : electron density at separatrix [m-3] (ipedestal=1,2, calculated if 3) neratio : input real : Ratio of mean SOL density at OMP to separatrix density at OMP (iteration variable 121)

Arguments

Type IntentOptional AttributesName
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

public 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

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_073(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Ensure separatrix power is greater than the L-H power + auxiliary power author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Ensure separatrix power is greater than the L-H power + auxiliary power #=# physics #=#=# fplhsep, pdivt and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fplhsep : input real : F-value for Psep >= Plh + Paux : for consistency of two values of separatrix power plhthresh : input real : L-H mode power threshold (MW) pdivt : input real : power to be conducted to the divertor region (MW) pinjmw : inout real : total auxiliary injected power (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_074(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Ensure TF coil quench temperature < tmax_croco ONLY used for croco HTS coil author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Ensure TF coil quench temperature < tmax_croco ONLY used for croco HTS coil #=# physics #=#=# fcqt, tmax_croco and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fcqt : input real : f-value: TF coil quench temparature remains below tmax_croco croco_quench_temperature : input real : CroCo strand: Actual temp reached during a quench (K) tmax_croco : input real : CroCo strand: maximum permitted temp during a quench (K)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_075(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Ensure that TF coil current / copper area < Maximum value author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Ensure that TF coil current / copper area < Maximum value ONLY used for croco HTS coil #=# physics #=#=# f_coppera_m2, copperA_m2_max and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. copperA_m2 : input real : TF coil current / copper area (A/m2) copperA_m2_max : input real : Maximum TF coil current / copper area (A/m2) f_coppera_m2 : input real : f-value for TF coil current / copper area < copperA_m2_max

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_076(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Eich critical separatrix density model: Added for issue 558 author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Eich critical separatrix density model Added for issue 558 with ref to http://iopscience.iop.org/article/10.1088/1741-4326/aaa340/pdf and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. alpha_crit : output real : critical ballooning parameter value nesep_crit : output real : critical electron density at separatrix [m-3] kappa : input real : plasma separatrix elongation (calculated if ishape = 1-5, 7 or 9) triang : input real : plasma separatrix triangularity (calculated if ishape = 1, 3-5 or 7) aspect : input real : aspect ratio (iteration variable 1) pdivt : input real : power to conducted to the divertor region (MW) dlimit(7) : input real array : density limit (/m3) as calculated using various models fnesep : input real : f-value for Eich critical separatrix density

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_077(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for maximum TF current per turn upper limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for maximum TF current per turn upper limit #=# tfcoil #=#=# fcpttf, cpttf, cpttf_max and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fcpttf : input : f-value for TF coil current per turn cpttf_max : input : allowable TF coil current per turn [A/turn] cpttf : input : TF coil current per turn [A/turn]

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_078(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for Reinke criterion, divertor impurity fraction lower limit author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for Reinke criterion, divertor impurity fraction lower limit #=# divertor #=#=# freinke, fzactual, fzmin and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present; and con will be printed out only if present. Thesw conditions were missing. freinke : input : f-value for Reinke criterion (itv 147) fzmin : input : minimum impurity fraction from Reinke model fzactual : input : actual impurity fraction

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_079(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for maximum CS field author: P B Lloyd, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for maximum CS field #=# pfcoil #=#=# fbmaxcs, bmaxoh, bmaxoh0, bmaxcs_lim and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fbmaxcs : input : F-value for CS mmax field (cons. 79, itvar 149) bmaxcs_lim : input : Central solenoid max field limit [T] bmaxoh0 : input : maximum field in central solenoid at beginning of pulse (T) bmaxoh : input real : maximum field in central solenoid at end of flat-top (EoF) (T) (Note: original code has "bmaxoh/bmaxoh0 | peak CS field [T]".)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_080(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for pdivt lower limit author: J Morris, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Lower limit pdivt #=# physics #=#=# fpdivlim, pdivt Logic change during pre-factoring: err, symbol, units will be assigned only if present. fpdivlim : input : F-value for lower limit on pdivt (cons. 80, itvar 153) pdivtlim : input : Minimum power crossing separatrix pdivt [MW] pdivt : input : Power crossing separatrix [MW]

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_081(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Make sure that the central density is larger that the pedestal one author: S Kahn, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string Lower limit ne0 > neped !#=# physics !#=#=# ne0, neped Logic change during pre-factoring: err, symbol, units will be assigned only if present. fne0 : input : F-value for constraint on ne0 > neped ne0 : input : Central electron density [m-3] neped : input : Electron density at pedestal [m-3]

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_082(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for toroidal consistency of stellarator build author: J Lion, IPP Greifswald args : output structure : residual error; constraint value; residual error in physical units; output string; units string toroidalgap > tftort #=# tfcoil #=#=# tftort, ftoroidalgap Logic change during pre-factoring: err, symbol, units will be assigned only if present. ftoroidalgap : input real : f-value for constraint toroidalgap > tftort toroidalgap : input real : minimal gap between two stellarator coils tftort : input real : total toroidal width of a tf coil

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_083(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for radial consistency of stellarator build author: J Lion, IPP Greifswald args : output structure : residual error; constraint value; residual error in physical units; output string; units string available_radial_space > required_radial_space #=# build #=#=# required_radial_space, f_avspace Logic change during pre-factoring: err, symbol, units will be assigned only if present. f_avspace : input real : f-value for constraint available_radial_space > required_radial_space available_radial_space : input real : avaible space in radial direction as given by each s.-configuration required_radial_space : input real : required space in radial direction

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_084(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for the lower limit of beta author: J Lion, IPP Greifswald args : output structure : residual error; constraint value; residual error in physical units; output string; units string (beta-betaft) > betalim_lower #=# physics #=#=# betaft, beta, fbetatry_lower Logic change during pre-factoring: err, symbol, units will be assigned only if present. fbetatry_lower : input real : f-value for constraint beta-betaft > betalim_lower betalim_lower : input real : Lower limit for beta beta : input real : plasma beta betaft : input real : Alpha particle beta

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_085(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author : S Kahn args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation constraining the centerpost (CP) lifetime Depending on the chosen option : i_cp_lifetime - 0 : The CP full power year lifelime is set by the user (cplife_input) - 1 : The CP lifelime is equal to the divertor one - 2 : The CP lifetime is equal to the breeding blankets one - 3 : The CP lifetime is equal to the plant one #=# availability #=#=# consistency Logic change during pre-factoring: err, symbol, units will be assigned only if present. cplife : input real : calculated CP full power year lifetime (years) bktlife : input real : calculated first wall/blanket power year lifetime (years) divlife : input real : calculated divertor power year lifetime (years) i_cp_lifetime : input integer : switch chosing which plant element the CP the CP lifetime must equate

Arguments

Type IntentOptional AttributesName
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

Constraints output

public subroutine constraint_eqn_086(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author : S Kahn args : output structure : residual error; constraint value; residual error in physical units; Equation constraining the turn edge length in the TF winding pack t_turn_tf : input real : TF coil turn edge length including turn insulation [m] f_t_turn_tf : input real : f-value for TF turn edge length constraint t_turn_tf_max : input real : TF turn edge length including turn insulation upper limit [m]

Arguments

Type IntentOptional AttributesName
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

Constraints output

public subroutine constraint_eqn_087(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author
S. Kahn, CCFE, Culham Science Centre

args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil cryogenic power upper limit crypmw : input real : cryogenic plant power (MW) f_crypmw : input real : f-value for maximum cryogenic plant power crypmw_max : input real : Maximum cryogenic plant power (MW)

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_088(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Equation for TF coil vertical strain upper limit (absolute value) author: CPS Swanson, PPPL, USA args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for TF coil vertical strain upper limit (absolute value) #=# tfcoil #=#=# fstr_wp, str_wp_max and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. fstr_wp : input real : f-value for TF coil strain str_wp_max : input real : Allowable maximum TF coil vertical strain str_wp : input real : Constrained TF coil vertical strain

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_089(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Ensure that the Central Solenoid [OH] coil current / copper area < Maximum value author: G Turkington, CCFE, Culham Science Centre args : output structure : residual error; constraint value; residual error in physical units; output string; units string #=# physics #=#=# f_copperaoh_m2, copperaoh_m2_max and hence also optional here. Logic change during pre-factoring: err, symbol, units will be assigned only if present. copperaoh_m2 : input real : CS coil current at EOF / copper area [A/m2] copperaoh_m2_max : input real : maximum coil current / copper area [A/m2] f_copperaoh_m2 : input real : f-value for CS coil current / copper area

Arguments

Type IntentOptional AttributesName
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

public subroutine constraint_eqn_090(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units)

Author
A. Pearce, G Turkington CCFE, Culham Science Centre

args : output structure : residual error; constraint value; residual error in physical units; output string; units string Equation for minimum CS coil stress load cycles fncycle : input real : f-value for constraint n_cycle > n_cycle_min n_cycle : input real : Allowable number of cycles for CS n_cycle_min : input real : Minimum required cycles for CS

Arguments

Type IntentOptional AttributesName
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

Switch to relay the calculated fw/blanket lifetime cycles as the minimum required CS stress cycles. bkt_life_cycle = 1 turns on the relay. Otherwise the models run independently.

public 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

Arguments

Type IntentOptional AttributesName
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