Created 3 years ago
#! /usr/bin/env python3
import numpy as np
#from sincfit import *
from scipy.optimize import root
import matplotlib.pyplot as plt
import matplotlib as mpl
def yalpha(alpha):
if alpha==0:
return 1
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
toint=1-1/sqas*np.arctan(sqas)
integ=np.trapz(toint,svals)
return np.real(np.sqrt(1+alpha)-integ/np.pi)
def yaprime(alpha):
dalpha = 1e-6
if np.abs(alpha) < dalpha:
return 1/6
return np.real(0.5*(yalpha(alpha+dalpha)-yalpha(alpha-dalpha))/dalpha)
def yadiff(alpha):
if alpha==0:
return 1/6
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
ass=alpha/(1+svals**2)
# sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
sqas=np.lib.scimath.sqrt(ass)
toint=1/sqas*np.arctan(sqas)-1/(1+ass)
integ=np.trapz(toint,svals)
return np.real(1/(2*np.sqrt(1+alpha))-integ/(2*np.pi*alpha))
def flux0(B,fu):
#phi_0 = (chi_0 * f.u.)/(mu_b ( mu_0)) * B for Bexternal
chi0 = 0.274 #external
flux0 = (fu/(4*np.pi*9.274*0.1))*chi0*B
return flux0
def kappaout(kappain,uguess,T,TMF,T0,Q,J,flux0):
kB = 0.0861733 # Boltzmann constant in meV/K
kperp = kappain[0]
kpara = kappain[1]
alpha = (kperp-kpara)/(kperp+kpara)
gamma = uguess*kB*Q/J
y = yalpha(alpha)
yprime = yadiff(alpha)
k23 = 1/((kperp+kpara)**(3/2))
kperpline = (T-TMF)/T0 + 1/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(3/2*1/np.sqrt(kperp+kpara)*y+(4*kpara-2*kperp)*k23*yprime )-kperp
kparaline = (T-TMF)/T0 + 3/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(2*1/np.sqrt(kperp+kpara)*y + (2*kpara-6*kperp)*k23*yprime )-kpara
ksquared = np.array((kperpline,kparaline))
return ksquared
T0 = 1.13 # K
TMF = 30.6 # K
Q = 0.039 # A-1
J = 2.8 # meV/A
fu = 24.018 # A3
kperp=0.01 # A-1
kpara=0.02 # A-1
kappain = np.array(((kperp/Q)**2,(kpara/Q)**2))
uguess = 229
#uguess = 127
B = 0.104
# for B in (0.104,0.240,0.340,0.350):
phi0 = flux0(B,fu)
for T in np.arange(27.0,32.0,0.1):
#print(B,T)
if B==0.0:
kpara=0.010 # A-1
kperp=0.010 # A-1
huh = root(kappaout,kappain,args=(uguess,T,TMF,T0,Q,J,phi0))
# print(huh)
if(huh.success):
kout=np.sqrt((huh.x))*Q
print(B, T, *kout)
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:55: RuntimeWarning: invalid value encountered in double_scalars
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:56: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:57: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:18: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:39: RuntimeWarning: invalid value encountered in sqrt
0.104 29.00000000000003 0.0058998727469731765 0.017851499993875117
0.104 29.10000000000003 0.006714095941307619 0.01858899428166738
0.104 29.20000000000003 0.007652430587795579 0.01935300204552879
0.104 29.300000000000033 0.008718437764471697 0.020151657107193847
0.104 29.400000000000034 0.00991198183834818 0.0209952871236127
0.104 29.500000000000036 0.011229026429167366 0.021895208426311326
0.104 29.600000000000037 0.012661574150001985 0.022861973584683226
0.104 29.70000000000004 0.01419776135210306 0.02390342139341465
0.104 29.80000000000004 0.015822236243081943 0.025023029597085772
0.104 29.90000000000004 0.017516974397525864 0.026219060404547554
0.104 30.000000000000043 0.01926254800083737 0.027484762416842404
0.104 30.100000000000044 0.021039641142570398 0.02880952183690363
0.104 30.200000000000045 0.022830462843858323 0.030180537345192323
0.104 30.300000000000047 0.024619754338055022 0.031584500483421825
0.104 30.40000000000005 0.02639526626579444 0.03300890341175285
0.104 30.50000000000005 0.028147764372642606 0.03444283178428824
0.104 30.60000000000005 0.02987072051918108 0.03587729072454394
0.104 30.700000000000053 0.031559853822473574 0.03730520055413953
0.104 30.800000000000054 0.03321264482678747 0.0387212050163696
0.104 30.900000000000055 0.03482789367067327 0.04012140102518611
0.104 31.000000000000057 0.036405352202353525 0.041503058122005596
0.104 31.10000000000006 0.03794543465695998 0.042864363062477755
0.104 31.20000000000006 0.039448998901079696 0.04420420354824746
0.104 31.30000000000006 0.04091718572121294 0.04552199309789779
0.104 31.400000000000063 0.04235130338882501 0.04681753329658288
0.104 31.500000000000064 0.04375274635044801 0.04809090755705519
0.104 31.600000000000065 0.045122939045013806 0.04934240030915814
0.104 31.700000000000067 0.04646329791255937 0.050572436138280996
0.104 31.800000000000068 0.047775206413481305 0.05178153432712241
0.104 31.90000000000007 0.04905999924563856 0.052970275120073906
#! /usr/bin/env python3
import numpy as np
#from sincfit import *
from scipy.optimize import root
import matplotlib.pyplot as plt
import matplotlib as mpl
def yalpha(alpha):
if alpha==0:
return 1
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
toint=1-1/sqas*np.arctan(sqas)
integ=np.trapz(toint,svals)
return np.real(np.sqrt(1+alpha)-integ/np.pi)
def yaprime(alpha):
dalpha = 1e-6
if alpha < dalpha:
return 1/6
return np.real(0.5*(yalpha(alpha+dalpha)-yalpha(alpha-dalpha))/dalpha)
def yadiff(alpha):
if alpha==0:
return 1/6
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
ass=alpha/(1+svals**2)
# sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
sqas=np.lib.scimath.sqrt(ass)
toint=1/sqas*np.arctan(sqas)-1/(1+ass)
integ=np.trapz(toint,svals)
return np.real(1/(2*np.sqrt(1+alpha))-integ/(2*np.pi*alpha))
def flux0(B,fu):
#phi_0 = (chi_0 * f.u.)/(mu_b ( mu_0)) * B for Bexternal
chi0 = 0.274 #external
flux0 = (fu/(4*np.pi*9.274*0.1))*chi0*B
return flux0
def kappaout(kappain,uguess,T,TMF,T0,Q,J,flux0):
kB = 0.0861733 # Boltzmann constant in meV/K
kperp = kappain[0]
kpara = kappain[1]
alpha = (kperp-kpara)/(kperp+kpara)
gamma = uguess*kB*Q/J
y = yalpha(alpha)
yprime = yadiff(alpha)
k23 = 1/((kperp+kpara)**(3/2))
kperpline = (T-TMF)/T0 + 1/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(3/2*1/np.sqrt(kperp+kpara)*y+(4*kpara-2*kperp)*k23*yprime )-kperp
kparaline = (T-TMF)/T0 + 3/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(2*1/np.sqrt(kperp+kpara)*y + (2*kpara-6*kperp)*k23*yprime )-kpara
ksquared = np.array((kperpline,kparaline))
return ksquared
T0 = 1.13 # K
TMF = 30.6 # K
Q = 0.039 # A-1
J = 2.8 # meV/A
fu = 24.018 # A3
kperp=0.01 # A-1
kpara=0.02 # A-1
kappain = np.array(((kperp/Q)**2,(kpara/Q)**2))
uguess = 85 #5964
#uguess = 127
B = 0.240
# for B in (0.104,0.240,0.340,0.350):
phi0 = flux0(B,fu)
for T in np.arange(27.0,32.0,0.1):
#print(B,T)
if B==0.0:
kpara=0.10 # A-1
kperp=0.10 # A-1
huh = root(kappaout,kappain,args=(uguess,T,TMF,T0,Q,J,phi0))
# print(huh)
if(huh.success):
kout=np.sqrt((huh.x))*Q
print(B, T, *kout)
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:55: RuntimeWarning: invalid value encountered in double_scalars
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:56: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:57: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:18: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:39: RuntimeWarning: invalid value encountered in sqrt
0.24 29.90000000000004 0.004778436060905078 0.0276172798196949
0.24 30.000000000000043 0.00860769236673203 0.02888546497583155
0.24 30.100000000000044 0.012121068081599086 0.030301525889325
0.24 30.200000000000045 0.015328018919181344 0.031819472387130045
0.24 30.300000000000047 0.01826632157848297 0.033391534055159294
0.24 30.40000000000005 0.020975372738500007 0.03498209987152442
0.24 30.50000000000005 0.023489945549917336 0.03656786899199603
0.24 30.60000000000005 0.025839119904827085 0.03813467615892608
0.24 30.700000000000053 0.028046732253682666 0.03967442666854008
0.24 30.800000000000054 0.03013221842705006 0.04118286750104785
0.24 30.900000000000055 0.032111458786495746 0.04265811717310517
0.24 31.000000000000057 0.03399750364874809 0.044099733368102315
0.24 31.10000000000006 0.035801158690873275 0.04550813060436817
0.24 31.20000000000006 0.03753144497742358 0.04688421836889386
0.24 31.30000000000006 0.03919595681805712 0.048229176610198904
0.24 31.400000000000063 0.040801139696751504 0.04954431674536336
0.24 31.500000000000064 0.04235250677202574 0.050830996096976964
0.24 31.600000000000065 0.04385480845739237 0.052090565878667526
0.24 31.700000000000067 0.045312166162224804 0.05332434033885748
0.24 31.800000000000068 0.046728178558994554 0.05453357928250187
0.24 31.90000000000007 0.04810600667315999 0.055719479046833435
#! /usr/bin/env python3
import numpy as np
#from sincfit import *
from scipy.optimize import root
import matplotlib.pyplot as plt
import matplotlib as mpl
def yalpha(alpha):
if alpha==0:
return 1
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
toint=1-1/sqas*np.arctan(sqas)
integ=np.trapz(toint,svals)
return np.real(np.sqrt(1+alpha)-integ/np.pi)
def yaprime(alpha):
dalpha = 1e-6
if np.abs(alpha) < dalpha:
return 1/6
return np.real(0.5*(yalpha(alpha+dalpha)-yalpha(alpha-dalpha))/dalpha)
def yadiff(alpha):
if alpha==0:
return 1/6
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
ass=alpha/(1+svals**2)
# sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
sqas=np.lib.scimath.sqrt(ass)
toint=1/sqas*np.arctan(sqas)-1/(1+ass)
integ=np.trapz(toint,svals)
return np.real(1/(2*np.sqrt(1+alpha))-integ/(2*np.pi*alpha))
def flux0(B,fu):
#phi_0 = (chi_0 * f.u.)/(mu_b ( mu_0)) * B for Bexternal
chi0 = 0.274 #external
flux0 = (fu/(4*np.pi*9.274*0.1))*chi0*B
return flux0
def kappaout(kappain,uguess,T,TMF,T0,Q,J,flux0):
kB = 0.0861733 # Boltzmann constant in meV/K
kperp = kappain[0]
kpara = kappain[1]
alpha = (kperp-kpara)/(kperp+kpara)
gamma = uguess*kB*Q/J
y = yalpha(alpha)
yprime = yadiff(alpha)
k23 = 1/((kperp+kpara)**(3/2))
kperpline = (T-TMF)/T0 + 1/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(3/2*1/np.sqrt(kperp+kpara)*y+(4*kpara-2*kperp)*k23*yprime )-kperp
kparaline = (T-TMF)/T0 + 3/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(2*1/np.sqrt(kperp+kpara)*y + (2*kpara-6*kperp)*k23*yprime )-kpara
ksquared = np.array((kperpline,kparaline))
return ksquared
T0 = 1.13 # K
TMF = 30.6 # K
Q = 0.039 # A-1
J = 2.8 # meV/A
fu = 24.018 # A3
kperp=0.02 # A-1
kpara=0.05 # A-1
kappain = np.array(((kperp/Q)**2,(kpara/Q)**2))
uguess = 13419 #5964
#uguess = 127
B = 0.350
# for B in (0.104,0.240,0.340,0.350):
phi0 = flux0(B,fu)
for T in np.arange(27.0,32.0,0.1):
#print(B,T)
if B==0.0:
kpara=0.01 # A-1
kperp=0.01 # A-1
huh = root(kappaout,kappain,args=(uguess,T,TMF,T0,Q,J,phi0))
# print(huh)
if(huh.success):
kout=np.sqrt((huh.x))*Q
print(B, T, *kout)
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:18: RuntimeWarning: invalid value encountered in sqrt
c:\mcstas-2.6\miniconda3\lib\site-packages\ipykernel_launcher.py:39: RuntimeWarning: invalid value encountered in sqrt
#! /usr/bin/env python3
import numpy as np
#from sincfit import *
from scipy.optimize import root
import matplotlib.pyplot as plt
import matplotlib as mpl
def yalpha(alpha):
if alpha==0:
return 1
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
toint=1-1/sqas*np.arctan(sqas)
integ=np.trapz(toint,svals)
return np.real(np.sqrt(1+alpha)-integ/np.pi)
def yaprime(alpha):
dalpha = 1e-6
if alpha < dalpha:
return 1/6
return np.real(0.5*(yalpha(alpha+dalpha)-yalpha(alpha-dalpha))/dalpha)
def yadiff(alpha):
if alpha==0:
return 1/6
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
ass=alpha/(1+svals**2)
# sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
sqas=np.lib.scimath.sqrt(ass)
toint=1/sqas*np.arctan(sqas)-1/(1+ass)
integ=np.trapz(toint,svals)
return np.real(1/(2*np.sqrt(1+alpha))-integ/(2*np.pi*alpha))
def flux0(B,fu):
#phi_0 = (chi_0 * f.u.)/(mu_b ( mu_0)) * B for Bexternal
chi0 = 0.274 #external
flux0 = (fu/(4*np.pi*9.274*0.1))*chi0*B
return flux0
def kappaout(kappain,uguess,T,TMF,T0,Q,J,flux0):
kB = 0.0861733 # Boltzmann constant in meV/K
kperp = kappain[0]
kpara = kappain[1]
alpha = (kperp-kpara)/(kperp+kpara)
gamma = uguess*kB*Q/J
y = yalpha(alpha)
yprime = yadiff(alpha)
k23 = 1/((kperp+kpara)**(2/3))
kperpline = (T-TMF)/T0 + 1/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(3/2*1/np.sqrt(kperp+kpara)*y+(4*kpara-2*kperp)*k23*yprime )-kperp
kparaline = (T-TMF)/T0 + 3/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(2*1/np.sqrt(kperp+kpara)*y + (2*kpara-6*kperp)*k23*yprime )-kpara
ksquared = np.array((kperpline,kparaline))
return ksquared
T0 = 1.13 # K
TMF = 30.6 # K
Q = 0.039 # A-1
J = 2.8 # meV/A
fu = 24.018 # A3
kperp=0.020 # A-1
kpara=0.050 # A-1
kappain = np.array(((kperp/Q)**2,(kpara/Q)**2))
uguess = 5964
#uguess = 127
B = 0.384
# for B in (0.104,0.240,0.340,0.350):
phi0 = flux0(B,fu)
for T in np.arange(27.0,32.0,0.1):
#print(B,T)
if B==0.0:
kpara=0.01 # A-1
kperp=0.01 # A-1
huh = root(kappaout,kappain,args=(uguess,T,TMF,T0,Q,J,phi0))
# print(huh)
if(huh.success):
kout=np.sqrt((huh.x))*Q
print(B, T, *kout)
0.384 27.0 0.30515592524783164 0.45131851591699973
0.384 27.1 0.3054913428885933 0.45140555554247397
0.384 27.200000000000003 0.3058261598584991 0.45149235707336566
0.384 27.300000000000004 0.30616037875313 0.4515789211965764
0.384 27.400000000000006 0.30649400214885797 0.4516652485948612
0.384 27.500000000000007 0.3068270326030434 0.4517513399468646
0.384 27.60000000000001 0.3071594726542292 0.4518371959271571
0.384 27.70000000000001 0.30749132482233343 0.4519228172062698
0.384 27.80000000000001 0.30782259160883774 0.4520082044507305
0.384 27.900000000000013 0.3081532754969764 0.4520933583230972
0.384 28.000000000000014 0.30848337895191796 0.4521782794819942
0.384 28.100000000000016 0.30881290442094866 0.45226296858214443
0.384 28.200000000000017 0.30914185433365404 0.4523474262744036
0.384 28.30000000000002 0.3094702311020943 0.45243165320579315
0.384 28.40000000000002 0.30979803712097964 0.4525156500195334
0.384 28.50000000000002 0.31012527476784413 0.45259941735507603
0.384 28.600000000000023 0.3104519464032168 0.452682955848135
0.384 28.700000000000024 0.31077805437078904 0.4527662661307196
0.384 28.800000000000026 0.3111036009975816 0.4528493488311652
0.384 28.900000000000027 0.3114285885941101 0.45293220457416394
0.384 29.00000000000003 0.3117530194545454 0.4530148339807959
0.384 29.10000000000003 0.3120768958568755 0.453097237668559
0.384 29.20000000000003 0.31240022006306284 0.4531794162513991
0.384 29.300000000000033 0.31272299431920164 0.45326137033973923
0.384 29.400000000000034 0.3130452208556709 0.4533431005405096
0.384 29.500000000000036 0.31336690188728755 0.4534246074571759
0.384 29.600000000000037 0.31368803961345754 0.45350589168976824
0.384 29.70000000000004 0.31400863621832364 0.45358695383490955
0.384 29.80000000000004 0.3143286938709127 0.45366779448584316
0.384 29.90000000000004 0.3146482147252806 0.45374841423246093
0.384 30.000000000000043 0.31496720092065555 0.4538288136613307
0.384 30.100000000000044 0.31528565458157964 0.453908993355723
0.384 30.200000000000045 0.3156035778173047 0.4539889538958782
0.384 30.300000000000047 0.3159209727248349 0.454068695858098
0.384 30.40000000000005 0.31623784138480704 0.4541482198161386
0.384 30.50000000000005 0.3165541858643989 0.45422752634034796
0.384 30.60000000000005 0.31687000821678446 0.454306615997908
0.384 30.700000000000053 0.31718531048126575 0.4543854893528599
0.384 30.800000000000054 0.31750009468340185 0.45446414696612963
0.384 30.900000000000055 0.3178143628351379 0.454542589395553
0.384 31.000000000000057 0.3181281169349326 0.45462081719589936
0.384 31.10000000000006 0.31844135896788106 0.4546988309188974
0.384 31.20000000000006 0.31875409090584206 0.4547766311132578
0.384 31.30000000000006 0.3190663147075582 0.4548542183246976
0.384 31.400000000000063 0.31937803231877776 0.4549315930959638
0.384 31.500000000000064 0.3196892456723733 0.45500875596685725
0.384 31.600000000000065 0.3199999566884615 0.45508570747425453
0.384 31.700000000000067 0.3203101672745181 0.4551624481521317
0.384 31.800000000000068 0.32061987932549413 0.45523897853158696
0.384 31.90000000000007 0.3209290947239299 0.4553152991408623
#! /usr/bin/env python3
import numpy as np
#from sincfit import *
from scipy.optimize import root
import matplotlib.pyplot as plt
import matplotlib as mpl
def yalpha(alpha):
if alpha==0:
return 1
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
toint=1-1/sqas*np.arctan(sqas)
integ=np.trapz(toint,svals)
return np.real(np.sqrt(1+alpha)-integ/np.pi)
def yaprime(alpha):
dalpha = 1e-6
if np.abs(alpha) < dalpha:
return 1/6
return np.real(0.5*(yalpha(alpha+dalpha)-yalpha(alpha-dalpha))/dalpha)
def yadiff(alpha):
if alpha==0:
return 1/6
else:
svals=np.linspace(-10000,10000,10000000,endpoint=True)
ass=alpha/(1+svals**2)
# sqas=np.lib.scimath.sqrt(alpha/(1+svals**2))
sqas=np.lib.scimath.sqrt(ass)
toint=1/sqas*np.arctan(sqas)-1/(1+ass)
integ=np.trapz(toint,svals)
return np.real(1/(2*np.sqrt(1+alpha))-integ/(2*np.pi*alpha))
def flux0(B,fu):
#phi_0 = (chi_0 * f.u.)/(mu_b ( mu_0)) * B for Bexternal
chi0 = 0.274 #external
flux0 = (fu/(4*np.pi*9.274*0.1))*chi0*B
return flux0
def kappaout(kappain,uguess,T,TMF,T0,Q,J,flux0):
kB = 0.0861733 # Boltzmann constant in meV/K
kperp = kappain[0]
kpara = kappain[1]
alpha = (kperp-kpara)/(kperp+kpara)
gamma = uguess*kB*Q/J
y = yalpha(alpha)
yprime = yadiff(alpha)
k23 = 1/((kperp+kpara)**(3/2)) # not 2/3
kperpline = (T-TMF)/T0 + 1/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(3/2*1/np.sqrt(kperp+kpara)*y+(4*kpara-2*kperp)*k23*yprime ) #-kperp
kparaline = (T-TMF)/T0 + 3/6*uguess*flux0**2 + 1/6*1/(np.sqrt(2)*np.pi)*gamma*T*(2*1/np.sqrt(kperp+kpara)*y + (2*kpara-6*kperp)*k23*yprime ) #-kpara
ksquared = np.array((kperpline,kparaline))
return ksquared
T0 = 1.13 # K
TMF = 30.6 # K
Q = 0.039 # A-1
J = 2.8 # meV/A
fu = 24.018 # A3
kperp=0.01319 # A-1
kpara=0.02607 # A-1
T = 30
B = 0.240
#30 0.013188540636044 0.0260761677385981
#kperp=0.01 #A-1
#kpara=0.01 #A-1
#T = 30.0
#B = 0.0
kappain = np.array(((kperp/Q)**2,(kpara/Q)**2))
u = 0.25 # meV/A3
ucalc = u/(J*Q*Q)
uguess = 85.0 #229.0 #314.0# 5964
#uguess = 96.1
phi0 = flux0(B,fu)
#kappasquared = kappaout(kappain,uguess,T,TMF,T0,Q,J,phi0)
#print(kappasquared)
alpha = (kperp**2-kpara**2)/(kperp**2+kpara**2)
huh = kappaout(kappain,uguess,T,TMF,T0,Q,J,phi0)
#print(huh)
kout=np.sqrt((huh))*Q
print('B = {:.3f} T'.format(B))
print('T = {:.1f} K'.format(T))
print('~u = {:.2f} calculated'.format(ucalc))
print('~u = {:.2f} guessed'.format(uguess))
print('alpha = {:.4f}'.format(alpha))
print('y(a) = {:.4f}'.format(yalpha(alpha)))
print('y\'(a) = {:.4f}'.format(yaprime(alpha)))
print('input:')
print('k_perp = {:.5f} A-1, k_para = {:.5f} A-1'.format(kperp,kpara))
print('output:')
print('k_perp = {:.5f} A-1, k_para = {:.5f} A-1'.format(*kout))
B = 0.240 T
T = 30.0 K
~u = 58.70 calculated
~u = 85.00 guessed
alpha = -0.5924
y(a) = 0.8898
y'(a) = 0.2122
input:
k_perp = 0.01319 A-1, k_para = 0.02607 A-1
output:
k_perp = 0.00605 A-1, k_para = 0.02851 A-1