In [1]:
# Hellwarth 1999 PRB - Part IV; T-dep of the Feynman variation parameter
# A Friday afternoon of hacking to try and implement the T-dep electron-phonon coupling from the above PRB
# Which was unusually successful! And more or less reproduced Table III

In [2]:
# Just in case anyone is following this from the far future; we are using:
versioninfo()


Julia Version 0.5.0
Commit 3c9d753 (2016-09-19 18:14 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin13.4.0)
  CPU: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, broadwell)

In [3]:
# one-dimensional numerical integration in Julia using adaptive Gauss-Kronrod quadrature
using QuadGK

# Equation numbers follow above Hellwarth 1999 PRB
# 62b
A(v,w,β)=3/β*( log(v/w) - 1/2*log(2*π*β) - log(sinh(v*β/2)/sinh(w*β/2)))

# 62d
Y(x,v,β)=1/(1-exp(-v*β))*(1+exp(-v*β)-exp(-v*x)-exp(v*(x-β)))
# 62c integrand
f(x,v,w,β)=(exp(β-x)+exp(x))/(w^2*x*(1-x/β)+Y(x,v,β)*(v^2-w^2)/v)^(1/2)
# 62c
B(v,w,β,α) = α*v/(sqrt(π)*(exp(β)-1)) * quadgk(x->f(x,v,w,β),0,β/2)[1]
#62e
C(v,w,β)=3/4*(v^2-w^2)/v * (coth(v*β/2)-2/(v*β))

F(v,w,β,α)=-(A(v,w,β)+B(v,w,β,α)+C(v,w,β)) #(62a)

# Can now evaluate, e.g.
# F(v,w,β,α)=F(7.2,6.5,1.0,1.0)
# BUT - this is just the objective function! Not the optimised parameters.
# Also there's a scary numeric integration (quadgk) buried within...


Out[3]:
F (generic function with 1 method)

In [4]:
# Print out F(alpha,beta) for a specific v,w; as a test
@printf("\t\t")
for α in 1:5
    @printf("α=%d\t\t",α)
end
@printf("\n")

for β in 1:0.25:3.0
    v=w=4
    print("β:   \t||")
    for α in 1:5
        @printf("%f\t",F(v,w,β,α))
    end
    println()
end


		α=1		α=2		α=3		α=4		α=5		
β: 1.0  	||0.948149	-0.860517	-2.669184	-4.477850	-6.286517	
β: 1.25  	||0.837826	-0.797573	-2.432973	-4.068372	-5.703771	
β: 1.5  	||0.731167	-0.781009	-2.293184	-3.805360	-5.317535	
β: 1.75  	||0.634483	-0.786028	-2.206538	-3.627049	-5.047560	
β: 2.0  	||0.548050	-0.802169	-2.152387	-3.502605	-4.852824	
β: 2.25  	||0.470735	-0.824402	-2.119538	-3.414675	-4.709811	
β: 2.5  	||0.401226	-0.850049	-2.101324	-3.352599	-4.603874	
β: 2.75  	||0.338349	-0.877564	-2.093476	-3.309388	-4.525300	
β: 3.0  	||0.281128	-0.905989	-2.093106	-3.280223	-4.467340	

In [5]:
# OK - very primitive!
# But these are 1D traces along the solution for Alpha=Beta=1 in Helwarth PRB TABLE III,
# this was used to correct a transcription error in the above typed-in equations
# It was also good to see what F(v,w) looked like as a function of v and w near an optimal solution

v=7.20
w=6.5
α=1.0
β=1.0

for v=6:0.1:8
    @printf("%f %f\n",v,F(v,w,β,α))
end

@printf("\n")
v=7.20
for w=6:0.1:7
    @printf("%f %f\n",w,F(v,w,β,α))
end


6.000000 0.991013
6.100000 0.980559
6.200000 0.971051
6.300000 0.962484
6.400000 0.954852
6.500000 0.948149
6.600000 0.942368
6.700000 0.937501
6.800000 0.933540
6.900000 0.930475
7.000000 0.928297
7.100000 0.926997
7.200000 0.926565
7.300000 0.926990
7.400000 0.928261
7.500000 0.930368
7.600000 0.933300
7.700000 0.937045
7.800000 0.941592
7.900000 0.946930
8.000000 0.953047

6.000000 0.936794
6.100000 0.933154
6.200000 0.930295
6.300000 0.928232
6.400000 0.926983
6.500000 0.926565
6.600000 0.926993
6.700000 0.928281
6.800000 0.930446
6.900000 0.933502
7.000000 0.937462

In [6]:
# Angle for the ringside seats, when the fall, don't blame me, Bring on the Major Leagues
using Optim
# Julia package stuffed full of magic, does auto-differentation & etc. etc.

In [ ]:


In [7]:
Fopt(x) = F(x[1],x[2],1,1)

Fopt([7.2,6.5])
# OK! It looks like I can bury the alpha, beta parameters (which we don't optimise), by wrapping our function in a function definition.


Out[7]:
0.9265650282717047

In [8]:
initial=[7.2,6.5]

optimize(Fopt,  initial, LBFGS())


Out[8]:
Results of Optimization Algorithm
 * Algorithm: L-BFGS
 * Starting Point: [7.2,6.5]
 * Minimizer: [7.2001204422454705,6.499877874759114]
 * Minimum: 9.265650e-01
 * Iterations: 5
 * Convergence: false
   * |x - x'| < 1.0e-32: false
   * |f(x) - f(x')| / |f(x)| < 1.0e-32: false
   * |g(x)| < 1.0e-08: false
   * f(x) > f(x'): true
   * Reached Maximum Number of Iterations: false
 * Objective Function Calls: 20
 * Gradient Calls: 20

In [9]:
optimize(Fopt, initial, BFGS(), Optim.Options(autodiff=true))


Out[9]:
Results of Optimization Algorithm
 * Algorithm: BFGS
 * Starting Point: [7.2,6.5]
 * Minimizer: [7.202559224930345,6.502370805840276]
 * Minimum: 9.265650e-01
 * Iterations: 3
 * Convergence: true
   * |x - x'| < 1.0e-32: false
   * |f(x) - f(x')| / |f(x)| < 1.0e-32: false
   * |g(x)| < 1.0e-08: true
   * f(x) > f(x'): true
   * Reached Maximum Number of Iterations: false
 * Objective Function Calls: 20
 * Gradient Calls: 20

In [10]:
optimize(Fopt, initial, BFGS(), Optim.Options(autodiff=true))


Out[10]:
Results of Optimization Algorithm
 * Algorithm: BFGS
 * Starting Point: [7.2,6.5]
 * Minimizer: [7.202559224930345,6.502370805840276]
 * Minimum: 9.265650e-01
 * Iterations: 3
 * Convergence: true
   * |x - x'| < 1.0e-32: false
   * |f(x) - f(x')| / |f(x)| < 1.0e-32: false
   * |g(x)| < 1.0e-08: true
   * f(x) > f(x'): true
   * Reached Maximum Number of Iterations: false
 * Objective Function Calls: 20
 * Gradient Calls: 20

In [11]:
# Right! The above looks like this might actually just work...

@printf("\t\t")
for α in 1:5
    @printf("α=%d\t\t",α)
end
@printf("\n")

for β in 1:0.25:3.0
    print("β:   \t||")
    for α in 1:5
        myf(x) = F(x[1],x[2],β,α)
        solution=Optim.minimizer(optimize(myf, initial,ConjugateGradient(), Optim.Options(autodiff=true)))
        
        #print(solution,"\t")
        @printf("%.2f %.2f\t",solution[1],solution[2])
    end
    println()
end


		α=1		α=2		α=3		α=4		α=5		
β: 1.0  	||7.20 6.50	7.69 6.20	8.26 5.87	8.95 5.51	9.78 5.13	
β: 1.25  	||5.94 5.31	6.38 5.03	6.91 4.73	7.57 4.41	8.39 4.05	
β: 1.5  	||5.11 4.54	5.52 4.29	6.02 4.00	6.66 3.70	7.48 3.37	
β: 1.75  	||4.54 4.01	4.91 3.76	5.40 3.51	6.02 3.22	6.83 2.92	
β: 2.0  	||4.12 3.63	4.48 3.40	4.94 3.16	
DomainError:

 in nan_dom_err at ./math.jl:196 [inlined]
 in log(::Float64) at ./math.jl:202
 in A(::Float64, ::Float64, ::Float64) at ./In[3]:6
 in F(::Float64, ::Float64, ::Float64, ::Int64) at ./In[3]:17
 in (::#myf#3)(::Array{Float64,1}) at ./In[11]:12
 in alphatry(::Float64, ::Optim.OnceDifferentiable, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::LineSearches.LineSearchResults{Float64}, ::Float64, ::Float64, ::Float64, ::Int64, ::Float64, ::Bool) at /Users/jarvist/.julia/v0.5/LineSearches/src/api.jl:26
 in alphaguess!(::Optim.ConjugateGradientState{Float64,1,Array{Float64,1}}, ::Optim.ConjugateGradient{Void,Optim.##29#31,LineSearches.#hagerzhang!}, ::Float64, ::Optim.OnceDifferentiable) at /Users/jarvist/.julia/v0.5/Optim/src/utilities/perform_linesearch.jl:57
 in perform_linesearch!(::Optim.ConjugateGradientState{Float64,1,Array{Float64,1}}, ::Optim.ConjugateGradient{Void,Optim.##29#31,LineSearches.#hagerzhang!}, ::Optim.OnceDifferentiable) at /Users/jarvist/.julia/v0.5/Optim/src/utilities/perform_linesearch.jl:70
 in update_state!(::Optim.OnceDifferentiable, ::Optim.ConjugateGradientState{Float64,1,Array{Float64,1}}, ::Optim.ConjugateGradient{Void,Optim.##29#31,LineSearches.#hagerzhang!}) at /Users/jarvist/.julia/v0.5/Optim/src/cg.jl:144
 in optimize(::Optim.OnceDifferentiable, ::Array{Float64,1}, ::Optim.ConjugateGradient{Void,Optim.##29#31,LineSearches.#hagerzhang!}, ::Optim.Options{Void}) at /Users/jarvist/.julia/v0.5/Optim/src/optimize.jl:196
 in optimize(::#myf#3, ::Array{Float64,1}, ::Optim.ConjugateGradient{Void,Optim.##29#31,LineSearches.#hagerzhang!}, ::Optim.Options{Void}) at /Users/jarvist/.julia/v0.5/Optim/src/optimize.jl:116
 in macro expansion; at ./In[11]:13 [inlined]
 in anonymous at ./<missing>:?

In [12]:
# After a bit of fiddling, I figured out how to add bounds, to stop that 'DomainError', 
# which occurs where the you are evaluating log(-ve Real), i.e. w<0.0 or v<0.0

initial=[7.2,6.5]

lower=[0.0,0.0]
upper=[10.0,10.0]

@printf("\t\t")
for α in 1:5
    @printf("α=%d\t\t",α)
end
@printf("\n")

for β in 1:0.25:3.0
    print("β:   \t||")
    for α in 1:5
        myf(x) = F(x[1],x[2],β,α)
        solution=optimize(DifferentiableFunction(myf), initial, lower, upper, Fminbox(); optimizer = ConjugateGradient, optimizer_o=Optim.Options(autodiff=true))
        minimum=Optim.minimizer(solution)
        
        v=minimum[1]
        w=minimum[2]
        #print(solution,"\t")
        @printf("%.2f %.2f\t",v,w)
        
        
    end
    println()
end


		α=1		α=2		α=3		α=4		α=5		
β: 1.0  	||
WARNING: DifferentiableFunction(args...) is deprecated, use OnceDifferentiable(args...) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in DifferentiableFunction(::Function, ::Vararg{Function,N}) at ./deprecated.jl:50
 in macro expansion; at ./In[12]:19 [inlined]
 in anonymous at ./<missing>:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/jarvist/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/jarvist/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[12], in expression starting on line 15
WARNING: could not attach metadata for @simd loop.
7.20 6.50	7.68 6.19	8.05 5.66	8.94 5.50	9.78 5.12	
β: 1.25  	||5.87 5.25	6.33 4.99	6.92 4.74	7.56 4.40	8.39 4.05	
β: 1.5  	||5.08 4.50	5.52 4.28	6.01 4.00	6.61 3.66	7.48 3.37	
β: 1.75  	||4.58 4.05	4.91 3.76	5.39 3.50	6.02 3.23	6.84 2.92	
β: 2.0  	||4.14 3.65	4.49 3.42	4.94 3.16	5.54 2.89	6.36 2.60	
β: 2.25  	||3.81 3.35	4.14 3.13	4.59 2.89	5.18 2.64	6.00 2.37	
β: 2.5  	||3.59 3.15	3.90 2.94	4.31 2.70	4.90 2.46	5.71 2.20	
β: 2.75  	||3.41 2.99	3
WARNING: Linesearch failed, using alpha = 0.14412411949331552 and exiting optimization.
.70 2.77	4.11 2.56	4.67 2.32	5.48 2.07	
β: 3.0  	||3.25 2.85	3.54 2.65	3.93 2.44	4.49 2.22	5.29 1.97	

In [13]:
# So that looks really good! I was super stoked to see how close these values are to TABLE III in Hellwarth
# However, the solutions all start on (7.20,6.50) so that top-left data point is cheating, whereas the 
# others have some disagreement / noise associated with them
# I was wondering whether it might be a function of the optimiser, so thought I'd try them all

initial=[7.1,6.5]
# Main use of these bounds is stopping v or w going negative, at which you get a NaN error as you are evaluating log(-ve Real)
lower=[1.0,1.0]
upper=[10.0,10.0]

for optimizer in [BFGS, LBFGS, ConjugateGradient] # Newton, GradientDescent, NelderMead - steps outside box & log(-ve)->NaN error
    @printf("\n\t\t##### NOW TRIALING: %s #####\n\n",optimizer)

    @printf("\t\t")
    for α in 1:5
        @printf("α=%d\t\t",α)
    end
    @printf("\n")

    for β in 1:0.25:3.0
        print("β:   \t||")
        for α in 1:5
            myf(x) = F(x[1],x[2],β,α)
            res=optimize(DifferentiableFunction(myf), initial, lower, upper, Fminbox(); optimizer = optimizer, optimizer_o=Optim.Options(autodiff=true))
            minimum=Optim.minimizer(res)
            #show(Optim.converged(res)) # All came out as 'true'
                
            #print(solution,"\t")
            @printf("%.2f %.2f\t",minimum[1],minimum[2])
        end
        println()
    end
end


		##### NOW TRIALING: Optim.BFGS{L<:Function,H<:Function} #####

		α=1		α=2		α=3		α=4		α=5		
β: 1.0  	||7.15 6.45	7.68 6.19	8.26 5.87	8.94 5.51	9.78 5.13	
β: 1.25  	||5.94 5.31	6.35 5.01	6.91 4.73	7.57 4.41	8.39 4.05	
β: 1.5  	||5.11 4.53	5.54 4.31	6.01 4.00	6.67 3.71	7.48 3.38	
β: 1.75  	||4.55 4.02	4.94 3.80	5.39 3.51	6.02 3.23	6.83 2.92	
β: 2.0  	||4.15 3.66	4.48 3.41	4.93 3.15	5.55 2.89	6.38 2.62	
β: 2.25  	||3.80 3.34	4.16 3.14	4.59 2.90	5.18 2.64	5.99 2.37	
β: 2.5  	||3.58 3.14	3.89 2.92	4.32 2.70	4.90 2.45	5.71 2.20	
β: 2.75  	||3.38 2.97	3.70 2.78	4.11 2.56	4.67 2.32	5.48 2.07	
β: 3.0  	||3.27 2.87	3.54 2.65	3.93 2.43	4.48 2.21	5.29 1.97	

		##### NOW TRIALING: Optim.LBFGS{T,L<:Function,Tprep<:Union{Function,Void}} #####

		α=1		α=2		α=3		α=4		α=5		
β: 1.0  	||7.15 6.45	7.70 6.21	8.26 5.86	8.95 5.51	9.79 5.13	
β: 1.25  	||5.94 5.31	6.36 5.01	6.90 4.72	7.57 4.41	8.39 4.05	
β: 1.5  	||5.13 4.56	5.53 4.30	6.03 4.02	6.67 3.72	7.48 3.38	
β: 1.75  	||4.53 4.01	4.93 3.79	5.40 3.51	6.02 3.23	6.83 2.92	
β: 2.0  	||4.17 3.67	
WARNING: Linesearch failed, using alpha = 2.686099948427937e-11 and exiting optimization.
4.49 3.41	4.94 3.16	5.54 2.88	6.36 2.60	
β: 2.25  	||3.81 3.35	4.15 3.14	4.59 2.90	5.18 2.64	6.00 2.37	
β: 2.5  	||3.58 3.14	3.89 2.93	4.32 2.70	4.90 2.46	5.71 2.20	
β: 2.75  	||3.38 2.96	3.70 2.78	4.10 2.55	4.67 2.32	5.48 2.07	
β: 3.0  	||3.25 2.85	3.54 2.65	3.92 2.43	4.49 2.21	5.29 1.97	

		##### NOW TRIALING: Optim.ConjugateGradient{T,Tprep<:Union{Function,Void},L<:Function} #####

		α=1		α=2		α=3		α=4		α=5		
β: 1.0  	||7.15 6.45	7.67 6.18	8.19 5.80	8.95 5.51	9.78 5.12	
β: 1.25  	||5.91 5.28	6.35 5.01	6.89 4.72	7.56 4.40	8.39 4.05	
β: 1.5  	||5.11 4.54	5.53 4.30	6.04 4.02	6.66 3.70	7.48 3.37	
β: 1.75  	||4.53 4.00	4.93 3.78	5.40 3.51	6.02 3.22	6.83 2.92	
β: 2.0  	||4.17 3.67	4.47 3.39	4.93 3.15	5.54 2.88	6.36 2.60	
β: 2.25  	||3.82 3.35	4.15 3.13	4.59 2.90	5.18 2.64	6.00 2.37	
β: 2.5  	||3.57 3.13	3.91 2.94	4.32 2.70	4.90 2.45	5.71 2.20	
β: 2.75  	||3.38 2.96	3.69 2.77	4.10 2.55	4.67 2.32	5.48 2.07	
β: 3.0  	||3.27 2.87	3.53 2.65	3.92 2.43	4.49 2.21	5.29 1.97	

In [14]:
# So why the (slight) disagreement? I don't really know.
# It may well be that Julia has a much better control of errors, 
# certainly the Optim package (optimisation) defaults seem to be at the Machine-precision end of the world, 
# and a lot of intermediates will be Float64 or larger.

# The objective function seems quite flat in the vicinity of the optimum, so this would also explain some of the variance.

In [15]:
# OK, now Ref 9; Schultz PR Volume 116, Number 3, Nov 1959
const MassElectron = 9.10938188e-31;                          # kg
v=7.15 
w=6.51

m=1.0 #MassElectron
# Eqn (2.4)
μ=m*(v^2-w^2)/v^2
println("Reduced mass: ")
rf=(3/2*μ*v)^(1/2)
println("Feynman Polaron Radius: $rf")

# Units?!? Bohr?


Reduced mass: 0.17100885128857163
Feynman Polaron Radius: 1.3542783798281395

In [16]:
using Optim

const hbar = const ħ = 1.05457162825e-34;          # kg m2 / s 
const eV = const q = const ElectronVolt = 1.602176487e-19;                         # kg m2 / s2 
const me=MassElectron = 9.10938188e-31;                          # kg
const Boltzmann = const kB =  1.3806504e-23;                  # kg m2 / K s2 

# "Band Mass" in Deveresse, actually m_b
mb=0.15*me #*1.4 # 0.15 is band reduced mass; 1.4 is polaron renormalised mass

freq=2.25E12
ω = (2*pi)*freq
α=2.395939683378253
@printf("α=%f\n",α)


initial=[7.1,6.5]
#initial=[9.0,9.0]
# Main use of these bounds is stopping v or w going negative, at which you get a NaN error as you are evaluating log(-ve Real)
lower=[0.1,0.1]
upper=[100.0,100.0]


# Empty arrays for storing data 
Ts=[]
Kμs=[]
Hμs=[]
FHIPμs=[]
ks=[]
Ms=[]
As=[]
Bs=[]
Cs=[]
Fs=[]

# I think this β term subsumes the energy of the phonon; i.e. kbT c.f. ħω
for T in 10:10:300
    β=1/(kB*T)
    βred=ħ*ω*β
    @printf("T: %f β: %.2g βred: %.2g\t",T,β,βred)
    myf(x) = F(x[1],x[2],βred,α)
    res=optimize(DifferentiableFunction(myf), initial, lower, upper, Fminbox(); optimizer = BFGS, optimizer_o=Optim.Options(autodiff=true))
    minimum=Optim.minimizer(res)
    #show(Optim.converged(res)) # All came out as 'true'
    
    v=minimum[1]
    w=minimum[2]
        
    @printf(" v= %.2f w= %.2f\t",v,w)
        
    # From 1962 Feynman, definition of v and w in terms of the coupled Mass and spring-constant
    # See Page 1007, just after equation (18)
    # Units of M appear to be 'electron masses'
    # Unsure of units for k, spring coupling constant
    k=(v^2-w^2)
    M=(v^2-w^2)/w^2
    @printf(" M=%f k=%f\t",M,k)
    
    append!(ks,k)
    append!(Ms,M)
    
    # F(v,w,β,α)=-(A(v,w,β)+B(v,w,β,α)+C(v,w,β)) #(62a) - Hellwarth 1999
    @printf("\n Polaron Es: A= %f B= %f C= %f F= %f",A(v,w,βred),B(v,w,βred,α),C(v,w,βred),F(v,w,βred,α))
    append!(As,A(v,w,βred))
    append!(Bs,B(v,w,βred,α))
    append!(Cs,C(v,w,βred))
    append!(Fs,F(v,w,βred,α))
    

    
    #[1.60] in Devereese, page 36; 6th Edition of Frohlich polaron notes
    # I believe here β is in SI (expanded) units
    μ=(w/v)^3 * (3*q)/(4*mb*ħ*ω^2*α*β) * exp(ħ*ω*β) * exp((v^2-w^2)/(w^2*v))
    @printf("\n\tμ(FHIP)= %f m^2/Vs \t= %.2f cm^2/Vs",μ,μ*100^2)
    append!(Ts,T)
    append!(FHIPμs,μ*100^2)
    
    #[1.61] - Kadanoff's Boltzmann eqn derived mob
    μ=(w/v)^3 * (q)/(2*mb*ω*α) * exp(ħ*ω*β) * exp((v^2-w^2)/(w^2*v))
    @printf("\n\tμ(Kadanoff)= %f m^2/Vs \t= %.2f cm^2/Vs",μ,μ*100^2)    

    append!(Kμs,μ*100^2)
    
    #Hellwarth1999 Eqn (2) and (1) - Unclear where from (just references FHIP), contains factors of βred
    R=(v^2-w^2)/(w^2*v) # inline, page 300 just after Eqn (2)
    #b=R*βred/sinh(b*βred*v/2) # this self-references b! what the hell?
    # Oops - it's a typo from Feynman1962!
    b=R*βred/sinh(βred*v/2) # Feynman1962 version; page 1010, Eqn (47b)
    #b=0 # Hellwarth1999/Baggio1997 "Setting b=0 makes less than 0.1% error"
    a=sqrt( (βred/2)^2 + R*βred*coth(βred*v/2))
    k(u,a,b,v) = (u^2+a^2-b*cos(v*u))^(-3/2)*cos(u) # integrand in (2)
    K=quadgk(u->k(u,a,b,v),0,Inf)[1] # numerical quadrature integration of (2)
    
    #Right-hand-side of Eqn 1 in Hellwarth 1999 // Eqn (4) in Baggio1997
    RHS= α/(3*sqrt(π)) * βred^(5/2) / sinh(βred/2) * (v^3/w^3) * K
    μ=RHS^-1 * (q)/(ω*mb)
    @printf("\n\tμ(Hellwarth1999)= %f m^2/Vs \t= %.2f cm^2/Vs",μ,μ*100^2)    
    append!(Hμs,μ*100^2)
    
    #Hellwarth1999 b=0
    R=(v^2-w^2)/(w^2*v) # inline, page 300 just after Eqn (2)
    b=0 # Hellwarth1999/Baggio1997 "Setting b=0 makes less than 0.1% error"
    a=sqrt( (βred/2)^2 + R*βred*coth(βred*v/2))
    k(u,a,b,v) = (u^2+a^2-b*cos(v*u))^(-3/2)*cos(u) # integrand in (2)
    K=quadgk(u->k(u,a,b,v),0,Inf)[1] # numerical quadrature integration of (2)

    #Right-hand-side of Eqn 1 in Hellwarth 1999 // Eqn (4) in Baggio1997
    RHS= α/(3*sqrt(π)) * βred^(5/2) / sinh(βred/2) * (v^3/w^3) * K
    μ=RHS^-1 * (q)/(ω*mb)
    @printf("\n\tμ(Hellwarth1999,b=0)= %f m^2/Vs \t= %.2f cm^2/Vs",μ,μ*100^2)    
    #append!(Hμs,μ*100^2)
    
    
    @printf("\n\n")
    
    # Recycle previous results as next guess
    initial=[v,w] # Caution! Might cause weird sticking in local minima
end


α=2.395940
T: 10
WARNING: Method definition k(Any, Any, Any, Any) in module Main at In[16]:91 overwritten at In[16]:104.
.000000 β: 7.2e+21 βred: 11	 v= 3.07 w= 2.34	 M=0.717178 k=3.925527	
 Polaron Es: A= -1.600060 B= 2.665654 C= 0.902304 F= -1.967899
	μ(FHIP)= 66.070065 m^2/Vs 	= 660700.65 cm^2/Vs
	μ(Kadanoff)= 475.628885 m^2/Vs 	= 4756288.85 cm^2/Vs
	μ(Hellwarth1999)= 65.805034 m^2/Vs 	= 658050.34 cm^2/Vs
	μ(Hellwarth1999,b=0)= 65.805034 m^2/Vs 	= 658050.34 cm^2/Vs

T: 20.000000 β: 3.6e+21 βred: 5.4	 v= 3.05 w= 2.19	 M=0.936635 k=4.507233	
 Polaron Es: A= -2.084111 B= 2.802278 C= 0.972966 F= -1.691132
	μ(FHIP)= 0.536442 m^2/Vs 	= 5364.42 cm^2/Vs
	μ(Kadanoff)= 1.930883 m^2/Vs 	= 19308.83 cm^2/Vs
	μ(Hellwarth1999)= 0.549768 m^2/Vs 	= 5497.68 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.549774 m^2/Vs 	= 5497.74 cm^2/Vs

T: 30.000000 β: 2.4e+21 βred: 3.6	 v= 3.40 w= 2.38	 M=1.038341 k=5.897853	
 Polaron Es: A= -2.532044 B= 2.991060 C= 1.087716 F= -1.546732
	μ(FHIP)= 0.123011 m^2/Vs 	= 1230.11 cm^2/Vs
	μ(Kadanoff)= 0.295180 m^2/Vs 	= 2951.80 cm^2/Vs
	μ(Hellwarth1999)= 0.125538 m^2/Vs 	= 1255.38 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.125556 m^2/Vs 	= 1255.56 cm^2/Vs

T: 40.000000 β: 1.8e+21 βred: 2.7	 v= 3.88 w= 2.71	 M=1.043141 k=7.670766	
 Polaron Es: A= -2.923283 B= 3.206224 C= 1.200633 F= -1.483573
	μ(FHIP)= 0.064106 m^2/Vs 	= 641.06 cm^2/Vs
	μ(Kadanoff)= 0.115372 m^2/Vs 	= 1153.72 cm^2/Vs
	μ(Hellwarth1999)= 0.062468 m^2/Vs 	= 624.68 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.062493 m^2/Vs 	= 624.93 cm^2/Vs

T: 50.000000 β: 1.4e+21 βred: 2.2	 v= 4.43 w= 3.14	 M=0.993887 k=9.778537	
 Polaron Es: A= -3.272166 B= 3.428589 C= 1.309852 F= -1.466276
	μ(FHIP)= 0.046323 m^2/Vs 	= 463.23 cm^2/Vs
	μ(Kadanoff)= 0.066695 m^2/Vs 	= 666.95 cm^2/Vs
	μ(Hellwarth1999)= 0.041834 m^2/Vs 	= 418.34 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.041860 m^2/Vs 	= 418.60 cm^2/Vs

T: 60.000000 β: 1.2e+21 βred: 1.8	 v= 5.01 w= 3.60	 M=0.932777 k=12.104642	
 Polaron Es: A= -3.583400 B= 3.648868 C= 1.410942 F= -1.476410
	μ(FHIP)= 0.039117 m^2/Vs 	= 391.17 cm^2/Vs
	μ(Kadanoff)= 0.046934 m^2/Vs 	= 469.34 cm^2/Vs
	μ(Hellwarth1999)= 0.032315 m^2/Vs 	= 323.15 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.032341 m^2/Vs 	= 323.41 cm^2/Vs

T: 70.000000 β: 1e+21 βred: 1.5	 v= 5.59 w= 4.08	 M=0.875977 k=14.575977	
 Polaron Es: A= -3.861992 B= 3.863229 C= 1.503309 F= -1.504546
	μ(FHIP)= 0.035834 m^2/Vs 	= 358.34 cm^2/Vs
	μ(Kadanoff)= 0.036852 m^2/Vs 	= 368.52 cm^2/Vs
	μ(Hellwarth1999)= 0.026984 m^2/Vs 	= 269.84 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.027010 m^2/Vs 	= 270.10 cm^2/Vs

T: 80.000000 β: 9.1e+20 βred: 1.3	 v= 6.20 w= 4.60	 M=0.818309 k=17.284999	
 Polaron Es: A= -4.117442 B= 4.070393 C= 1.592655 F= -1.545606
	μ(FHIP)= 0.034525 m^2/Vs 	= 345.25 cm^2/Vs
	μ(Kadanoff)= 0.031068 m^2/Vs 	= 310.68 cm^2/Vs
	μ(Hellwarth1999)= 0.023628 m^2/Vs 	= 236.28 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.023653 m^2/Vs 	= 236.53 cm^2/Vs

T: 90.000000 β: 8e+20 βred: 1.2	 v= 6.81 w= 5.12	 M=0.768311 k=20.137051	
 Polaron Es: A= -4.349941 B= 4.270106 C= 1.676505 F= -1.596670
	μ(FHIP)= 0.034197 m^2/Vs 	= 341.97 cm^2/Vs
	μ(Kadanoff)= 0.027353 m^2/Vs 	= 273.53 cm^2/Vs
	μ(Hellwarth1999)= 0.021319 m^2/Vs 	= 213.19 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.021344 m^2/Vs 	= 213.44 cm^2/Vs

T: 100.000000 β: 7.2e+20 βred: 1.1	 v= 7.44 w= 5.67	 M=0.721276 k=23.206994	
 Polaron Es: A= -4.564918 B= 4.462616 C= 1.758244 F= -1.655942
	μ(FHIP)= 0.034537 m^2/Vs 	= 345.37 cm^2/Vs
	μ(Kadanoff)= 0.024862 m^2/Vs 	= 248.62 cm^2/Vs
	μ(Hellwarth1999)= 0.019640 m^2/Vs 	= 196.40 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.019664 m^2/Vs 	= 196.64 cm^2/Vs

T: 110.000000 β: 6.6e+20 βred: 0.98	 v= 8.04 w= 6.19	 M=0.685518 k=26.277638	
 Polaron Es: A= -4.758244 B= 4.648258 C= 1.832242 F= -1.722255
	μ(FHIP)= 0.035129 m^2/Vs 	= 351.29 cm^2/Vs
	μ(Kadanoff)= 0.022990 m^2/Vs 	= 229.90 cm^2/Vs
	μ(Hellwarth1999)= 0.018337 m^2/Vs 	= 183.37 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.018361 m^2/Vs 	= 183.61 cm^2/Vs

T: 120.000000 β: 6e+20 βred: 0.9	 v= 8.82 w= 6.90	 M=0.632726 k=30.148556	
 Polaron Es: A= -4.952218 B= 4.827589 C= 1.919424 F= -1.794795
	μ(FHIP)= 0.036540 m^2/Vs 	= 365.40 cm^2/Vs
	μ(Kadanoff)= 0.021920 m^2/Vs 	= 219.20 cm^2/Vs
	μ(Hellwarth1999)= 0.017374 m^2/Vs 	= 173.74 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.017394 m^2/Vs 	= 173.94 cm^2/Vs

T: 130.000000 β: 5.6e+20 βred: 0.83	 v= 9.27 w= 7.28	 M=0.621159 k=32.937989	
 Polaron Es: A= -5.102904 B= 5.001018 C= 1.974882 F= -1.872996
	μ(FHIP)= 0.037157 m^2/Vs 	= 371.57 cm^2/Vs
	μ(Kadanoff)= 0.020576 m^2/Vs 	= 205.76 cm^2/Vs
	μ(Hellwarth1999)= 0.016470 m^2/Vs 	= 164.70 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.016493 m^2/Vs 	= 164.93 cm^2/Vs

T: 140.000000 β: 5.2e+20 βred: 0.77	 v= 9.88 w= 7.82	 M=0.595431 k=36.398685	
 Polaron Es: A= -5.253834 B= 5.169039 C= 2.041192 F= -1.956397
	μ(FHIP)= 0.038368 m^2/Vs 	= 383.68 cm^2/Vs
	μ(Kadanoff)= 0.019729 m^2/Vs 	= 197.29 cm^2/Vs
	μ(Hellwarth1999)= 0.015763 m^2/Vs 	= 157.63 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.015786 m^2/Vs 	= 157.86 cm^2/Vs

T: 150.000000 β: 4.8e+20 βred: 0.72	 v= 10.55 w= 8.43	 M=0.566543 k=40.248407	
 Polaron Es: A= -5.398142 B= 5.332062 C= 2.110736 F= -2.044656
	μ(FHIP)= 0.039870 m^2/Vs 	= 398.70 cm^2/Vs
	μ(Kadanoff)= 0.019134 m^2/Vs 	= 191.34 cm^2/Vs
	μ(Hellwarth1999)= 0.015179 m^2/Vs 	= 151.79 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.015200 m^2/Vs 	= 152.00 cm^2/Vs

T: 160.000000 β: 4.5e+20 βred: 0.67	 v= 11.11 w= 8.93	 M=0.548981 k=43.775981	
 Polaron Es: A= -5.522658 B= 5.490427 C= 2.169721 F= -2.137490
	μ(FHIP)= 0.041172 m^2/Vs 	= 411.72 cm^2/Vs
	μ(Kadanoff)= 0.018525 m^2/Vs 	= 185.25 cm^2/Vs
	μ(Hellwarth1999)= 0.014645 m^2/Vs 	= 146.45 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.014667 m^2/Vs 	= 146.67 cm^2/Vs

T: 170.000000 β: 4.3e+20 βred: 0.64	 v= 11.78 w= 9.54	 M=0.525541 k=47.842191	
 Polaron Es: A= -5.644525 B= 5.644493 C= 2.234695 F= -2.234663
	μ(FHIP)= 0.042810 m^2/Vs 	= 428.10 cm^2/Vs
	μ(Kadanoff)= 0.018128 m^2/Vs 	= 181.28 cm^2/Vs
	μ(Hellwarth1999)= 0.014200 m^2/Vs 	= 142.00 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.014221 m^2/Vs 	= 142.21 cm^2/Vs

T: 180.000000 β: 4e+20 βred: 0.6	 v= 11.92 w= 9.61	 M=0.539012 k=49.793790	
 Polaron Es: A= -5.719835 B= 5.794564 C= 2.261224 F= -2.335952
	μ(FHIP)= 0.043209 m^2/Vs 	= 432.09 cm^2/Vs
	μ(Kadanoff)= 0.017281 m^2/Vs 	= 172.81 cm^2/Vs
	μ(Hellwarth1999)= 0.013693 m^2/Vs 	= 136.93 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.013720 m^2/Vs 	= 137.20 cm^2/Vs

T: 190.000000 β: 3.8e+20 βred: 0.57	 v= 13.02 w= 10.66	 M=0.491475 k=55.867270	
 Polaron Es: A= -5.851908 B= 5.940951 C= 2.352199 F= -2.441241
	μ(FHIP)= 0.045977 m^2/Vs 	= 459.77 cm^2/Vs
	μ(Kadanoff)= 0.017420 m^2/Vs 	= 174.20 cm^2/Vs
	μ(Hellwarth1999)= 0.013428 m^2/Vs 	= 134.28 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.013448 m^2/Vs 	= 134.48 cm^2/Vs

T: 200.000000 β: 3.6e+20 βred: 0.54	 v= 13.67 w= 11.25	 M=0.474993 k=60.157077	
 Polaron Es: A= -5.944025 B= 6.083832 C= 2.410509 F= -2.550316
	μ(FHIP)= 0.047689 m^2/Vs 	= 476.89 cm^2/Vs
	μ(Kadanoff)= 0.017165 m^2/Vs 	= 171.65 cm^2/Vs
	μ(Hellwarth1999)= 0.013103 m^2/Vs 	= 131.03 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.013122 m^2/Vs 	= 131.22 cm^2/Vs

T: 210.000000 β: 3.4e+20 βred: 0.51	 v= 14.32 w= 11.85	 M=0.459763 k=64.560009	
 Polaron Es: A= -6.027889 B= 6.223455 C= 2.467490 F= -2.663056
	μ(FHIP)= 0.049438 m^2/Vs 	= 494.38 cm^2/Vs
	μ(Kadanoff)= 0.016947 m^2/Vs 	= 169.47 cm^2/Vs
	μ(Hellwarth1999)= 0.012807 m^2/Vs 	= 128.07 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.012826 m^2/Vs 	= 128.26 cm^2/Vs

T: 220.000000 β: 3.3e+20 βred: 0.49	 v= 14.87 w= 12.35	 M=0.449844 k=68.632806	
 Polaron Es: A= -6.098157 B= 6.360046 C= 2.517446 F= -2.779335
	μ(FHIP)= 0.051020 m^2/Vs 	= 510.20 cm^2/Vs
	μ(Kadanoff)= 0.016695 m^2/Vs 	= 166.95 cm^2/Vs
	μ(Hellwarth1999)= 0.012521 m^2/Vs 	= 125.21 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.012540 m^2/Vs 	= 125.40 cm^2/Vs

T: 230.000000 β: 3.1e+20 βred: 0.47	 v= 15.53 w= 12.96	 M=0.436400 k=73.257624	
 Polaron Es: A= -6.167166 B= 6.493767 C= 2.572436 F= -2.899037
	μ(FHIP)= 0.052834 m^2/Vs 	= 528.34 cm^2/Vs
	μ(Kadanoff)= 0.016537 m^2/Vs 	= 165.37 cm^2/Vs
	μ(Hellwarth1999)= 0.012271 m^2/Vs 	= 122.71 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.012290 m^2/Vs 	= 122.90 cm^2/Vs

T: 240.000000 β: 3e+20 βred: 0.45	 v= 16.17 w= 13.55	 M=0.424565 k=77.910052	
 Polaron Es: A= -6.228164 B= 6.624797 C= 2.625423 F= -3.022057
	μ(FHIP)= 0.054638 m^2/Vs 	= 546.38 cm^2/Vs
	μ(Kadanoff)= 0.016389 m^2/Vs 	= 163.89 cm^2/Vs
	μ(Hellwarth1999)= 0.012037 m^2/Vs 	= 120.37 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.012056 m^2/Vs 	= 120.56 cm^2/Vs

T: 250.000000 β: 2.9e+20 βred: 0.43	 v= 16.77 w= 14.10	 M=0.414700 k=82.486734	
 Polaron Es: A= -6.280214 B= 6.753264 C= 2.675246 F= -3.148296
	μ(FHIP)= 0.056398 m^2/Vs 	= 563.98 cm^2/Vs
	μ(Kadanoff)= 0.016240 m^2/Vs 	= 162.40 cm^2/Vs
	μ(Hellwarth1999)= 0.011816 m^2/Vs 	= 118.16 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.011834 m^2/Vs 	= 118.34 cm^2/Vs

T: 260.000000 β: 2.8e+20 βred: 0.42	 v= 17.43 w= 14.71	 M=0.403956 k=87.375205	
 Polaron Es: A= -6.328396 B= 6.879325 C= 2.726733 F= -3.277663
	μ(FHIP)= 0.058261 m^2/Vs 	= 582.61 cm^2/Vs
	μ(Kadanoff)= 0.016131 m^2/Vs 	= 161.31 cm^2/Vs
	μ(Hellwarth1999)= 0.011614 m^2/Vs 	= 116.14 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.011631 m^2/Vs 	= 116.31 cm^2/Vs

T: 270.000000 β: 2.7e+20 βred: 0.4	 v= 18.01 w= 15.24	 M=0.396123 k=91.995729	
 Polaron Es: A= -6.366352 B= 7.003106 C= 2.773317 F= -3.410072
	μ(FHIP)= 0.060010 m^2/Vs 	= 600.10 cm^2/Vs
	μ(Kadanoff)= 0.016000 m^2/Vs 	= 160.00 cm^2/Vs
	μ(Hellwarth1999)= 0.011417 m^2/Vs 	= 114.17 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.011434 m^2/Vs 	= 114.34 cm^2/Vs

T: 280.000000 β: 2.6e+20 βred: 0.39	 v= 18.61 w= 15.80	 M=0.387824 k=96.831432	
 Polaron Es: A= -6.399689 B= 7.124698 C= 2.820433 F= -3.545443
	μ(FHIP)= 0.061829 m^2/Vs 	= 618.29 cm^2/Vs
	μ(Kadanoff)= 0.015896 m^2/Vs 	= 158.96 cm^2/Vs
	μ(Hellwarth1999)= 0.011235 m^2/Vs 	= 112.35 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.011252 m^2/Vs 	= 112.52 cm^2/Vs

T: 290.000000 β: 2.5e+20 βred: 0.37	 v= 19.24 w= 16.38	 M=0.379487 k=101.858886	
 Polaron Es: A= -6.428601 B= 7.244256 C= 2.868046 F= -3.683701
	μ(FHIP)= 0.063694 m^2/Vs 	= 636.94 cm^2/Vs
	μ(Kadanoff)= 0.015811 m^2/Vs 	= 158.11 cm^2/Vs
	μ(Hellwarth1999)= 0.011064 m^2/Vs 	= 110.64 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.011081 m^2/Vs 	= 110.81 cm^2/Vs

T: 300.000000 β: 2.4e+20 βred: 0.36	 v= 19.83 w= 16.93	 M=0.372649 k=106.750401	
 Polaron Es: A= -6.449669 B= 7.361839 C= 2.912604 F= -3.824774
	μ(FHIP)= 0.065503 m^2/Vs 	= 655.03 cm^2/Vs
	μ(Kadanoff)= 0.015718 m^2/Vs 	= 157.18 cm^2/Vs
	μ(Hellwarth1999)= 0.010899 m^2/Vs 	= 108.99 cm^2/Vs
	μ(Hellwarth1999,b=0)= 0.010916 m^2/Vs 	= 109.16 cm^2/Vs


In [17]:
using Plots
default(size=(600,400))


WARNING: using Plots.w in module Main conflicts with an existing identifier.

In [18]:
plot(Ts,Ms,label="Mass",marker=2,xlab="Temperature (K)",ylab="Mass of Phonon cloud (electron masses)",ylim=(0,1.2))
#plot!([0],[0])
#plot!(Ts,ks,label="Spring Consts",marker=2)


Out[18]:

In [19]:
plot(Ts,ks,label="Spring Consts",marker=2, xlab="Temperature (K)",ylab="Some internal spring const",)
plot!([0],[0])


Out[19]:

In [20]:
plot(Ts,As,label="A",marker=2, xlab="Temperature (K)",ylab="Energy ?")
plot!(Ts,Bs,label="B",marker=2)
plot!(Ts,Cs,label="C",marker=2)
#plot!(Ts,Fs,label="F",marker=2)


plot!([0],[0])


Out[20]:

In [21]:
using Plots

default(size=(600,400))
plot(Ts,Kμs,label="Kadanoff Polaron mobility",marker=2,xlab="Temperature (K)",ylab="Mobility (cm^2/Vs)",ylims=(0,1000))
plot!(Ts,FHIPμs,label="FHIP",marker=2)
plot!(Ts,Hμs,label="Hellwarth1999",marker=2)
#plot!([0],[0])


Out[21]:

In [22]:
# Milot/Herz 2015 Time-Resolved-Microwave-Conductivity mobilities
# Data from table in SI of: DOI: 10.1002/adfm.201502340
# Absolute values possibly dodge due to unknown yield of charge carriers; but hopefully trend A.OK!
Milot= [
8 184
40 321
80 143
120 62
140 40
160 52
180 44
205 41
230 39
265 26
295 35
310 24
320 24
330 19
340 16
355 15 
]

# IV estimated mobilities (?!) from large single crystals, assumed ambient T
# Nature Communications 6, Article number: 7586 (2015)
# doi:10.1038/ncomms8586
Saidaminov = 
[ 300 67.2 ]


#Semonin2016,
#  doi = {10.1021/acs.jpclett.6b01308},
Semonin = 
[ 300 115 ] # +- 15 cm^2/Vs, holes+electrons


Out[22]:
1×2 Array{Int64,2}:
 300  115

In [23]:
#default(size=(1200,800))

plot(Milot[:,1],Milot[:,2],label="Milot T-dep TRMC Polycrystal",
xlab="Temperature (K)",ylab="Mobility (cm^2/Vs)",marker=2, ylims=(0,400) )
plot!(Saidaminov[:,1],Saidaminov[:,2],label="Saidaminov JV Single Crystal", marker=6)
plot!(Semonin[:,1],Semonin[:,2],label="Semonin Single Crystal TRMC", marker=6)
plot!(Ts,Kμs,label="Kadanoff Polaron mobility",marker=2)
plot!(Ts,Hμs,label="Hellwarth1999 Polaron mobility",marker=2)
#plot!([0],[0])


Out[23]:

In [24]:
plot!(yscale=(:log))

In [25]:
default(size=(1200,800))

In [26]:
# OK, now Ref 9 in  Hellwarth 1999 -
# Schultz Physical Review Volume 116, Number 3, Nov 1959
# Slow Electrons in Polar Crystals: Self-Energy,  Mass,  and Mobility

const MassElectron = 9.10938188e-31;                          # kg

# 300 K fit from above
v=19.83 
w= 16.93

# Guess at What Hellwarth 1999 used: 
#  "Using these values we estimate a room-temperature polaron radius of approx 0.6 nm for BiSiO"
# So they're using an omega=500 cm^-1 = 62 meV, so βred=2.5
# Not sure what alpha they are using; (43) gives it in terms of phonon energies + reduced masses
# Best guess for now - alpha=3, βred=2.5, so from Table III
v=4.10 
w=2.55

m=1.0 #MassElectron
# Eqn (2.4), Shultz1959
μ=m*(v^2-w^2)/v^2
println("Reduced mass: ")
rf=(3/2*μ*v)^(1/2)
println("Feynman Polaron Radius: $rf , electron-mass unit")
println("Assuming Bohr, that's ",rf*5.2918e-11," m")
rf=(3/2*μ*v*MassElectron)^(1/2)
println("Feynman Polaron Radius: $rf, SI")


# Units?!? Bohr?


Reduced mass: 0.6131766805472932
Feynman Polaron Radius: 1.941915699860798 , electron-mass unit
Assuming Bohr, that's 1.027622950052337e-10 m
Feynman Polaron Radius: 1.8534241915856385e-15, SI

In [27]:
# ((freq THz)) ((IR Activity / e^2 amu^-1))
# These data from MAPbI3-Cubic_PeakTable.csv
# https://github.com/WMD-group/Phonons/tree/master/2015_MAPbI3/SimulatedSpectra
# Data published in Brivio2015 (PRB)
# https://doi.org/10.1103/PhysRevB.92.144308
MAPI= [
96.20813558773261 0.4996300522819191
93.13630357703363 1.7139631746083817
92.87834578121567 0.60108592692181
92.4847918585963 0.0058228799414729
92.26701437594754 0.100590086574602
89.43972834606603 0.006278895133832249
46.89209141511332 0.2460894564364346
46.420949316788 0.14174282581124137
44.0380222871706 0.1987196948553428
42.89702947649343 0.011159939465770681
42.67180170168193 0.02557751102757614
41.46971205834201 0.012555230726601503
37.08982543385215 0.00107488277468418
36.53555265689563 0.02126940080871224
30.20608114002676 0.009019481779712388
27.374810898415028 0.03994453721421388
26.363055017011728 0.05011922682554448
9.522966890022039 0.00075631870522737
4.016471586720514 0.08168931020200264
3.887605410774121 0.006311654262282101
3.5313112232401513 0.05353548710183397
2.755392921480459 0.021303020776321225
2.4380741812443247 0.23162784335484837
2.2490917637719408 0.2622203718355982
2.079632190634424 0.23382298607799906
2.0336707697261187 0.0623239656843172
1.5673011873879714 0.0367465760261409
1.0188379384951798 0.0126328938653956
1.0022960504442775 0.006817361620021601
0.9970130778462072 0.0103757951973341
0.9201781906386209 0.01095811116040592
0.800604081794174 0.0016830270365341532
0.5738689505255512 0.00646428491253749
#0.022939578929507105 8.355742795827834e-05   # Acoustic modes!
#0.04882611767873102 8.309858592685e-06
#0.07575149723846182 2.778248540373041e-05
]

# Change to SI, but not actually needed as units cancel everywhere

#MAPI_SI = [ MAPI_orig[:,1].*10^12*2*π MAPI_orig[:,2].*1 ]

# OK, black magic here - perhaps our units of oscillator strength are not what we need? maybe already effectively 'squared'?
#MAPI = [ MAPI[:,1] MAPI[:,2].^0.5]

MAPI_low=MAPI[19:33,:] # Just inorganic components, everything below 10THz; modes 3-18


Out[27]:
15×2 Array{Float64,2}:
 4.01647   0.0816893 
 3.88761   0.00631165
 3.53131   0.0535355 
 2.75539   0.021303  
 2.43807   0.231628  
 2.24909   0.26222   
 2.07963   0.233823  
 2.03367   0.062324  
 1.5673    0.0367466 
 1.01884   0.0126329 
 1.0023    0.00681736
 0.997013  0.0103758 
 0.920178  0.0109581 
 0.800604  0.00168303
 0.573869  0.00646428

In [28]:
# Hellwarth Table II - BiSiO frequencies
HellwarthII = [
    106.23 8.86
    160.51 9.50
    180.33 20.85
    206.69 10.05
    252.76 27.00
    369.64 61.78
    501.71 52.87
    553.60 86.18
    585.36 75.41
    607.29 98.15
    834.53 89.36
]


Out[28]:
11×2 Array{Float64,2}:
 106.23   8.86
 160.51   9.5 
 180.33  20.85
 206.69  10.05
 252.76  27.0 
 369.64  61.78
 501.71  52.87
 553.6   86.18
 585.36  75.41
 607.29  98.15
 834.53  89.36

In [29]:
# Most simple scheme
# Hellwarth (58), assuming further typo on LHS, actually should be W_e
function HellwarthBscheme(LO)
    H58 = sum( (LO[:,2].^2)./ LO[:,1].^2 )
    println("Hellwarth (58) summation: ",H58)

    H59 = sum( LO[:,2].^2 ) # sum of total ir activity squarred
    println("Hellwarth (59) summation (total ir activity ^2): ", H59)
    println("Hellwarth (59) W_e (total ir activity ): ", sqrt(H59))


    omega = sqrt(H59 / H58)
    println("Hellwarth (61) Omega (freq): ",omega)
end

HellwarthBscheme(HellwarthII)
println(" should agree with values given in Hellwarth(60) W_e=196.9 cm^-1 and Hellwarth(61) Ω_e=500 cm^-1")
println("\t MAPI: (all values)")
HellwarthBscheme(MAPI)
println("\t MAPI: (low-frequency, non molecular IR)")
HellwarthBscheme(MAPI_low)


Hellwarth (58) summation: 0.15505835776181887
Hellwarth (59) summation (total ir activity ^2): 38777.7725
Hellwarth (59) W_e (total ir activity ): 196.92072643579192
Hellwarth (61) Omega (freq): 500.08501275972833
 should agree with values given in Hellwarth(60) W_e=196.9 cm^-1 and Hellwarth(61) Ω_e=500 cm^-1
	 MAPI: (all values)
Hellwarth (58) summation: 0.038509373484332976
Hellwarth (59) summation (total ir activity ^2): 3.8773458912320917
Hellwarth (59) W_e (total ir activity ): 1.9690977353173944
Hellwarth (61) Omega (freq): 10.034229876494392
	 MAPI: (low-frequency, non molecular IR)
Hellwarth (58) summation: 0.03803673767058733
Hellwarth (59) summation (total ir activity ^2): 0.19283002835623678
Hellwarth (59) W_e (total ir activity ): 0.4391241605243747
Hellwarth (61) Omega (freq): 2.251571287857919

In [30]:
# Check this though, take the low-freq components and:
MAPI_low=[
9.522966890022039 0.00075631870522737
4.016471586720514 0.08168931020200264
3.887605410774121 0.006311654262282101
3.5313112232401513 0.05353548710183397
2.755392921480459 0.021303020776321225
2.4380741812443247 0.23162784335484837
2.2490917637719408 0.2622203718355982
2.079632190634424 0.23382298607799906
2.0336707697261187 0.0623239656843172
1.5673011873879714 0.0367465760261409
1.0188379384951798 0.0126328938653956
1.0022960504442775 0.006817361620021601
0.9970130778462072 0.0103757951973341
0.9201781906386209 0.01095811116040592
0.800604081794174 0.0016830270365341532
0.5738689505255512 0.00646428491253749
#0.022939578929507105 8.355742795827834e-05
#0.04882611767873102 8.309858592685e-06
#0.07575149723846182 2.778248540373041e-05
]
H58 = sum( (MAPI_low[:,2].^2)./ MAPI_low[:,1].^2 )
println("Hellwarth (58) summation: ",H58)

H59 = sum( MAPI_low[:,2].^2 ) # sum of total ir activity squarred
println("Hellwarth (59) summation (total ir activity ^2): ", H59)

omega = sqrt(H59 / H58)
println("Hellwarth (61) Omega (Thz): ",omega)

# That feels like it should be the right answer... for whatever reason the Hellwarth 
# prescription isn't cancelling out the high-frequency components as you would expect 
# it to from an integration across the Lorentz oscillators


Hellwarth (58) summation: 0.03803674397820172
Hellwarth (59) summation (total ir activity ^2): 0.19283060037422062
Hellwarth (61) Omega (Thz): 2.2515744407380125

In [ ]:


In [31]:
# More complex scheme, involving thermodynamic Beta
# Hellwarth(50), RHS
const hbar = const ħ = 1.05457162825e-34;          # kg m2 / s 
const eV = const q = const ElectronVolt = 1.602176487e-19;                         # kg m2 / s2 
const me=MassElectron = 9.10938188e-31;                          # kg
const Boltzmann = const kB =  1.3806504e-23;                  # kg m2 / K s2 

function HellwarthAscheme(LO,T=295)
    
    β=LO[:,1].*2*pi*1E12*ħ/(kB*T) #assuming units of THz
    H50 = sum( ((LO[:,2].^2).*coth(β))./LO[:,1] )
    println("Hellwarth (50) summation: ",H50)

    H51= sum( LO[:,2].^2 ) # sum of total ir activity squarred
    println("Hellwarth (51) summation (total ir activity ^2): ", H51)
    println("Hellwarth (51) W_e (total ir activity ): ", sqrt(H51))

    # OK; so this is deriving Omega / coth(Beta/2)
    omegacoth=H51/H50
    println("omegacoth: ",omegacoth)

    # NOT FINISHED - need to somehow decouple Omega from both sides of the eqn. 
    for freq in 0.25:0.25:20
        pseudo_omega=omegacoth*coth(freq * 2*pi*1E12*ħ/(2*kB*T))
        println("freq: $freq pseudo-omega: $pseudo_omega")
    end
end

HellwarthAscheme(HellwarthII)
HellwarthAscheme( [HellwarthII[:,1].*0.02998 HellwarthII[:,2]] ) # convert data to Thz
println(" should agree with values given in Hellwarth\n TableII: H50sum= 91.34 cm^-1, \n W_e=196.9 cm^-1 and Hellwarth(53) Ω_e=504 cm^-1")

println("\t MAPI: (all values)")
HellwarthAscheme(MAPI)
println("\t MAPI: (low-frequency, non molecular IR)")
HellwarthAscheme(MAPI_low)


Hellwarth (50) summation: 71.54392838926714
Hellwarth (51) summation (total ir activity ^2): 38777.7725
Hellwarth (51) W_e (total ir activity ): 196.92072643579192
omegacoth: 542.0134646368867
freq: 0.25 pseudo-omega: 26656.90416473002
freq: 0.5 pseudo-omega: 13333.9624483481
freq: 0.75 pseudo-omega: 8895.429577943587
freq: 1.0 pseudo-omega: 6677.997401735134
freq: 1.25 pseudo-omega: 5349.003805836801
freq: 1.5 pseudo-omega: 4464.227684345397
freq: 1.75 pseudo-omega: 3833.2882211840815
freq: 2.0 pseudo-omega: 3360.9947109117875
freq: 2.25 pseudo-omega: 2994.4631659655356
freq: 2.5 pseudo-omega: 2701.962959828391
freq: 2.75 pseudo-omega: 2463.3016650751006
freq: 3.0 pseudo-omega: 2265.0174726122787
freq: 3.25 pseudo-omega: 2097.790494542239
freq: 3.5 pseudo-omega: 1954.9635088340199
freq: 3.75 pseudo-omega: 1831.6544062868716
freq: 4.0 pseudo-omega: 1724.2014700285679
freq: 4.25 pseudo-omega: 1629.8044388530136
freq: 4.5 pseudo-omega: 1546.2852162327458
freq: 4.75 pseudo-omega: 1471.9241450161726
freq: 5.0 pseudo-omega: 1405.3453998152925
freq: 5.25 pseudo-omega: 1345.4351245158227
freq: 5.5 pseudo-omega: 1291.281896002675
freq: 5.75 pseudo-omega: 1242.1327191612293
freq: 6.0 pseudo-omega: 1197.3600231946377
freq: 6.25 pseudo-omega: 1156.4365788844073
freq: 6.5 pseudo-omega: 1118.9162042284506
freq: 6.75 pseudo-omega: 1084.4187577620928
freq: 7.0 pseudo-omega: 1052.6183476373349
freq: 7.25 pseudo-omega: 1023.2339802390275
freq: 7.5 pseudo-omega: 996.022079108938
freq: 7.75 pseudo-omega: 970.7704518465106
freq: 8.0 pseudo-omega: 947.2933882379277
freq: 8.25 pseudo-omega: 925.4276496525757
freq: 8.5 pseudo-omega: 905.029166207444
freq: 8.75 pseudo-omega: 885.9703001427465
freq: 9.0 pseudo-omega: 868.1375653091416
freq: 9.25 pseudo-omega: 851.4297164723017
freq: 9.5 pseudo-omega: 835.7561403078416
freq: 9.75 pseudo-omega: 821.0354939344379
freq: 10.0 pseudo-omega: 807.1945476634695
freq: 10.25 pseudo-omega: 794.1671970965822
freq: 10.5 pseudo-omega: 781.8936163442808
freq: 10.75 pseudo-omega: 770.3195293902489
freq: 11.0 pseudo-omega: 759.3955808034817
freq: 11.25 pseudo-omega: 749.0767903422612
freq: 11.5 pseudo-omega: 739.3220786820568
freq: 11.75 pseudo-omega: 730.0938536727866
freq: 12.0 pseudo-omega: 721.3576482967053
freq: 12.25 pseudo-omega: 713.0818029396905
freq: 12.5 pseudo-omega: 705.2371857707358
freq: 12.75 pseudo-omega: 697.7969459978927
freq: 13.0 pseudo-omega: 690.7362955738762
freq: 13.25 pseudo-omega: 684.032315592804
freq: 13.5 pseudo-omega: 677.6637841764465
freq: 13.75 pseudo-omega: 671.61102311412
freq: 14.0 pseudo-omega: 665.8557609112662
freq: 14.25 pseudo-omega: 660.3810102309493
freq: 14.5 pseudo-omega: 655.1709579906036
freq: 14.75 pseudo-omega: 650.210866612049
freq: 15.0 pseudo-omega: 645.4869851231164
freq: 15.25 pseudo-omega: 640.986468979998
freq: 15.5 pseudo-omega: 636.697307625414
freq: 15.75 pseudo-omega: 632.6082589228158
freq: 16.0 pseudo-omega: 628.7087897143648
freq: 16.25 pseudo-omega: 624.9890218430739
freq: 16.5 pseudo-omega: 621.4396830594907
freq: 16.75 pseudo-omega: 618.0520623025624
freq: 17.0 pseudo-omega: 614.817968904409
freq: 17.25 pseudo-omega: 611.7296953209749
freq: 17.5 pseudo-omega: 608.7799830360609
freq: 17.75 pseudo-omega: 605.9619913259941
freq: 18.0 pseudo-omega: 603.2692686069717
freq: 18.25 pseudo-omega: 600.6957261176154
freq: 18.5 pseudo-omega: 598.2356137160535
freq: 18.75 pseudo-omega: 595.8834975944097
freq: 19.0 pseudo-omega: 593.634239734363
freq: 19.25 pseudo-omega: 591.4829789457795
freq: 19.5 pseudo-omega: 589.4251133466443
freq: 19.75 pseudo-omega: 587.4562841569013
freq: 20.0 pseudo-omega: 585.5723606915645
Hellwarth (50) summation: 2511.0114544292537
Hellwarth (51) summation (total ir activity ^2): 38777.7725
Hellwarth (51) W_e (total ir activity ): 196.92072643579192
omegacoth: 15.44308865321926
freq: 0.25 pseudo-omega: 759.5105308169489
freq: 0.5 pseudo-omega: 379.9122671730811
freq: 0.75 pseudo-omega: 253.44925272784945
freq: 1.0 pseudo-omega: 190.27000735129914
freq: 1.25 pseudo-omega: 152.40422124067513
freq: 1.5 pseudo-omega: 127.19511302858118
freq: 1.75 pseudo-omega: 109.21833809561457
freq: 2.0 pseudo-omega: 95.76171565845532
freq: 2.25 pseudo-omega: 85.31847114127626
freq: 2.5 pseudo-omega: 76.98453313202958
freq: 2.75 pseudo-omega: 70.18457746038163
freq: 3.0 pseudo-omega: 64.53504924287365
freq: 3.25 pseudo-omega: 59.770405528209324
freq: 3.5 pseudo-omega: 55.700968242473685
freq: 3.75 pseudo-omega: 52.18763596084807
freq: 4.0 pseudo-omega: 49.12607876909566
freq: 4.25 pseudo-omega: 46.436511413012724
freq: 4.5 pseudo-omega: 44.05687540150362
freq: 4.75 pseudo-omega: 41.93817413286407
freq: 5.0 pseudo-omega: 40.04120748601867
freq: 5.25 pseudo-omega: 38.3342393882643
freq: 5.5 pseudo-omega: 36.791301503230684
freq: 5.75 pseudo-omega: 35.3909394371265
freq: 6.0 pseudo-omega: 34.11527239531433
freq: 6.25 pseudo-omega: 32.94927852300092
freq: 6.5 pseudo-omega: 31.8802451688164
freq: 6.75 pseudo-omega: 30.897341313380718
freq: 7.0 pseudo-omega: 29.991281621497656
freq: 7.25 pseudo-omega: 29.1540600018192
freq: 7.5 pseudo-omega: 28.378736455463873
freq: 7.75 pseudo-omega: 27.659265180496625
freq: 8.0 pseudo-omega: 26.9903549074511
freq: 8.25 pseudo-omega: 26.36735462891018
freq: 8.5 pseudo-omega: 25.78615949486414
freq: 8.75 pseudo-omega: 25.243132840601714
freq: 9.0 pseudo-omega: 24.735041210167388
freq: 9.25 pseudo-omega: 24.258999916682622
freq: 9.5 pseudo-omega: 23.812427198451537
freq: 9.75 pseudo-omega: 23.393005427943564
freq: 10.0 pseudo-omega: 22.99864813932859
freq: 10.25 pseudo-omega: 22.627471881086027
freq: 10.5 pseudo-omega: 22.27777208944484
freq: 10.75 pseudo-omega: 21.948002328040623
freq: 11.0 pseudo-omega: 21.63675635819802
freq: 11.25 pseudo-omega: 21.342752599465978
freq: 11.5 pseudo-omega: 21.064820616621144
freq: 11.75 pseudo-omega: 20.80188933127847
freq: 12.0 pseudo-omega: 20.55297670655993
freq: 12.25 pseudo-omega: 20.317180694344014
freq: 12.5 pseudo-omega: 20.093671268297015
freq: 12.75 pseudo-omega: 19.881683393622726
freq: 13.0 pseudo-omega: 19.680510807401966
freq: 13.25 pseudo-omega: 19.48950050243387
freq: 13.5 pseudo-omega: 19.308047823357885
freq: 13.75 pseudo-omega: 19.135592097105988
freq: 14.0 pseudo-omega: 18.97161273087246
freq: 14.25 pseudo-omega: 18.81562572016776
freq: 14.5 pseudo-omega: 18.66718051744671
freq: 14.75 pseudo-omega: 18.52585721851648
freq: 15.0 pseudo-omega: 18.39126402963738
freq: 15.25 pseudo-omega: 18.26303498309518
freq: 15.5 pseudo-omega: 18.14082787318293
freq: 15.75 pseudo-omega: 18.024322388095282
freq: 16.0 pseudo-omega: 17.91321841630198
freq: 16.25 pseudo-omega: 17.807234508606577
freq: 16.5 pseudo-omega: 17.70610647937596
freq: 16.75 pseudo-omega: 17.609586132399382
freq: 17.0 pseudo-omega: 17.51744009854775
freq: 17.25 pseudo-omega: 17.429448773892517
freq: 17.5 pseudo-omega: 17.345405348240845
freq: 17.75 pseudo-omega: 17.265114915176135
freq: 18.0 pseudo-omega: 17.188393655684436
freq: 18.25 pseudo-omega: 17.115068088315773
freq: 18.5 pseudo-omega: 17.04497437959277
freq: 18.75 pseudo-omega: 16.97795770905019
freq: 19.0 pseudo-omega: 16.913871683881197
freq: 19.25 pseudo-omega: 16.852577798688614
freq: 19.5 pseudo-omega: 16.7939449363018
freq: 19.75 pseudo-omega: 16.737848906029534
freq: 20.0 pseudo-omega: 16.684172016082588
 should agree with values given in Hellwarth
 TableII: H50sum= 91.34 cm^-1, 
 W_e=196.9 cm^-1 and Hellwarth(53) Ω_e=504 cm^-1
	 MAPI: (all values)
Hellwarth (50) summation: 0.28510941719956473
Hellwarth (51) summation (total ir activity ^2): 3.8773458912320917
Hellwarth (51) W_e (total ir activity ): 1.9690977353173944
omegacoth: 13.59950130485557
freq: 0.25 pseudo-omega: 668.8405853801448
freq: 0.5 pseudo-omega: 334.5585516711985
freq: 0.75 pseudo-omega: 223.19262166953519
freq: 1.0 pseudo-omega: 167.5556795246051
freq: 1.25 pseudo-omega: 134.2102899341966
freq: 1.5 pseudo-omega: 112.01063106264368
freq: 1.75 pseudo-omega: 96.17991353924133
freq: 2.0 pseudo-omega: 84.32973521659424
freq: 2.25 pseudo-omega: 75.13319943107336
freq: 2.5 pseudo-omega: 67.79416231379894
freq: 2.75 pseudo-omega: 61.80598157443247
freq: 3.0 pseudo-omega: 56.83089089852666
freq: 3.25 pseudo-omega: 52.635047704863325
freq: 3.5 pseudo-omega: 49.05141758266927
freq: 3.75 pseudo-omega: 45.957504957982074
freq: 4.0 pseudo-omega: 43.26143476379541
freq: 4.25 pseudo-omega: 40.89294646525014
freq: 4.5 pseudo-omega: 38.797390079458545
freq: 4.75 pseudo-omega: 36.93161819182153
freq: 5.0 pseudo-omega: 35.26111036995108
freq: 5.25 pseudo-omega: 33.75791917588135
freq: 5.5 pseudo-omega: 32.39917635881854
freq: 5.75 pseudo-omega: 31.16598873858921
freq: 6.0 pseudo-omega: 30.042610119891105
freq: 6.25 pseudo-omega: 29.01581194861503
freq: 6.5 pseudo-omega: 28.074399202652724
freq: 6.75 pseudo-omega: 27.2088338637036
freq: 7.0 pseudo-omega: 26.41093907473131
freq: 7.25 pseudo-omega: 25.67366450712744
freq: 7.5 pseudo-omega: 24.990898655223422
freq: 7.75 pseudo-omega: 24.35731746156217
freq: 8.0 pseudo-omega: 23.768261325488147
freq: 8.25 pseudo-omega: 23.219634474267135
freq: 8.5 pseudo-omega: 22.707822092604275
freq: 8.75 pseudo-omega: 22.22962165880221
freq: 9.0 pseudo-omega: 21.782185725081955
freq: 9.25 pseudo-omega: 21.36297397688276
freq: 9.5 pseudo-omega: 20.969712861786427
freq: 9.75 pseudo-omega: 20.60036142935008
freq: 10.0 pseudo-omega: 20.25308229487586
freq: 10.25 pseudo-omega: 19.926216852239886
freq: 10.5 pseudo-omega: 19.618264027547614
freq: 10.75 pseudo-omega: 19.327861997149135
freq: 11.0 pseudo-omega: 19.05377239836132
freq: 11.25 pseudo-omega: 18.794866645095745
freq: 11.5 pseudo-omega: 18.550114028036106
freq: 11.75 pseudo-omega: 18.31857133354023
freq: 12.0 pseudo-omega: 18.099373759747298
freq: 12.25 pseudo-omega: 17.891726944539666
freq: 12.5 pseudo-omega: 17.69489994966646
freq: 12.75 pseudo-omega: 17.50821906976064
freq: 13.0 pseudo-omega: 17.33106235517815
freq: 13.25 pseudo-omega: 17.16285475435518
freq: 13.5 pseudo-omega: 17.003063795352364
freq: 13.75 pseudo-omega: 16.85119573794122
freq: 14.0 pseudo-omega: 16.70679213739611
freq: 14.25 pseudo-omega: 16.569426769414694
freq: 14.5 pseudo-omega: 16.438702872567564
freq: 14.75 pseudo-omega: 16.314250670591278
freq: 15.0 pseudo-omega: 16.195725141865235
freq: 15.25 pseudo-omega: 16.082804007697717
freq: 15.5 pseudo-omega: 15.975185914709055
freq: 15.75 pseudo-omega: 15.872588789739368
freq: 16.0 pseudo-omega: 15.774748348406236
freq: 16.25 pseudo-omega: 15.681416740762005
freq: 16.5 pseudo-omega: 15.592361319507752
freq: 16.75 pseudo-omega: 15.507363517958549
freq: 17.0 pseudo-omega: 15.426217826462349
freq: 17.25 pseudo-omega: 15.348730857285668
freq: 17.5 pseudo-omega: 15.274720489121641
freq: 17.75 pseudo-omega: 15.204015083373465
freq: 18.0 pseudo-omega: 15.136452765239001
freq: 18.25 pseudo-omega: 15.071880763387446
freq: 18.5 pseudo-omega: 15.010154802690979
freq: 18.75 pseudo-omega: 14.95113854506554
freq: 19.0 pseudo-omega: 14.894703073996284
freq: 19.25 pseudo-omega: 14.840726418783438
freq: 19.5 pseudo-omega: 14.78909311495139
freq: 19.75 pseudo-omega: 14.739693797624682
freq: 20.0 pseudo-omega: 14.692424824994527
	 MAPI: (low-frequency, non molecular IR)
Hellwarth (50) summation: 0.24416080135213955
Hellwarth (51) summation (total ir activity ^2): 0.19283060037422062
Hellwarth (51) W_e (total ir activity ): 0.439124811840803
omegacoth: 0.7897688707865591
freq: 0.25 pseudo-omega: 38.841826770758054
freq: 0.5 pseudo-omega: 19.428942550342672
freq: 0.75 pseudo-omega: 12.961547694466178
freq: 1.0 pseudo-omega: 9.730522968866124
freq: 1.25 pseudo-omega: 7.7940438221379935
freq: 1.5 pseudo-omega: 6.504834819115706
freq: 1.75 pseudo-omega: 5.58549170336965
freq: 2.0 pseudo-omega: 4.897311913339052
freq: 2.25 pseudo-omega: 4.363238088155052
freq: 2.5 pseudo-omega: 3.9370354703648682
freq: 2.75 pseudo-omega: 3.5892816347954173
freq: 3.0 pseudo-omega: 3.30036135330186
freq: 3.25 pseudo-omega: 3.0566945991486163
freq: 3.5 pseudo-omega: 2.848581121199878
freq: 3.75 pseudo-omega: 2.6689071886683173
freq: 4.0 pseudo-omega: 2.5123373067959673
freq: 4.25 pseudo-omega: 2.374791209547136
freq: 4.5 pseudo-omega: 2.2530951882463195
freq: 4.75 pseudo-omega: 2.1447435271219306
freq: 5.0 pseudo-omega: 2.0477315083321175
freq: 5.25 pseudo-omega: 1.960436129971965
freq: 5.5 pseudo-omega: 1.8815293556523875
freq: 5.75 pseudo-omega: 1.8099139947311196
freq: 6.0 pseudo-omega: 1.7446756125826361
freq: 6.25 pseudo-omega: 1.685045982489886
freq: 6.5 pseudo-omega: 1.63037497179207
freq: 6.75 pseudo-omega: 1.5801086756235652
freq: 7.0 pseudo-omega: 1.5337722363404471
freq: 7.25 pseudo-omega: 1.490956217600976
freq: 7.5 pseudo-omega: 1.4513057036753416
freq: 7.75 pseudo-omega: 1.414511508605057
freq: 8.0 pseudo-omega: 1.3803030336773054
freq: 8.25 pseudo-omega: 1.3484424235667494
freq: 8.5 pseudo-omega: 1.3187197537673696
freq: 8.75 pseudo-omega: 1.2909490430517745
freq: 9.0 pseudo-omega: 1.264964930531604
freq: 9.25 pseudo-omega: 1.2406198915795117
freq: 9.5 pseudo-omega: 1.2177818933447528
freq: 9.75 pseudo-omega: 1.196332410957152
freq: 10.0 pseudo-omega: 1.17616474129536
freq: 10.25 pseudo-omega: 1.1571825635122972
freq: 10.5 pseudo-omega: 1.1392987051883225
freq: 10.75 pseudo-omega: 1.1224340806347703
freq: 11.0 pseudo-omega: 1.1065167739573774
freq: 11.25 pseudo-omega: 1.0914812443586785
freq: 11.5 pseudo-omega: 1.0772676350752095
freq: 11.75 pseudo-omega: 1.0638211705121599
freq: 12.0 pseudo-omega: 1.0510916287111098
freq: 12.25 pseudo-omega: 1.0390328783869045
freq: 12.5 pseudo-omega: 1.0276024714920704
freq: 12.75 pseudo-omega: 1.016761283685572
freq: 13.0 pseudo-omega: 1.0064731962556224
freq: 13.25 pseudo-omega: 0.99670481402
freq: 13.5 pseudo-omega: 0.9874252145387677
freq: 13.75 pseudo-omega: 0.978605724652964
freq: 14.0 pseudo-omega: 0.9702197209324227
freq: 14.25 pseudo-omega: 0.9622424510955405
freq: 14.5 pseudo-omega: 0.9546508738690349
freq: 14.75 pseudo-omega: 0.9474235150991498
freq: 15.0 pseudo-omega: 0.9405403382176618
freq: 15.25 pseudo-omega: 0.933982627414871
freq: 15.5 pseudo-omega: 0.927732882084466
freq: 15.75 pseudo-omega: 0.9217747212874722
freq: 16.0 pseudo-omega: 0.9160927971391699
freq: 16.25 pseudo-omega: 0.9106727161578504
freq: 16.5 pseudo-omega: 0.9055009677308489
freq: 16.75 pseudo-omega: 0.9005648589542067
freq: 17.0 pseudo-omega: 0.8958524551898667
freq: 17.25 pseudo-omega: 0.8913525257604331
freq: 17.5 pseudo-omega: 0.8870544942678715
freq: 17.75 pseudo-omega: 0.8829483930804475
freq: 18.0 pseudo-omega: 0.8790248215828862
freq: 18.25 pseudo-omega: 0.8752749078291722
freq: 18.5 pseudo-omega: 0.8716902732764288
freq: 18.75 pseudo-omega: 0.8682630003126584
freq: 19.0 pseudo-omega: 0.8649856023213982
freq: 19.25 pseudo-omega: 0.8618509960530738
freq: 19.5 pseudo-omega: 0.858852476096474
freq: 19.75 pseudo-omega: 0.8559836912647234
freq: 20.0 pseudo-omega: 0.8532386227287155

In [32]:
# Comparison via Hellwarth (37)
# MAPI  4.5, 24.1, 2.25THz - 75 cm^-1 ; α=
ε_Inf=4.5
ε_S=24.1

(1/ε_Inf - 1/ε_S) #/(4*pi)

# By Hellwarth (37) this should be equivalent to the summation Hellwarth(58) above


Out[32]:
0.18072844628861226

In [33]:
# Hellwarth 44 defin. for alpha
Ry=13.605693*q
effectivemass=0.12
α=(1/ε_Inf - 1/ε_S) * sqrt(effectivemass * Ry / (ħ*2.25E12*2*pi))


Out[33]:
2.393940840504799

In [34]:
# Integrate through Lorentz oscillators to get dielectric fn
# Should give 'extra' contribution from these modes, extrapolated to zero omega
function integrate_dielectric(LO,V0)
    summate=sum( (LO[:,2])./(LO[:,1].^2) )
    summate*4*π/V0
end

Å=1E-10 # angstrom in metres
r=6.29Å # Sensible cubic cell size
V0=(r)^3
println("volume: $V0")
const amu=1.66054e-27
const ε0=8.854187817E-12

MAPI_SI = [ MAPI[:,1].*10^12*2*π MAPI[:,2]./(q^2/amu) ]

println(" MAPI: ",integrate_dielectric(MAPI,1.0))
println(" MAPI_low: ",integrate_dielectric(MAPI_low,1.0))
println(" MAPI_SI: ",integrate_dielectric(MAPI_SI,V0))
println(" MAPI_SI: fudged epislon0 ",integrate_dielectric(MAPI_SI,V0)*ε0/(4*π))
println(" MAPI_SI_low: fudged epislon0 ",integrate_dielectric(MAPI_SI[19:33,:],V0)*ε0/(4*π))


println()
println("From ε_S-ε_Inf, expect this to be: ",ε_S-ε_Inf)


volume: 2.48858189e-28
 MAPI: 3.1776873962678347
 MAPI_low: 3.1677081975618884
 MAPI_SI: 2.0923201242420605e13
 MAPI_SI: fudged epislon0 14.742359525955068
 MAPI_SI_low: fudged epislon0 14.695576457826046

From ε_S-ε_Inf, expect this to be: 19.6

In [35]:
sum(MAPI[:,2]./MAPI[:,1].^2 )


Out[35]:
0.25287232835842016

In [36]:
sum(MAPI_low[:,2]./MAPI_low[:,1].^2 )


Out[36]:
0.25207820895734634

In [41]:
println("Debye temperatures...")
freq=2.25E12 # Thz
ω = (2*pi)*freq
println("MAPI: 2.25 THz: ",hbar*ω/kB)

# GaP:
# 10.1002/pssb.2221200123
# TO mode at Gamma: 402.5 cm^-1
freq=12.06665E12 # Thz
ω = (2*pi)*freq
hbar*ω/kB
println("GaP: 12.066 THz: ",hbar*ω/kB)


Debye temperatures...
MAPI: 2.25 THz: 107.98284026119079
GaP: 12.066 THz: 579.1071730834212

In [56]:
meSmallAlpha(α)=α/6 + 0.025*α^2
# (46) In Feynman1955
meLargeAlpha(α)=16*α^4 / (81*π^4)
meLargeAlpha(α)=202*(α/10)^4

println("MAPI: electron, α=2.40 meSmallAlpha(α)=",meSmallAlpha(2.40)," meLargeAlpha(α)=",meLargeAlpha(2.40))
println("MAPI: hole,     α=2.68 meSmallAlpha(α)=",meSmallAlpha(2.68)," meLargeAlpha(α)=",meLargeAlpha(2.68))


MAPI: electron, α=2.40 meSmallAlpha(α)=0.5439999999999999 meLargeAlpha(α)=0.6701875199999999
MAPI: hole,     α=2.68 meSmallAlpha(α)=0.6262266666666667 meLargeAlpha(α)=1.0420547691520003
WARNING: Method definition meSmallAlpha(Any) in module Main at In[55]:1 overwritten at In[56]:1.
WARNING: Method definition meLargeAlpha(Any) in module Main at In[55]:3 overwritten at In[56]:3.
WARNING: Method definition meLargeAlpha(Any) in module Main at In[56]:3 overwritten at In[56]:4.

In [ ]:


In [ ]:


In [ ]: