sNb3Sn Function

public function sNb3Sn(e, Ca1, Ca2, e0a)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: e
real(kind=dp), intent(in) :: Ca1
real(kind=dp), intent(in) :: Ca2
real(kind=dp), intent(in) :: e0a

Return Value real(kind=dp)


Called by

proc~~snb3sn~~CalledByGraph proc~snb3sn sNb3Sn proc~critical_current_density_nb3sn critical_current_density_nb3sn proc~critical_current_density_nb3sn->proc~snb3sn proc~critical_field_nb3sn critical_field_nb3sn proc~critical_field_nb3sn->proc~snb3sn proc~critical_temperature_nb3sn critical_temperature_nb3sn proc~critical_temperature_nb3sn->proc~snb3sn proc~current_sharing_temperature_nb3sn current_sharing_temperature_nb3sn proc~current_sharing_temperature_nb3sn->proc~critical_current_density_nb3sn

Source Code

  real(dp) function sNb3Sn(e,Ca1,Ca2,e0a)
      real(dp), intent(in) :: e,Ca1,Ca2,e0a
      real(dp) :: esh,s,esh2,e0a2,ed,ed2

      esh  = ca2 * e0a / sqrt(ca1*ca1+ca2*ca2)
      ed   = e-esh
      esh2 = esh*esh
      e0a2 = e0a*e0a
      ed2  = ed*ed

      s = 1.0_dp+(ca1*(sqrt(esh2+e0a2)-sqrt(ed2+e0a2))-Ca2*e)/(1.0_dp-Ca1*e0a)
      if(s<0.0) s = 0.0_dp
      sNb3Sn = s
      return
  end function sNb3Sn