C ###################################################################### C # C # NBTI PROPERTIES PACKAGE C # ----------------------- C # Contains functions for the calculation of the critical temeprature, C # critical current and thermal properties of NbTi. C # C ###################################################################### c ###################################################################### block data NbTiConstants c ###################################################################### c # c # Niobium-Titanium (Nb-47.5%Ti) c # c # The constants are based on a fit of the LHC Nb-Ti wire adjusted to c # yield Jc=3000 A/mm**2 at 4.2 K and 5 T c # real Tc0NbTi,Bc20NbTi,C0NbTi real pNbTi,qNbTi,nNbTi,nuNbTi c * common /NbTiData/ Tc0NbTi,Bc20NbTi,C0NbTi, & pNbTi,qNbTi,nNbTi,nuNbTi c * data Tc0NbTi / 9.5/ data Bc20NbTi/14.5/ data C0NbTi / 7.86e10/ data pNbTi / 0.6/ data qNbTi / 1.0/ data nNbTi / 2.0/ data nuNbTi / 1.7/ c * end c ###################################################################### real function dNbTi(T) c ###################################################################### c # c # Density of Nb-47%Ti c # c # Range: 0 <= T <= inf K c # c # References c # ---------- c # Y. Iwasa, Case Studies in Superconducting Magnets: Design and c # Operational Issues, Springer c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # T x absolute temperature K c # dNb3Sn x density Kg/m**3 c # c # c # Author : L.Bottura at CryoSoft c # Version: 1.1 November 2013 c # c ###################################################################### implicit none c * external variables real T c * fit variables c * local variables c * dNbTi = 6530.0 c * return end c ###################################################################### real function cNbTi(T,B, & Tc0m,Bc20m,nu) c ###################################################################### c # c # Specific Heat of NbTi in J/Kg K as a function of temperature and c # field for 1 <= T <= 500 K. The normal state specific heat is based c # on a fit of data generated from the low-T fit of Arp (0...20 K) and c # matched to a Debye function evaluated from 20 K (Debye T = 222 K). c # The superconducting specific heat is evaluated from the fit of the c # specific heat jump and a simple power dependence. The jump has been c # derived from the data of Arp, quoting unublished work of Dresner. c # note that the data reported in Arp below contains a typo in the field c # dependence of the fit coefficients of the superconducting Cp (at 4 T) c # No allowance is made for the mixed state (Tcs < T < Tc). c # c # Range: 1 <= T <= 500 K c # c # References c # ---------- c # V.D. Arp, Stability and Thermal Quenches in Force-Cooled Supercon- c # ducting Cables, Superconducting MHD Magnet Design Conference, MIT, c # pp 142-157, 1980. c # c # G.K.White, S. B. Woods, Can.J.Phys, 35, 892-900, 1957 c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # T x temperature K c # B x magnetic field T c # Tc0m x critical temperature (b=0,e=0) K c # Bc20m x upper critical field (t=0,e=0) T c # nu x fitting constant for h(t) - c # cNbTi x specific heat J/kg K c # c # Other functions called: TcNbTi,BcNbTi c # c # Author : L.Bottura at CryoSoft c # Version: 4.1 November 2013 c # c ###################################################################### implicit none c * real T,B c * real Tc0m,Bc20m real nu c * real TcNbTi,BcNbTi c * fit variables real Tmin,Tmax real AA, BB, CC, DD, a, bcoef, c, d, na, nb, nc, nd real dCdTc data AA / 83.31534936 / , BB / 8.092610037 / & CC / 17432.63 / , DD / -17064.55061 / data a / 1793.124266 / , bcoef / 1.893545785 / & c / 29.8873239 / , d / 23.30205048 / data na / 0.830308715 / , nb / 8.615210509 / & nc / 6.585468459 / , nd / 8.596154557 / data dCdTc / 1.69 / data Tmin/ 1.0/, Tmax / 500.0/ save c * local variables real Cn,Cs,dC,Tc,Ctot real TT c * TT=T TT=min(TT,Tmax) TT=max(TT,Tmin) c * normal state Cn = AA*TT**na/(a+TT)**na + BB*TT**nb/(bcoef+TT)**nb + & CC*TT**nc/(c+TT)**nc + DD*TT**nd/(d+TT)**nd c * critical temperature Tc = TcNbTi(B,Tc0m,Bc20m,nu) if(TT.le.Tc) then c * superconducting state, compute jump in specific heat dC = dCdTc*(Tc/Tc0m) c * maximum value of superconducting specific heat Cs = Cn+dC c * actual specific heat Ctot = Cs * (TT/Tc)**3 else c * normal state Ctot = Cn endif c * final value cNbTi = Ctot c * return end c ###################################################################### real function kNbTi(T) c ###################################################################### c # c # Thermal conductivity of NbTi as a function of temperature T, for c # 1 <= T <= 400 K. NOTE: the conductivity is assumed to be continuous at c # the superconducting to normal state transition, mainly because of c # lack of directly measured data. c # c # Range: 1 <= T <= 400 K c # c # References c # ---------- c # P. Bauer, H. Rajainmaki, E. Salpietro, EFDA Material Data Compilation c # for Superconductor Simulation, EFDA CSU, Garching, 18 April 2007 c # c # H. Brechna, “Superconducting Magnet Systems”, Springer 1973, p. 424 c # c # C. Schmidt, Journ. Appl. Physics 46, 1372, 1975 c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # T x absolute temperature K c # kNbTi x thermal conductivity W/m K c # c # Author : L.Bottura at Cryosoft c # Version: 4.0 November 2013 c # c ###################################################################### implicit none real T c * fit variables real Tmin,Tmax real k0,k1,k2,km real Tm real alpha,beta,n,m data k0 / 0.020144234 / , k1 / 0.0 /, & k2 / 3.624001366 / , km / 1.25987251 / data Tm / 228.5582031 / data alpha / 1.014972523 / , beta / 0.132254649 /, & n / 1.364434093 / , m / 1.457183987 / data Tmin/ 1.0/, Tmax / 400.0/ save c * local variables real TT c * TT=T TT=min(TT,Tmax) TT=max(TT,Tmin) c * kNbTi = k0 + k1*TT/Tm + k2*(TT/Tm)**2 + & km*3/((alpha*(TT/Tm)**n) + beta/(TT/Tm)**m) c * return end c ###################################################################### real function rNbTi(T) c ###################################################################### c # c # Resistivity of NbTi in normal state c # c # Range: 10 <= T <= 1200 K c # c # References c # ---------- c # c # Data compiled by P. Bauer, H. Rajainmaki, E. Salpietro, EFDA c # Material Data Compilation for Superconductor Simulation, EFDA CSU, c # Garching, 18 April 2007 c # c # J.T. Milck, Electrical Resistivity Data and Bibliography on Titanium c # and Titanium Alloys, NTIS AD-750 579 c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # T x absolute temperature K c # rNb3Sn x resistivity Ohm m c # c # Author : L.Bottura at Cryosoft c # Version: 1.0 November 2013 c # c ###################################################################### implicit none c * external variables real T c * fit variables real a,b real Tmin,Tmax data a / 5.5668e-7 / data b / 5.58e-10 / data Tmin/ 10.0 /, Tmax / 1200.0 / c * local variables real TT c * TT=T TT=min(TT,Tmax) TT=max(TT,Tmin) c * rNbTi = a + b*TT c * return end c ###################################################################### real function TcNbTi(B, & Tc0m,Bc20m,nu) c ###################################################################### c # c # Critical temperature, in K, for Nb-Ti as a function of applied field c # c # References c # ---------- c # M.S.Lubell, Scaling formulas for critical current and critical field c # for commercial NbTi, IEEE Trans. Mag. ,19, (1983). c # c # L. Bottura, A Practical Fit for the Critical Surface of NbTi, c # IEEE Trans. Appl. Sup., 10(1), 1054-1057, 2000 c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # B x magnetic field T c # Tc0m x upper critical temperature (B=0) K c # Bc20m x upper critical field (T=0) T c # nu x fitting constant for Tc(B) - c # TcNbTi x critical temperature K c # c # Other functions called: NONE c # c # Author : L.Bottura at CryoSoft c # Version: 4.0 November 2013 c # c ###################################################################### implicit none c * real B c * real Tc0m,Bc20m real nu c * real Blim,bb0,tt,Tc real Blow parameter(Blow=1.0e-3) c * set the lower limit for the field Blim=amax1(abs(B),Blow) c * compute the reduced field bb0 = Blim/Bc20m c * compute the reduced critical temperature if(bb0.gt.0.0 .and. bb0.lt.1.0) then tt = (1-bb0)**(1.0/nu) elseif(bb0.eq.0.0) then tt = 1.0 elseif(bb0.gt.1.0) then tt = 0.0 endif c * compute Tc Tc = Tc0m * tt c * assign the value TcNbTi = Tc c * return end c ###################################################################### real function BcNbTi(T, & Tc0m,Bc20m,nu) c ###################################################################### c # c # Upper critical field, in T, for Nb-Ti as a function of field. c # c # References c # ---------- c # M.S.Lubell, Scaling formulas for critical current and critical field c # for commercial NbTi, IEEE Trans. Mag. ,19, (1983). c # c # L. Bottura, A Practical Fit for the Critical Surface of NbTi, c # IEEE Trans. Appl. Sup., 10(1), 1054-1057, 2000 c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # T x magnetic field K c # Tc0m x upper critical temperature (B=0) K c # Bc20m x upper critical field (T=0) T c # nu x fitting constant for Bc(T) - c # BcNbTi x critical field T c # c # Other functions called: NONE c # c # Author : L.Bottura at CryoSoft c # Version: 4.0 November 2013 c # c ###################################################################### implicit none c * real T c * real Tc0m,Bc20m real nu c * real Tlim,tt,bb,Bc real Tlow parameter(Tlow=0.0) c * set the lower limit for the field Tlim=amax1(T,Tlow) c * compute the reduced temperature tt = Tlim/Tc0m c * compute the reduced critical field if(tt.gt.0.0 .and. tt.lt.1.0) then bb = 1-tt**nu elseif(tt.le.0.0) then bb = 1.0 elseif(tt.gt.1.0) then bb = 0.0 endif c * compute Bc Bc = Bc20m * bb c * assign the value BcNbTi = Bc c * return end c ###################################################################### real function JcNbTi(T,B, & Tc0m,Bc20m,C0,p,q,n,nu) c ###################################################################### c # c # Critical (non-copper) current density, in A/m**2, for Nb-Ti as a c # function of temperature and field. The Nb-Ti material is c # mainly characterized by the parameters Tc0m and Bc20m. The constant c # C0 determines the overall scaling of the Jc curve. The additional c # constants are used for the details of the scaling function. c # c # References c # ---------- c # M.A. Green, Calculating the Jc, B, T Surface for Niobium Titanium c # Using a Reduced State Model, IEEE Trans. Mag., 25, 2, (1989). c # c # G. Morgan, A Comparison of Two Analytic Forms for the Jc(B,T) c # surface, SSC Magnet Division Notes, 310-1 (SSC-MD-218), (1989) c # c # L. Bottura, A Practical Fit for the Critical Surface of NbTi, c # IEEE Trans. Appl. Sup., 10(1), 1054-1057, 2000 c # c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # T x absolute temperature K c # B x magnetic field T c # Tc0m x critical temperature (b=0) K c # Bc20m x upper critical field (t=0) T c # C0 x normalization constant A T/m**2 c # p x fitting constant for fp(b) - c # q x fitting constant for fp(b) - c # n x fitting constant for h(t) - c # nu x fitting constant for Bc(T) - c # JcNbTi x critical current density A/m**2 c # c # Other functions called: TcNb3Sn,BcNb3Sn,sNb3Sn,hNb3Sn,fpNb3Sn c # c # Author : L.Bottura at CryoSoft c # Version: 1.0 November 2013 c # c ###################################################################### implicit none c * real T,B c * real Tc0m,Bc20m,C0 real p,q,n,nu c * real Blim,Tlim,Tc,tt,Bc,bb,h,fp,Jc real Blow parameter(Blow=1.0e-3) real Tlow parameter(Tlow=0.0) c * real hNbTi,fpNbTi,TcNbTi,BcNbTi c * set the lower limit for the field Blim=amax1(abs(B),Blow) c * set the lower limit for the temperature Tlim=amax1(T,Tlow) c * compute the reduced temperature tt = Tlim/Tc0m c * trap case of temperature in excess of the critical temperature if(tt.gt.1.0) then JcNbTi = 0.0 return endif c * compute the critical field at the temperature Bc = BcNbTi(T,Tc0m,Bc20m,nu) c * compute the reduced field bb = Blim/Bc c * trap case of field in excess of the critical field if(bb.gt.1.0) then JcNbTi = 0.0 return endif c * compute h(t) h = hNbTi(tt,n,nu) c * compute fp(b) fp = fpNbTi(bb,p,q) c * compute Jc Jc = C0/Blim * h * fp c * assign the value JcNbTi = Jc c * return end c ###################################################################### real function TcsNbTi(B,Jop, & Tc0m,Bc20m,C0,p,q,n,nu) c ###################################################################### C # C # Current sharing temperature, in K, for Nb-Ti as a function of field C # and operating current density. and strain. The Nb-Ti c # material is mainly characterized by the parameters Tc0m and Bc20m. c # The constant C0 determines the overall scaling of the Jc curve. The c # additional constants are used for the details of the scaling c # function. This function is the inverse of the Jc function JcNb3Sn C # C # variable I/O meaning units C # -------------------------------------------------------------------- C # B x magnetic field T C # Jop x operating current density A/m**2 c # Tc0m x critical temperature (b=0,e=0) K c # Bc20m x upper critical field (t=0,e=0) T c # C0 x normalization constant A T/m**2 c # p x fitting constant for fp(b) - c # q x fitting constant for fp(b) - c # n x fitting constant for h(t) - c # nu x fitting constant for Bc(T) - c # TcsNbTi x current sharing temperature K c # c # Other functions called: TcNbTi,JcNbTi c # c # Author : CryoSoft c # Version: 0.0 26.3.2010 c # c ###################################################################### implicit none c * real B,Jop c * real Tc0m,Bc20m,C0 real p,q,n,nu c * real T,Tc,Jc,tt,ttlow,ttup real error,tolerance data tolerance/1.0e-5/ logical converged c * real TcNbTi,BcNbTi,JcNbTi c * check that the field is below the upper critical value if(B.ge.Bc20m) then TcsNbTi=0.0 return endif c * compute critical current density at applied field and zero c * temperature T = 0.0 Jc = JcNbTi(T,B,Tc0m,Bc20m,C0,p,q,n,nu) c * check that Jop is below the maximum possible Jc if(Jop.ge.Jc) then TcsNbTi=0.0 return endif c * compute the maximum possible value Tcs=Tc(B) Tc = TcNbTi(B,Tc0m,Bc20m,nu) c * trap for the jop=0 case to avoid iteration problems if(Jop.le.0.0) then TcsNbTi = Tc return endif c * upper and lower limits for the iterative root search ttup =Tc/Tc0m ttlow=0.0 c * find the normalised temperature tcs/tc0 by iteration converged=.false. do while(.not.converged) c * root search by straight bisection (most stable way) tt=0.5*(ttlow+ttup) c ---------------------------------------------------------------------- c write(6,*) 'TcsNb3Sn: tt',tt c ---------------------------------------------------------------------- c * compute critical current T = tt * Tc0m Jc = JcNbTi(T,B,Tc0m,Bc20m,C0,p,q,n,nu) c * decision process if(Jc.gt.Jop) then ttlow = tt elseif(Jc.le.Jop) then ttup = tt elseif(Jc.eq.Jop) then ttup = tt ttlow = tt endif c * check convergence error = abs(ttup-ttlow) converged = error.le.tolerance enddo c * convert normalised to absolute temperature TcsNbTi = tt*Tc0m c * return end c ###################################################################### real function fpNbTi(b,p,q) c ###################################################################### c # c # Function fp(b) for NbTi, as from the ITER-2008 parameterization c # c # References c # ---------- c # L. Bottura, A Practical Fit for the Critical Surface of NbTi, c # IEEE Trans. Appl. Sup., 10(1), 1054-1057, 2000 c # c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # b x reduced field - c # p x fitting constant - c # q x fitting constant - c # fpNbTi x function fp(b) - c # c # Other functions called: NONE c # c # Author : CryoSoft c # Version: 0.0 26.3.2010 c # c ###################################################################### implicit none c * real b real p,q c * real fp c * compute fp(b) if(b.gt.0.0 .and. b.lt.1.0) then fp = b**p * (1-b)**q else fp = 0.0 endif c * assign the value fpNbTi = fp c * return end c ###################################################################### real function hNbTi(t,n,nu) c ###################################################################### c # c # Function h(t) for Nb-Ti, as from the ITER-2008 parameterization c # c # References c # ---------- c # L. Bottura, A Practical Fit for the Critical Surface of NbTi, c # IEEE Trans. Appl. Sup., 10(1), 1054-1057, 2000 c # c # c # variable I/O meaning units c # -------------------------------------------------------------------- c # t x reduced temperature - c # n x fitting constant - c # nu x fitting constant - c # hNbTi x function h(t) - c # c # Other functions called: NONE c # c # Author : CryoSoft c # Version: 0.0 26.3.2010 c # c ###################################################################### implicit none c * real t real n,nu c * real h c * compute h(t) if(t.gt.0.0 .and. t.lt.1.0) then h = (1.0-t**nu)**n elseif(t.le.0.0) then h = 1.0 elseif(t.ge.1.0) then h = 0.0 endif c * assign the value hNbTi = h c * return end