diff --git a/dev/examples/index.html b/dev/examples/index.html index ea2aab0..0c29d6a 100644 --- a/dev/examples/index.html +++ b/dev/examples/index.html @@ -50,4 +50,4 @@ Hellwarth (61) Omega (freq): 500.08501275972833

Temperature-dependent behaviour

Getting temperature-dependent behaviour is a matter of sending a temperature range to the polaronmobility function.

MAPIe=polaronmobility(10:10:1000, 4.5, 24.1, 2.25, 0.12)

Plotting

For publication, savepolaron outputs a column-delimited text file for post-production plotting (with gnuplot) or similar.

savepolaron("MAPI-electron",MAPIe)

Example gnuplot scripts can be found in Examples and HalidePerovskites.

Built in plotting

The convenience function plotpolaron generates (and saves) a number of Plots.jl figures of the temperature dependent behaviour.

It has been separated off into its own submodule (PlotPolaron), so that the Plots.jl dependency does not slow down loading of PolaronMobility.jl.

To use it, we therefore need to inform Julia where to find PlotPolaron. A suitable initialisation script was kindly supplied by @wkearn:

using PolaronMobility, Plots
 gr()
 include(Pkg.dir("PolaronMobility","src","PlotPolaron.jl"))
-using PlotPolaron

As with savepolaron, the call signature is output-file-string and then the polaron object which you have calculated.

plotpolaron("MAPI-electron",MAPIe)

This will attempt to make fairly sensible defaults, and plot a lot of different data of sufficient quality for talk slides.

Much for the functionality has been unrolled into the Jupyter Notebook example, which should also be interactively-runnable from (https://juliabox.com). See the repository README.md for the latest information.

Here is a figure showing typical temperature-dependent behaviour of the three-different polaron mobility approximations, for MAPI.

MAPI mobility

Further examples

More complete examples are provided in Examples and HalidePerovskites.

+using PlotPolaron

As with savepolaron, the call signature is output-file-string and then the polaron object which you have calculated.

plotpolaron("MAPI-electron",MAPIe)

This will attempt to make fairly sensible defaults, and plot a lot of different data of sufficient quality for talk slides.

Much for the functionality has been unrolled into the Jupyter Notebook example, which should also be interactively-runnable from (https://juliabox.com). See the repository README.md for the latest information.

Here is a figure showing typical temperature-dependent behaviour of the three-different polaron mobility approximations, for MAPI.

MAPI mobility

Further examples

More complete examples are provided in Examples and HalidePerovskites.

diff --git a/dev/functions/index.html b/dev/functions/index.html index 456201a..13f0bb5 100644 --- a/dev/functions/index.html +++ b/dev/functions/index.html @@ -1,24 +1,24 @@ Functions · PolaronMobility.jl documentation

Functions

PolaronMobility.AMethod
A(v, w, β)

Hellwarth's A expression from Eqn. (62b) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.AMethod
A(v, w, β)

Generalisation of the A function from Eqn. (62b) in Hellwarth et al. 1999. This is the Helmholtz free energy of the trial model.

Required for calculating the polaron free energy.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.AMethod
A(v, w, n)

Calculates A(v, w, β) but at zero-temperature, β = Inf.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.BMethod
B(v, w, α)

Integral of Eqn. (31) in Feynman 1955. Part of the overall ground-state energy expression.

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.BMethod
B(v, w, β, α)

Hellwarth's B expression from Eqn. (62c) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.BMethod
B(v, w, α, β)

Generalisation of the B function from Eqn. (62c) in Hellwarth et al. 1999. This is the expected value of the exact action <S_j> taken w.r.t trial action, given for the 'jth' phonon mode.

Required for calculating the polaron free energy.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.BMethod
B(v, w, α; rtol = 1e-3)

Calculates B(v, w, α, β) but at zero-temperature, β = Inf.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
source
PolaronMobility.B_integrandMethod
B(τ, v, w)

Integrand of Eqn. (31) in Feynman 1955. Part of the overall ground-state energy expression.

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.CMethod
C(v, w, β)

Hellwarth's C expression from Eqn. (62e) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.CMethod
C(v, w, β)

Generalisation of the C function from Eqn. (62e) in Hellwarth et al. 1999. This is the expected value of the trial action <S_0> taken w.r.t trial action.

Required for calculating the polaron free energy.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.CMethod
C(v, w)

Calculates C(v, w, β) but at zero-temperature, β = Inf.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.C_ijMethod
C_ij(i, j, v, w)

Calculates the element to the coupling matrix C_ij (a generalisation of Feynman's C coupling variational parameter in Feynman 1955) between the electron and the ith' andjth' fictitious masses that approximates the exact electron-phonon interaction with a harmonic coupling to a massive fictitious particle.

Required for calculating the polaron free energy.

Note: Not to be confused with the number of physical phonon branches; many phonon branches could be approximated with one or two etc. fictitious masses for example. The number of fictitious mass does not necessarily need to match the number of phonon branches.

Arguments

  • i::Integer, j::Integer: enumerate the current fictitious masses under focus (also the index of the element in the coupling matrix C)
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.DMethod
D(τ, v, w, β)

Calculates the recoil function (a generalisation of D(u) in Eqn. (35c) in FHIP 1962) that approximates the exact influence (recoil effects) of the phonon bath on the electron with the influence of the fictitious masses attached by springs to the electron. It appears in the exponent of the intermediate scattering function.

Arguments

  • τ::Float64: is the imaginary time variable.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See FHIP 1962: https://doi.org/10.1103/PhysRev.127.1004.

source
PolaronMobility.DMethod
D(τ, v, w)

Calculates the recoil function at zero-temperature.

Arguments

  • τ::Float64: is the imaginary time variable.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.FMethod
F(v, w, α, ω)

Calculates the zero-temperature ground-state energy of the polaron for a material with multiple phonon branches. Similar to F(v, w, α, ω, β) but with β = Inf. Generalises Eqn. (33) in Feynman 1955.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz).

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.FMethod
F(v, w, α, ω, β)

Calculates the Helmholtz free energy of the polaron for a material with multiple phonon branches.

This generalises the Osaka 1959 (below Eqn. (22)) and Hellwarth. et al 1999 (Eqn. (62a)) free energy expressions.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz).
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Osaka, Y. (1959): https://doi.org/10.1143/ptp.22.437 and Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.HellwarthASchemeMethod
HellwarthAScheme(phonon_modes; T=295, convergence=1e-6)

Multiple phonon mode reduction to a single effective frequency. Temperature dependent, defaults to T = 295 K.

Solved iteratively by bisection until Δfreq < convergence.

Follows Hellwarth et al. 1999 PRB 'A' scheme, Eqn. (50) RHS.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.HellwarthBSchemeMethod
HellwarthBScheme(LO)

LO an array assumed to be of [freq ; absolute ir activity]

Multiple phonon mode reduction to a single effective frequency. Hellwarth et al. 1999 PRB, 'B scheme'; the athermal method. Averaging procedure is constructed by considering the average effect of the action of multiple branches.

Follows Eqn. (58) in this paper, assuming typo on LHS, should actually be W_e.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.YMethod
Y(x, v, β)

Hellwarth's Y expression from Eqn. (62d) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression. Contained in denominator of the integrand of Eqn. (62c).

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.cartesian_k_integralMethod
cartesian_k_integral(coupling, propagator; rₚ = 1, a = 1, limits = [-π, π])

Calculate the k-space integral in cartesian coordinates of the integrand cartesian_k_integrand over a specified range in k-space.

Arguments

  • coupling: A function that takes a scalar k value and returns a scalar value representing the coupling strength.
  • propagator: A scalar value representing the propagator.
  • rₚ: An optional scalar value representing the charactersitc polaron radius. Default value is 1.
  • a: An optional scalar value representing ther lattice constant. Default value is 1.
  • limits: An array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the calculated k-space integral over the specified range in cartesian coordinates.

Example

coupling(k) = k^2  # define the coupling function
+Structure to contain material-specific data.
source
PolaronMobility.AMethod
A(v, w, β)

Hellwarth's A expression from Eqn. (62b) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.AMethod
A(v, w, β)

Generalisation of the A function from Eqn. (62b) in Hellwarth et al. 1999. This is the Helmholtz free energy of the trial model.

Required for calculating the polaron free energy.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.AMethod
A(v, w, n)

Calculates A(v, w, β) but at zero-temperature, β = Inf.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.BMethod
B(v, w, α)

Integral of Eqn. (31) in Feynman 1955. Part of the overall ground-state energy expression.

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.BMethod
B(v, w, β, α)

Hellwarth's B expression from Eqn. (62c) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.BMethod
B(v, w, α, β)

Generalisation of the B function from Eqn. (62c) in Hellwarth et al. 1999. This is the expected value of the exact action <S_j> taken w.r.t trial action, given for the 'jth' phonon mode.

Required for calculating the polaron free energy.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.BMethod
B(v, w, α; rtol = 1e-3)

Calculates B(v, w, α, β) but at zero-temperature, β = Inf.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
source
PolaronMobility.B_integrandMethod
B(τ, v, w)

Integrand of Eqn. (31) in Feynman 1955. Part of the overall ground-state energy expression.

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.CMethod
C(v, w, β)

Hellwarth's C expression from Eqn. (62e) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.CMethod
C(v, w, β)

Generalisation of the C function from Eqn. (62e) in Hellwarth et al. 1999. This is the expected value of the trial action <S_0> taken w.r.t trial action.

Required for calculating the polaron free energy.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.CMethod
C(v, w)

Calculates C(v, w, β) but at zero-temperature, β = Inf.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.C_ijMethod
C_ij(i, j, v, w)

Calculates the element to the coupling matrix C_ij (a generalisation of Feynman's C coupling variational parameter in Feynman 1955) between the electron and the ith' andjth' fictitious masses that approximates the exact electron-phonon interaction with a harmonic coupling to a massive fictitious particle.

Required for calculating the polaron free energy.

Note: Not to be confused with the number of physical phonon branches; many phonon branches could be approximated with one or two etc. fictitious masses for example. The number of fictitious mass does not necessarily need to match the number of phonon branches.

Arguments

  • i::Integer, j::Integer: enumerate the current fictitious masses under focus (also the index of the element in the coupling matrix C)
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.DMethod
D(τ, v, w, β)

Calculates the recoil function (a generalisation of D(u) in Eqn. (35c) in FHIP 1962) that approximates the exact influence (recoil effects) of the phonon bath on the electron with the influence of the fictitious masses attached by springs to the electron. It appears in the exponent of the intermediate scattering function.

Arguments

  • τ::Float64: is the imaginary time variable.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See FHIP 1962: https://doi.org/10.1103/PhysRev.127.1004.

source
PolaronMobility.DMethod
D(τ, v, w)

Calculates the recoil function at zero-temperature.

Arguments

  • τ::Float64: is the imaginary time variable.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.FMethod
F(v, w, α, ω)

Calculates the zero-temperature ground-state energy of the polaron for a material with multiple phonon branches. Similar to F(v, w, α, ω, β) but with β = Inf. Generalises Eqn. (33) in Feynman 1955.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz).

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.FMethod
F(v, w, α, ω, β)

Calculates the Helmholtz free energy of the polaron for a material with multiple phonon branches.

This generalises the Osaka 1959 (below Eqn. (22)) and Hellwarth. et al 1999 (Eqn. (62a)) free energy expressions.

Arguments

  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for the 'jth' phonon mode.
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz).
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) associated with the 'jth' phonon mode.

See Osaka, Y. (1959): https://doi.org/10.1143/ptp.22.437 and Hellwarth, R. W., Biaggio, I. (1999): https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.HellwarthASchemeMethod
HellwarthAScheme(phonon_modes; T=295, convergence=1e-6)

Multiple phonon mode reduction to a single effective frequency. Temperature dependent, defaults to T = 295 K.

Solved iteratively by bisection until Δfreq < convergence.

Follows Hellwarth et al. 1999 PRB 'A' scheme, Eqn. (50) RHS.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.HellwarthBSchemeMethod
HellwarthBScheme(LO)

LO an array assumed to be of [freq ; absolute ir activity]

Multiple phonon mode reduction to a single effective frequency. Hellwarth et al. 1999 PRB, 'B scheme'; the athermal method. Averaging procedure is constructed by considering the average effect of the action of multiple branches.

Follows Eqn. (58) in this paper, assuming typo on LHS, should actually be W_e.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.YMethod
Y(x, v, β)

Hellwarth's Y expression from Eqn. (62d) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression. Contained in denominator of the integrand of Eqn. (62c).

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.cartesian_k_integralMethod
cartesian_k_integral(coupling, propagator; rₚ = 1, a = 1, limits = [-π, π])

Calculate the k-space integral in cartesian coordinates of the integrand cartesian_k_integrand over a specified range in k-space.

Arguments

  • coupling: A function that takes a scalar k value and returns a scalar value representing the coupling strength.
  • propagator: A scalar value representing the propagator.
  • rₚ: An optional scalar value representing the charactersitc polaron radius. Default value is 1.
  • a: An optional scalar value representing ther lattice constant. Default value is 1.
  • limits: An array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the calculated k-space integral over the specified range in cartesian coordinates.

Example

coupling(k) = k^2  # define the coupling function
 propagator = 0.5  # define the propagator value
 result = cartesian_k_integral(coupling, propagator; rₚ = 1, a = 1, limits = [-π, π])  # calculate the integral
-println(result)  # print the result

Expected Output: A scalar value representing the calculated k-space integral over the specified range in cartesian coordinates.

source
PolaronMobility.cartesian_k_integrandMethod
cartesian_k_integrand(k, coupling, propagator; rₚ = 1)

Calculate the integrand for a k-space integral in Cartesian coordinates.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • coupling: a function that takes a scalar k value and returns a scalar value representing the coupling strength
  • propagator: a scalar value representing the propagator
  • rₚ: an optional scalar value representing the radius

Example Usage

coupling(k) = k^2  # define the coupling function
+println(result)  # print the result

Expected Output: A scalar value representing the calculated k-space integral over the specified range in cartesian coordinates.

source
PolaronMobility.cartesian_k_integrandMethod
cartesian_k_integrand(k, coupling, propagator; rₚ = 1)

Calculate the integrand for a k-space integral in Cartesian coordinates.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • coupling: a function that takes a scalar k value and returns a scalar value representing the coupling strength
  • propagator: a scalar value representing the propagator
  • rₚ: an optional scalar value representing the radius

Example Usage

coupling(k) = k^2  # define the coupling function
 propagator = 0.5  # define the propagator value
 result = cartesian_k_integrand(2.0, coupling, propagator; rₚ = 1)  # calculate the integrand for k = 2.0
-println(result)  # print the result

Expected Output: 0.5

source
PolaronMobility.effective_freqsMethod
effective_freqs(freqs_and_ir_activity, num_var_params)

Generates a matrix of effective phonon modes with frequencies and infra-red activities derived from a larger matrix using the Principal Component Analysis (PCA) method.

Arguments

  • freqs_and_ir_activity::Matrix{Float64}: is a matrix containing the phonon mode frequencies (in THz) in the first column and the infra-red activities (in e²amu⁻¹) in the second column.
  • num_var_params::Integer: is the number of effective modes required (which needs to be less than the number of modes in freqs_and_ir_activity`).

*** POSSIBLY REDUNDANT ***

source
PolaronMobility.electron_energyMethod
electron_energy(v, w, ω, β)

Calculate the free electron energy at finite temperature.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.

Returns

A scalar value representing the calculated free electron energy at finite temperature.

Example

v = 0.5
+println(result)  # print the result

Expected Output: 0.5

source
PolaronMobility.effective_freqsMethod
effective_freqs(freqs_and_ir_activity, num_var_params)

Generates a matrix of effective phonon modes with frequencies and infra-red activities derived from a larger matrix using the Principal Component Analysis (PCA) method.

Arguments

  • freqs_and_ir_activity::Matrix{Float64}: is a matrix containing the phonon mode frequencies (in THz) in the first column and the infra-red activities (in e²amu⁻¹) in the second column.
  • num_var_params::Integer: is the number of effective modes required (which needs to be less than the number of modes in freqs_and_ir_activity`).

*** POSSIBLY REDUNDANT ***

source
PolaronMobility.electron_energyMethod
electron_energy(v, w, ω, β)

Calculate the free electron energy at finite temperature.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.

Returns

A scalar value representing the calculated free electron energy at finite temperature.

Example

v = 0.5
 w = 1.0
 ω = 2.0
 β = 0.2
 result = electron_energy(v, w, ω, β; dims = 3)
-println(result)

Expected Output: A scalar value representing the calculated free electron energy at finite temperature.

source
PolaronMobility.electron_energyMethod
electron_energy(v, w, ω)

Calculate the free electron energy at zero temperature.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • ω: a scalar value representing the phonon frequency.

Returns

A scalar value representing the calculated free electron energy at zero temperature.

Example

v = 0.5
+println(result)

Expected Output: A scalar value representing the calculated free electron energy at finite temperature.

source
PolaronMobility.electron_energyMethod
electron_energy(v, w, ω)

Calculate the free electron energy at zero temperature.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • ω: a scalar value representing the phonon frequency.

Returns

A scalar value representing the calculated free electron energy at zero temperature.

Example

v = 0.5
 w = 1.0
 ω = 2.0
 β = 0.2
 result = electron_energy(v, w, ω)
-println(result)

Expected Output: A scalar value representing the calculated free electron energy at finite temperature.

source
PolaronMobility.fMethod
f(x, v, w, β)

Integrand of Hellwarth's B expression from Eqn. (62c) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.feynmanvwMethod
feynmanvw(v, w, αωβ...; upper_limit = Inf64)

Minimises the multiple phonon mode free energy function for a set of vₚ and wₚ variational parameters. The variational parameters follow the inequality: v₁ > w₁ > v₂ > w₂ > ... > vₙ > wₙ. Generalises feynmanvw to multiple variational parameters.

Arguments

  • v::Vector{Float64}: vector of initial v parameters.
  • w::Vector{Float64}: vector of initial w parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for one or many phonon modes.
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz) for one or many phonon modes.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) for one or many phonon modes.

See also F.

source
PolaronMobility.frohlich_couplingMethod
frohlich_coupling(k, α, ω)

Calculate the coupling strength for the Frohlich continuum polaron model.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • α: a scalar value representing the coupling constant
  • ω: a scalar value representing the phonon frequency

Returns

The coupling strength for the Frohlich continuum polaron model.

Example

result = frohlich_coupling(2.0, 0.5, 1.0)
-println(result)

Expected Output: 6.0

source
PolaronMobility.frohlich_energy_k_spaceMethod
frohlich_energy_k_space(v, w, α, ωβ...; rₚ = 1, limits = [0, Inf])

Calculate the total energy, kinetic energy, and interaction energy of the Frohlich lattice polaron.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: (optional) a scalar value representing the inverse temperature.
  • rₚ: The characteristic polaron radius (default is 1).
  • limits: The limits of integration for the interaction energy calculation (default is [0, Inf]).

Returns

  • total_energy: The calculated total polaron energy.
  • kinetic_energy: The calculated polaron kinetic energy.
  • interaction_energy: The calculated polaron interaction energy.
source
PolaronMobility.frohlich_interaction_energy_integrand_k_spaceMethod
frohlich_interaction_energy_integrand_k_space(τ, v, w, α, ω; rₚ = 1, limits = [0, Inf])

Calculate the integrand for the Frohlich interaction energy in k-space at finite zero temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [0, Inf].

Returns

A scalar value representing the integrand for the Frohlich interaction energy in k-space at zero temperature.

source
PolaronMobility.frohlich_interaction_energy_integrand_k_spaceMethod
frohlich_interaction_energy_integrand_k_space(τ, v, w, α, ω, β)

Calculate the integrand for the Frohlich interaction energy in k-space at finite temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [0, Inf].

Returns

A scalar value representing the integrand for the Frohlich interaction energy in k-space at finite temperature.

source
PolaronMobility.frohlich_interaction_energy_k_spaceMethod
frohlich_interaction_energy_k_space(v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the Frohlich polaron interaction energy in k-space at zero temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Frohlich polaron interaction energy in k-space at zero temperature.

source
PolaronMobility.frohlich_interaction_energy_k_spaceMethod
frohlich_interaction_energy_k_space(v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the Frohlich polaron interaction energy in k-space at finite temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Frohlich polaron interaction energy in k-space at finite temperature.

source
PolaronMobility.frohlich_memory_function_k_spaceMethod
frohlich_memory_function_k_space(Ω, v, w, α, ω; rₚ = 1, limits = [0, Inf])

Calculate the memory function for the Frohlich model in k-space at zero temperature and finite frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the memory function of the Frohlich model in k-space at finite temperature evaluated at the frequency Ω.

source
PolaronMobility.frohlich_memory_function_k_spaceMethod
frohlich_memory_function_k_space(Ω, v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the memory function for the Frohlich model in k-space at finite temperature and frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the memory function of the Frohlich model in k-space at finite temperature evaluated at the frequency Ω.

source
PolaronMobility.frohlich_mobility_k_spaceMethod
frohlich_mobility_k_space(v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the DC mobility in k-space for a Frohlich polaron system at finite temperature.

Arguments

  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

The DC mobility in k-space for the Frohlich polaron system at finite temperature.

source
PolaronMobility.frohlich_structure_factor_k_spaceMethod
frohlich_structure_factor_k_space(t, v, w, α, ω; rₚ = 1, limits = [0, Inf])

Calculate the structure factor in k-space for the Frohlich continuum polaron model at zero temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the calculated structure factor in k-space for the Frohlich continuum polaron model at zero temperature.

source
PolaronMobility.frohlich_structure_factor_k_spaceMethod
frohlich_structure_factor_k_space(t, v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the structure factor in k-space for the Frohlich continuum polaron model at finite temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing a variational parameter.
  • w: a scalar value representing a variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the calculated structure factor in k-space for the Frohlich continuum polaron model at finite temperature.

source
PolaronMobility.frohlichalphaMethod
frohlichalpha(ε_Inf, ε_S, freq, m_eff)

Calculates the Frohlich alpha parameter, for a given dielectric constant, frequency (f) of phonon in Hertz, and effective mass (in units of the bare electron mass).

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.frohlichalphaMethod
frohlichalpha(ϵ_optic, ϵ_ionic, ϵ_total, phonon_mode_freq, m_eff)

Calculates the partial dielectric electron-phonon coupling parameter for a given longitudinal optical phonon mode.

This decomposes the original Frohlich alpha coupling parameter (defined for a single phonon branch) into contributions from multiple phonon branches.

Arguments

  • ϵ_optic::Float64: is the optical dielectric constant of the material.
  • ϵ_ionic::Float64: is the ionic dielectric contribution from the phonon mode.
  • ϵ_total::Float64: is the total ionic dielectric contribution from all phonon modes of the material.
  • phonon_mode_freq::Float64: is the frequency of the phonon mode (THz).
  • m_eff::Float64 is the band mass of the electron (in units of electron mass m_e).
source
PolaronMobility.general_memory_functionMethod
general_memory_function(Ω, structure_factor; limits = [0, Inf])

This function calculates the integral of a given structure factor with respect to time using the quadgk function from the QuadGK package.

Arguments

  • Ω: A scalar representing the frequency.
  • structure_factor: A function that returns the value of the structure factor at a given time.
  • limits (optional): A 2-element array specifying the lower and upper limits of integration. Default is [0, Inf].

Returns

The integral of the structure factor with respect to time.

Example

# Define a structure factor function
+println(result)

Expected Output: A scalar value representing the calculated free electron energy at finite temperature.

source
PolaronMobility.fMethod
f(x, v, w, β)

Integrand of Hellwarth's B expression from Eqn. (62c) in Hellwarth et al. 1999 PRB. Part of the overall free energy expression.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

source
PolaronMobility.feynmanvwMethod
feynmanvw(v, w, αωβ...; upper_limit = Inf64)

Minimises the multiple phonon mode free energy function for a set of vₚ and wₚ variational parameters. The variational parameters follow the inequality: v₁ > w₁ > v₂ > w₂ > ... > vₙ > wₙ. Generalises feynmanvw to multiple variational parameters.

Arguments

  • v::Vector{Float64}: vector of initial v parameters.
  • w::Vector{Float64}: vector of initial w parameters.
  • α::Union{Float64, Vector{Float64}}: is the partial dielectric electron-phonon coupling parameter for one or many phonon modes.
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz) for one or many phonon modes.
  • β::Union{Float64, Vector{Float64}}: is the reduced thermodynamic temperature ħωⱼ/(kT) for one or many phonon modes.

See also F.

source
PolaronMobility.frohlich_couplingMethod
frohlich_coupling(k, α, ω)

Calculate the coupling strength for the Frohlich continuum polaron model.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • α: a scalar value representing the coupling constant
  • ω: a scalar value representing the phonon frequency

Returns

The coupling strength for the Frohlich continuum polaron model.

Example

result = frohlich_coupling(2.0, 0.5, 1.0)
+println(result)

Expected Output: 6.0

source
PolaronMobility.frohlich_energy_k_spaceMethod
frohlich_energy_k_space(v, w, α, ωβ...; rₚ = 1, limits = [0, Inf])

Calculate the total energy, kinetic energy, and interaction energy of the Frohlich lattice polaron.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: (optional) a scalar value representing the inverse temperature.
  • rₚ: The characteristic polaron radius (default is 1).
  • limits: The limits of integration for the interaction energy calculation (default is [0, Inf]).

Returns

  • total_energy: The calculated total polaron energy.
  • kinetic_energy: The calculated polaron kinetic energy.
  • interaction_energy: The calculated polaron interaction energy.
source
PolaronMobility.frohlich_interaction_energy_integrand_k_spaceMethod
frohlich_interaction_energy_integrand_k_space(τ, v, w, α, ω; rₚ = 1, limits = [0, Inf])

Calculate the integrand for the Frohlich interaction energy in k-space at finite zero temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [0, Inf].

Returns

A scalar value representing the integrand for the Frohlich interaction energy in k-space at zero temperature.

source
PolaronMobility.frohlich_interaction_energy_integrand_k_spaceMethod
frohlich_interaction_energy_integrand_k_space(τ, v, w, α, ω, β)

Calculate the integrand for the Frohlich interaction energy in k-space at finite temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [0, Inf].

Returns

A scalar value representing the integrand for the Frohlich interaction energy in k-space at finite temperature.

source
PolaronMobility.frohlich_interaction_energy_k_spaceMethod
frohlich_interaction_energy_k_space(v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the Frohlich polaron interaction energy in k-space at zero temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Frohlich polaron interaction energy in k-space at zero temperature.

source
PolaronMobility.frohlich_interaction_energy_k_spaceMethod
frohlich_interaction_energy_k_space(v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the Frohlich polaron interaction energy in k-space at finite temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Frohlich polaron interaction energy in k-space at finite temperature.

source
PolaronMobility.frohlich_memory_function_k_spaceMethod
frohlich_memory_function_k_space(Ω, v, w, α, ω; rₚ = 1, limits = [0, Inf])

Calculate the memory function for the Frohlich model in k-space at zero temperature and finite frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the memory function of the Frohlich model in k-space at finite temperature evaluated at the frequency Ω.

source
PolaronMobility.frohlich_memory_function_k_spaceMethod
frohlich_memory_function_k_space(Ω, v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the memory function for the Frohlich model in k-space at finite temperature and frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the memory function of the Frohlich model in k-space at finite temperature evaluated at the frequency Ω.

source
PolaronMobility.frohlich_mobility_k_spaceMethod
frohlich_mobility_k_space(v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the DC mobility in k-space for a Frohlich polaron system at finite temperature.

Arguments

  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

The DC mobility in k-space for the Frohlich polaron system at finite temperature.

source
PolaronMobility.frohlich_structure_factor_k_spaceMethod
frohlich_structure_factor_k_space(t, v, w, α, ω; rₚ = 1, limits = [0, Inf])

Calculate the structure factor in k-space for the Frohlich continuum polaron model at zero temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the calculated structure factor in k-space for the Frohlich continuum polaron model at zero temperature.

source
PolaronMobility.frohlich_structure_factor_k_spaceMethod
frohlich_structure_factor_k_space(t, v, w, α, ω, β; rₚ = 1, limits = [0, Inf])

Calculate the structure factor in k-space for the Frohlich continuum polaron model at finite temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing a variational parameter.
  • w: a scalar value representing a variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is an infinite sphere.

Returns

A scalar value representing the calculated structure factor in k-space for the Frohlich continuum polaron model at finite temperature.

source
PolaronMobility.frohlichalphaMethod
frohlichalpha(ε_Inf, ε_S, freq, m_eff)

Calculates the Frohlich alpha parameter, for a given dielectric constant, frequency (f) of phonon in Hertz, and effective mass (in units of the bare electron mass).

See Feynman 1955: http://dx.doi.org/10.1103/PhysRev.97.660.

source
PolaronMobility.frohlichalphaMethod
frohlichalpha(ϵ_optic, ϵ_ionic, ϵ_total, phonon_mode_freq, m_eff)

Calculates the partial dielectric electron-phonon coupling parameter for a given longitudinal optical phonon mode.

This decomposes the original Frohlich alpha coupling parameter (defined for a single phonon branch) into contributions from multiple phonon branches.

Arguments

  • ϵ_optic::Float64: is the optical dielectric constant of the material.
  • ϵ_ionic::Float64: is the ionic dielectric contribution from the phonon mode.
  • ϵ_total::Float64: is the total ionic dielectric contribution from all phonon modes of the material.
  • phonon_mode_freq::Float64: is the frequency of the phonon mode (THz).
  • m_eff::Float64 is the band mass of the electron (in units of electron mass m_e).
source
PolaronMobility.general_memory_functionMethod
general_memory_function(Ω, structure_factor; limits = [0, Inf])

This function calculates the integral of a given structure factor with respect to time using the quadgk function from the QuadGK package.

Arguments

  • Ω: A scalar representing the frequency.
  • structure_factor: A function that returns the value of the structure factor at a given time.
  • limits (optional): A 2-element array specifying the lower and upper limits of integration. Default is [0, Inf].

Returns

The integral of the structure factor with respect to time.

Example

# Define a structure factor function
 function structure_factor(t)
     # Implementation of the structure factor
     # ...
@@ -28,7 +28,7 @@
 Ω = 0.5
 limits = [0, 10]
 result = general_memory_function(Ω, structure_factor; limits = limits)
-println(result)

This example demonstrates how to use the general_memory_function to calculate the memory function for a given frequency Ω and structure factor function structure_factor. The limits argument is optional and specifies the lower and upper limits of integration. The result is then printed.

source
PolaronMobility.general_memory_functionMethod
general_memory_function(structure_factor; limits = [0, Inf])

Calculate the integral of a given function structure_factor using the quadgk function in Julia.

Arguments

  • structure_factor: A function that takes a single argument t and returns a value.
  • limits: An optional array specifying the lower and upper limits of integration. Default is [0, Inf].

Returns

  • integral: The result of the numerical integration of the function structure_factor over the specified limits.

Example

# Define the structure factor function
+println(result)

This example demonstrates how to use the general_memory_function to calculate the memory function for a given frequency Ω and structure factor function structure_factor. The limits argument is optional and specifies the lower and upper limits of integration. The result is then printed.

source
PolaronMobility.general_memory_functionMethod
general_memory_function(structure_factor; limits = [0, Inf])

Calculate the integral of a given function structure_factor using the quadgk function in Julia.

Arguments

  • structure_factor: A function that takes a single argument t and returns a value.
  • limits: An optional array specifying the lower and upper limits of integration. Default is [0, Inf].

Returns

  • integral: The result of the numerical integration of the function structure_factor over the specified limits.

Example

# Define the structure factor function
 function structure_factor(t)
     return t^2 + 2t + 1
 end
@@ -36,32 +36,32 @@
 # Call the general_memory_function with the structure_factor function
 result = general_memory_function(structure_factor; limits = [0, 10])
 
-println(result)  # Output: 383.3333333333333
source
PolaronMobility.h_iMethod
h_i(i, v, w)

Calculates the normal-mode (the eigenmodes) frequency of the coupling between the electron and the `ith' fictitious mass that approximates the exact electron-phonon interaction with a harmonic coupling to a massive fictitious particle.

Required for calculating the polaron free energy.

Note: Not to be confused with the number of physical phonon branches; many phonon branches could be approximated with one or two etc. fictitious masses for example. The number of fictitious mass does not necessarily need to match the number of phonon branches.

Arguments

  • i::Integer: enumerates the current fictitious mass.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.holstein_couplingMethod
holstein_coupling(k, α, ω; dims = 1)

Calculate the coupling strength for the Holstein lattice polaron model.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • α: a scalar value representing the coupling constant
  • ω: a scalar value representing the phonon frequency
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.

Returns

The coupling strength for the Holstein model.

Example

result = holstein_coupling(2.0, 0.5, 1.0; dims = 3)
-println(result)

Expected Output: 6.0

source
PolaronMobility.holstein_energy_k_spaceMethod
holstein_energy_k_space(v, w, α, ωβ...; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the total energy, kinetic energy, and interaction energy of the Holstein lattice polaron.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: (optional) a scalar value representing the inverse temperature.
  • dims: The number of dimensions of the system (default is 3).
  • rₚ: The characteristic polaron radius (default is 1).
  • a: The lattice constant (default is 1).
  • limits: The limits of integration for the interaction energy calculation (default is [-π, π]).

Returns

  • total_energy: The calculated total polaron energy.
  • kinetic_energy: The calculated polaron kinetic energy.
  • interaction_energy: The calculated polaron interaction energy.
source
PolaronMobility.holstein_interaction_energyMethod
holstein_interaction_energy(v, w, α, ω; dims = 3)

Calculate the interaction energy between electrons and phonons in the Holstein model.

Arguments

  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • dims: An optional parameter representing the number of dimensions (default is 3).

Returns

  • integral: The interaction energy between electrons and phonons in the Holstein model.

Example

v = 0.2
+println(result)  # Output: 383.3333333333333
source
PolaronMobility.h_iMethod
h_i(i, v, w)

Calculates the normal-mode (the eigenmodes) frequency of the coupling between the electron and the `ith' fictitious mass that approximates the exact electron-phonon interaction with a harmonic coupling to a massive fictitious particle.

Required for calculating the polaron free energy.

Note: Not to be confused with the number of physical phonon branches; many phonon branches could be approximated with one or two etc. fictitious masses for example. The number of fictitious mass does not necessarily need to match the number of phonon branches.

Arguments

  • i::Integer: enumerates the current fictitious mass.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.holstein_couplingMethod
holstein_coupling(k, α, ω; dims = 1)

Calculate the coupling strength for the Holstein lattice polaron model.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • α: a scalar value representing the coupling constant
  • ω: a scalar value representing the phonon frequency
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.

Returns

The coupling strength for the Holstein model.

Example

result = holstein_coupling(2.0, 0.5, 1.0; dims = 3)
+println(result)

Expected Output: 6.0

source
PolaronMobility.holstein_energy_k_spaceMethod
holstein_energy_k_space(v, w, α, ωβ...; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the total energy, kinetic energy, and interaction energy of the Holstein lattice polaron.

Arguments

  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: (optional) a scalar value representing the inverse temperature.
  • dims: The number of dimensions of the system (default is 3).
  • rₚ: The characteristic polaron radius (default is 1).
  • a: The lattice constant (default is 1).
  • limits: The limits of integration for the interaction energy calculation (default is [-π, π]).

Returns

  • total_energy: The calculated total polaron energy.
  • kinetic_energy: The calculated polaron kinetic energy.
  • interaction_energy: The calculated polaron interaction energy.
source
PolaronMobility.holstein_interaction_energyMethod
holstein_interaction_energy(v, w, α, ω; dims = 3)

Calculate the interaction energy between electrons and phonons in the Holstein model.

Arguments

  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • dims: An optional parameter representing the number of dimensions (default is 3).

Returns

  • integral: The interaction energy between electrons and phonons in the Holstein model.

Example

v = 0.2
 w = 0.1
 α = 0.5
 ω = 0.3
 result = holstein_interaction_energy(v, w, α, ω)
-println(result)

This example calculates the interaction energy for given values of v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_interaction_energyMethod
holstein_interaction_energy(v, w, α, ω, β; dims = 3)

Electron-phonon interaction energy for the Holstein mode at finite temperature. Here the k-space integral is evaluated analytically.

Arguments

  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • β: A scalar representing the inverse temperature.
  • dims: An optional argument representing the number of dimensions. Default is 3.

Returns

  • integral: The electron-phonon interaction energy for the Holstein mode at finite temperature.

Example

v = 0.2
+println(result)

This example calculates the interaction energy for given values of v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_interaction_energyMethod
holstein_interaction_energy(v, w, α, ω, β; dims = 3)

Electron-phonon interaction energy for the Holstein mode at finite temperature. Here the k-space integral is evaluated analytically.

Arguments

  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • β: A scalar representing the inverse temperature.
  • dims: An optional argument representing the number of dimensions. Default is 3.

Returns

  • integral: The electron-phonon interaction energy for the Holstein mode at finite temperature.

Example

v = 0.2
 w = 0.1
 α = 0.5
 ω = 0.3
 β = 1.0
 result = holstein_interaction_energy(v, w, α, ω, β)
-println(result)

This example calculates the electron-phonon interaction energy for given values of v, w, α, ω, and β. The result is then printed.

source
PolaronMobility.holstein_interaction_energy_integrandMethod
holstein_interaction_energy_integrand(τ, v, w, α, ω; dims = 3)

Calculate the integrand for the Holstein interaction energy.

Arguments

  • τ: A scalar representing the imaginary time.
  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • dims: An optional parameter representing the number of dimensions (default is 3).

Returns

The integrand for the Holstein interaction energy.

Example

τ = 0.5
+println(result)

This example calculates the electron-phonon interaction energy for given values of v, w, α, ω, and β. The result is then printed.

source
PolaronMobility.holstein_interaction_energy_integrandMethod
holstein_interaction_energy_integrand(τ, v, w, α, ω; dims = 3)

Calculate the integrand for the Holstein interaction energy.

Arguments

  • τ: A scalar representing the imaginary time.
  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • dims: An optional parameter representing the number of dimensions (default is 3).

Returns

The integrand for the Holstein interaction energy.

Example

τ = 0.5
 v = 0.2
 w = 0.1
 α = 0.3
 ω = 0.4
 result = holstein_interaction_energy_integrand(τ, v, w, α, ω)
-println(result)

This example calculates the integrand for the Holstein interaction energy using the given values of τ, v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_interaction_energy_integrandMethod
holstein_interaction_energy_integrand(τ, v, w, α, ω, β; dims = 3)

Calculate the integrand for the Holstein interaction energy.

Arguments

  • τ: A scalar representing the imaginary time.
  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • β: A scalar representing the inverse temperature.
  • dims: An optional parameter representing the number of dimensions (default is 3).

Returns

The integrand for the Holstein interaction energy.

Example

τ = 0.5
+println(result)

This example calculates the integrand for the Holstein interaction energy using the given values of τ, v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_interaction_energy_integrandMethod
holstein_interaction_energy_integrand(τ, v, w, α, ω, β; dims = 3)

Calculate the integrand for the Holstein interaction energy.

Arguments

  • τ: A scalar representing the imaginary time.
  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • α: A scalar representing the electron-phonon coupling.
  • ω: A scalar representing the adiabaticity.
  • β: A scalar representing the inverse temperature.
  • dims: An optional parameter representing the number of dimensions (default is 3).

Returns

The integrand for the Holstein interaction energy.

Example

τ = 0.5
 v = 0.2
 w = 0.1
 α = 0.3
 ω = 0.4
 β = 1.0
 result = holstein_interaction_energy_integrand(τ, v, w, α, ω, β)
-println(result)

This example calculates the integrand for the Holstein interaction energy using the given values of τ, v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_interaction_energy_integrand_k_spaceMethod
holstein_interaction_energy_integrand_k_space(τ, v, w, α, ω; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the integrand for the Holstein interaction energy in k-space at zero temperature.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the integrand for the Holstein interaction energy in k-space at zero temperature.

source
PolaronMobility.holstein_interaction_energy_integrand_k_spaceMethod
holstein_interaction_energy_integrand_k_space(τ, v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the integrand for the Holstein interaction energy in k-space at finite temperature.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the integrand for the Holstein interaction energy in k-space at finite temperature.

source
PolaronMobility.holstein_interaction_energy_k_spaceMethod
holstein_interaction_energy_k_space(v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the Holstein polaron interaction energy in k-space at zero temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Holstein polaron interaction energy in k-space at zero temperature.

source
PolaronMobility.holstein_interaction_energy_k_spaceMethod
holstein_interaction_energy_k_space(v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the Holstein polaron interaction energy in k-space at finite temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Holstein polaron interaction energy in k-space at finite temperature.

source
PolaronMobility.holstein_memory_functionMethod
holstein_memory_function(Ω, v, w, α, ω; dims = 3)

Calculate the integral of a structure factor using the general_memory_function function.

Arguments

  • Ω: The frequency parameter.
  • v, w, α, ω: Parameters used in the holstein_structure_factor function.
  • dims: Optional parameter specifying the number of dimensions, defaults to 3.

Returns

The integral value of the structure factor.

Example

result = holstein_memory_function(Ω, v, w, α, ω; dims = 3)

In this example, the holstein_memory_function is called with the parameters Ω, v, w, α, and ω. The dims parameter is optional and defaults to 3. The function calculates the structure factor using the holstein_structure_factor function and then calls the general_memory_function to calculate the integral of the structure factor. The result is stored in the result variable.

source
PolaronMobility.holstein_memory_functionMethod
holstein_memory_function(Ω, v, w, α, ω, β; dims = 3)

Calculate the memory function using the general_memory_function function.

Arguments

  • Ω: a parameter representing a frequency
  • v, w, α, ω, β: parameters used to calculate the structure factor
  • dims: an optional parameter representing the dimensions (default value is 3)

Returns

The result of the general_memory_function function, which represents the calculated memory function.

Example

result = holstein_memory_function(Ω, v, w, α, ω, β; dims = 3)

In this example, the holstein_memory_function is called with the input parameters Ω, v, w, α, ω, and β, and the optional parameter dims set to 3. The function calculates the memory function using the general_memory_function function and returns the result.

source
PolaronMobility.holstein_memory_function_k_spaceMethod
holstein_memory_function_k_space(Ω, v, w, α, ω; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the memory function for the Holstein model in k-space at zero temperature and finite frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the memory function of the Holstein model in k-space at zero temperature evaluated at the frequency Ω.

source
PolaronMobility.holstein_memory_function_k_spaceMethod
holstein_memory_function_k_space(Ω, v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the memory function for the Holstein model in k-space at finite temperature and frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the memory function of the Holstein model in k-space at finite temperature evaluated at the frequency Ω.

source
PolaronMobility.holstein_mobilityMethod
holstein_mobility(v, w, α, ω, β; dims = 3)

Calculate the mobility using the general_memory_function and holstein_structure_factor functions.

Arguments

  • v: Parameter used in the holstein_structure_factor function.
  • w: Parameter used in the holstein_structure_factor function.
  • α: Parameter used in the holstein_structure_factor function.
  • ω: Parameter used in the holstein_structure_factor function.
  • β: Parameter used in the holstein_structure_factor function.
  • dims: The dimensionality of the system. Default is 3.

Returns

The calculated mobility.

Example

v = 1.0
+println(result)

This example calculates the integrand for the Holstein interaction energy using the given values of τ, v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_interaction_energy_integrand_k_spaceMethod
holstein_interaction_energy_integrand_k_space(τ, v, w, α, ω; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the integrand for the Holstein interaction energy in k-space at zero temperature.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the integrand for the Holstein interaction energy in k-space at zero temperature.

source
PolaronMobility.holstein_interaction_energy_integrand_k_spaceMethod
holstein_interaction_energy_integrand_k_space(τ, v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the integrand for the Holstein interaction energy in k-space at finite temperature.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the integrand for the Holstein interaction energy in k-space at finite temperature.

source
PolaronMobility.holstein_interaction_energy_k_spaceMethod
holstein_interaction_energy_k_space(v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the Holstein polaron interaction energy in k-space at zero temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Holstein polaron interaction energy in k-space at zero temperature.

source
PolaronMobility.holstein_interaction_energy_k_spaceMethod
holstein_interaction_energy_k_space(v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the Holstein polaron interaction energy in k-space at finite temperaure.

Arguments

  • τ: a scalar value representing the imaginary time.
  • v: a scalar value representing a variational paramater.
  • w: a scalar value representing a variational paramater.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an optional array of two scalar values representing the lower and upper limits of the integration range in k-space. Default value is [-π, π].

Returns

A scalar value representing the Holstein polaron interaction energy in k-space at finite temperature.

source
PolaronMobility.holstein_memory_functionMethod
holstein_memory_function(Ω, v, w, α, ω; dims = 3)

Calculate the integral of a structure factor using the general_memory_function function.

Arguments

  • Ω: The frequency parameter.
  • v, w, α, ω: Parameters used in the holstein_structure_factor function.
  • dims: Optional parameter specifying the number of dimensions, defaults to 3.

Returns

The integral value of the structure factor.

Example

result = holstein_memory_function(Ω, v, w, α, ω; dims = 3)

In this example, the holstein_memory_function is called with the parameters Ω, v, w, α, and ω. The dims parameter is optional and defaults to 3. The function calculates the structure factor using the holstein_structure_factor function and then calls the general_memory_function to calculate the integral of the structure factor. The result is stored in the result variable.

source
PolaronMobility.holstein_memory_functionMethod
holstein_memory_function(Ω, v, w, α, ω, β; dims = 3)

Calculate the memory function using the general_memory_function function.

Arguments

  • Ω: a parameter representing a frequency
  • v, w, α, ω, β: parameters used to calculate the structure factor
  • dims: an optional parameter representing the dimensions (default value is 3)

Returns

The result of the general_memory_function function, which represents the calculated memory function.

Example

result = holstein_memory_function(Ω, v, w, α, ω, β; dims = 3)

In this example, the holstein_memory_function is called with the input parameters Ω, v, w, α, ω, and β, and the optional parameter dims set to 3. The function calculates the memory function using the general_memory_function function and returns the result.

source
PolaronMobility.holstein_memory_function_k_spaceMethod
holstein_memory_function_k_space(Ω, v, w, α, ω; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the memory function for the Holstein model in k-space at zero temperature and finite frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the memory function of the Holstein model in k-space at zero temperature evaluated at the frequency Ω.

source
PolaronMobility.holstein_memory_function_k_spaceMethod
holstein_memory_function_k_space(Ω, v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the memory function for the Holstein model in k-space at finite temperature and frequency.

Arguments

  • Ω: a scalar value representing the frequency at which the memory function is evaluated.
  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the memory function of the Holstein model in k-space at finite temperature evaluated at the frequency Ω.

source
PolaronMobility.holstein_mobilityMethod
holstein_mobility(v, w, α, ω, β; dims = 3)

Calculate the mobility using the general_memory_function and holstein_structure_factor functions.

Arguments

  • v: Parameter used in the holstein_structure_factor function.
  • w: Parameter used in the holstein_structure_factor function.
  • α: Parameter used in the holstein_structure_factor function.
  • ω: Parameter used in the holstein_structure_factor function.
  • β: Parameter used in the holstein_structure_factor function.
  • dims: The dimensionality of the system. Default is 3.

Returns

The calculated mobility.

Example

v = 1.0
 w = 2.0
 α = 0.5
 ω = 1.0
@@ -69,37 +69,37 @@
 dims = 3
 
 result = holstein_mobility(v, w, α, ω, β, dims=dims)
-println(result)

This code calculates the mobility using the given parameters and prints the result.

source
PolaronMobility.holstein_mobility_k_spaceMethod
holstein_mobility_k_space(v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the DC mobility in k-space for a Holstein polaron system at finite temperature.

Arguments

  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

The DC mobility in k-space for the Holstein polaron system at finite temperature.

source
PolaronMobility.holstein_structure_factorMethod
holstein_structure_factor(t, v, w, α, ω; dims = 3)

Calculate the structure factor for the Holstein model.

Arguments

  • t: A scalar representing the time.
  • v: A scalar representing a parameter.
  • w: A scalar representing a parameter.
  • α: A scalar representing a parameter.
  • ω: A scalar representing a parameter.
  • dims: An optional integer representing the number of dimensions (default is 3).

Returns

The value of the structure factor.

Example

t = 0.5
+println(result)

This code calculates the mobility using the given parameters and prints the result.

source
PolaronMobility.holstein_mobility_k_spaceMethod
holstein_mobility_k_space(v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the DC mobility in k-space for a Holstein polaron system at finite temperature.

Arguments

  • v: a scalar value representing the optimal variational parameter.
  • w: a scalar value representing the optimal variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

The DC mobility in k-space for the Holstein polaron system at finite temperature.

source
PolaronMobility.holstein_structure_factorMethod
holstein_structure_factor(t, v, w, α, ω; dims = 3)

Calculate the structure factor for the Holstein model.

Arguments

  • t: A scalar representing the time.
  • v: A scalar representing a parameter.
  • w: A scalar representing a parameter.
  • α: A scalar representing a parameter.
  • ω: A scalar representing a parameter.
  • dims: An optional integer representing the number of dimensions (default is 3).

Returns

The value of the structure factor.

Example

t = 0.5
 v = 0.2
 w = 0.1
 α = 1.0
 ω = 0.5
 result = holstein_structure_factor(t, v, w, α, ω)
-println(result)

This example calculates the structure factor for the given values of t, v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_structure_factorMethod
holstein_structure_factor(t, v, w, α, ω, β; dims = 3)

Calculate the structure factor for the Holstein model.

Arguments

  • t: A scalar representing the time.
  • v: A scalar representing a parameter.
  • w: A scalar representing a parameter.
  • α: A scalar representing a coupling constant.
  • ω: A scalar representing a coupling constant.
  • β: A scalar representing the inverse temperature.
  • dims: An optional argument representing the number of dimensions. Default is 3.

Returns

The value of the structure factor for the given inputs.

Example

t = 0.5
+println(result)

This example calculates the structure factor for the given values of t, v, w, α, and ω. The result is then printed.

source
PolaronMobility.holstein_structure_factorMethod
holstein_structure_factor(t, v, w, α, ω, β; dims = 3)

Calculate the structure factor for the Holstein model.

Arguments

  • t: A scalar representing the time.
  • v: A scalar representing a parameter.
  • w: A scalar representing a parameter.
  • α: A scalar representing a coupling constant.
  • ω: A scalar representing a coupling constant.
  • β: A scalar representing the inverse temperature.
  • dims: An optional argument representing the number of dimensions. Default is 3.

Returns

The value of the structure factor for the given inputs.

Example

t = 0.5
 v = 0.2
 w = 0.1
 α = 0.3
 ω = 0.4
 β = 1.0
 result = holstein_structure_factor(t, v, w, α, ω, β)
-println(result)

This example demonstrates how to use the holstein_structure_factor function to calculate the structure factor for a given set of parameters. The function is called with the values of t, v, w, α, ω, and β as arguments, and the result is then printed.

source
PolaronMobility.holstein_structure_factor_k_spaceMethod
holstein_structure_factor_k_space(t, v, w, α, ω; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the structure factor in k-space for the Holstein lattice polaron model at zero temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing a variational parameter.
  • w: a scalar value representing a variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the calculated structure factor in k-space for the Holstein lattice polaron model at zero temperature.

source
PolaronMobility.holstein_structure_factor_k_spaceMethod
holstein_structure_factor_k_space(t, v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the structure factor in k-space for the Holstein lattice polaron model at finite temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing a variational parameter.
  • w: a scalar value representing a variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the calculated structure factor in k-space for the Holstein lattice polaron model at finite temperature.

source
PolaronMobility.inverse_Hellwarth_mobilityMethod
inverse_Hellwarth_mobility(v, w, α, ω, β)

Calculates the DC mobility using Hellwarth et al. 1999 Eqn. (2). Directly performs contour integration in Feynman1962, for finite temperature DC mobility. Eqns. (2) and (1) are going back to the general (pre low-T limit) formulas in Feynman1962. To evaluate these, you need to do the explicit contour integration to get the polaron self-energy.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

See also Hellwarth_mobility

source
PolaronMobility.inverse_polaron_mobilityMethod
inverse_polaron_mobility(v, w, α, ω, β)

Calculate the inverse of the dc mobility μ of the polaron at finite temperatues (Eqn. (11.5) in F. Peeters and J. Devreese 1984) for a given frequency Ω.

Arguments

  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • ω::Float64: is the angular phonon frequency.
  • β::Float64: is the reduced thermodynamic beta.
  • verbose: is used by make_polaron() to specify whether or not to print. Ignore.

See F. Peeters and J. Devreese 1984: https://doi.org/10.1016/S0081-1947(08)60312-4.

See also polaron_mobility, polaron_complex_conductivity

source
PolaronMobility.materialMethod
material(ϵ_optical, ϵ_static, m_eff, phonon_freq)
+println(result)

This example demonstrates how to use the holstein_structure_factor function to calculate the structure factor for a given set of parameters. The function is called with the values of t, v, w, α, ω, and β as arguments, and the result is then printed.

source
PolaronMobility.holstein_structure_factor_k_spaceMethod
holstein_structure_factor_k_space(t, v, w, α, ω; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the structure factor in k-space for the Holstein lattice polaron model at zero temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing a variational parameter.
  • w: a scalar value representing a variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the calculated structure factor in k-space for the Holstein lattice polaron model at zero temperature.

source
PolaronMobility.holstein_structure_factor_k_spaceMethod
holstein_structure_factor_k_space(t, v, w, α, ω, β; dims = 3, rₚ = 1, a = 1, limits = [-π, π])

Calculate the structure factor in k-space for the Holstein lattice polaron model at finite temperature.

Arguments

  • t: a scalar value representing the real time.
  • v: a scalar value representing a variational parameter.
  • w: a scalar value representing a variational parameter.
  • α: a scalar value representing the coupling constant.
  • ω: a scalar value representing the phonon frequency.
  • β: a scalar value representing the inverse temperature.
  • dims: an optional scalar value representing the dimensionality of the system. Default value is 3.
  • rₚ: an optional scalar value representing the characteristic polaron radius. Default value is 1.
  • a: an optional scalar value representing the lattice constant. Default value is 1.
  • limits: an array of two scalar values representing the lower and upper limits of the integration range in k-space. Default is 1D Brillouin zone.

Returns

A scalar value representing the calculated structure factor in k-space for the Holstein lattice polaron model at finite temperature.

source
PolaronMobility.inverse_Hellwarth_mobilityMethod
inverse_Hellwarth_mobility(v, w, α, ω, β)

Calculates the DC mobility using Hellwarth et al. 1999 Eqn. (2). Directly performs contour integration in Feynman1962, for finite temperature DC mobility. Eqns. (2) and (1) are going back to the general (pre low-T limit) formulas in Feynman1962. To evaluate these, you need to do the explicit contour integration to get the polaron self-energy.

See Hellwarth et a. 1999: https://doi.org/10.1103/PhysRevB.60.299.

See also Hellwarth_mobility

source
PolaronMobility.inverse_polaron_mobilityMethod
inverse_polaron_mobility(v, w, α, ω, β)

Calculate the inverse of the dc mobility μ of the polaron at finite temperatues (Eqn. (11.5) in F. Peeters and J. Devreese 1984) for a given frequency Ω.

Arguments

  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • ω::Float64: is the angular phonon frequency.
  • β::Float64: is the reduced thermodynamic beta.
  • verbose: is used by make_polaron() to specify whether or not to print. Ignore.

See F. Peeters and J. Devreese 1984: https://doi.org/10.1016/S0081-1947(08)60312-4.

See also polaron_mobility, polaron_complex_conductivity

source
PolaronMobility.materialMethod
material(ϵ_optical, ϵ_static, m_eff, phonon_freq)
 
 Construct a 'struct Material' object from traditional Frohlich Hamiltonian parameters. 
 
-ϵ_ionic and α derived from these parmaters; other material properties filled with bogus values.
source
PolaronMobility.materialMethod
material(ϵ_optic, ϵ_static, m_eff, phonon_freqs, ir_activity, volume)
+ϵ_ionic and α derived from these parmaters; other material properties filled with bogus values.
source
PolaronMobility.materialMethod
material(ϵ_optic, ϵ_static, m_eff, phonon_freqs, ir_activity, volume)
 
 Construct a 'struct Material' object from a set of infrared activities and phonon
 frequencies, for use with the 'multiple phonon branches' extension of the code. 
 
 effective_freq calculated with the Hellwarth 'B' scheme; ϵ_ionic and α calculated from
-the infrared activties.
source
PolaronMobility.optical_absorptionMethod
optical_absorption(Ω, β, α, v, w; rtol = 1e-3)

Calculate the absorption coefficient Γ(Ω) for the polaron at at finite temperatures (Eqn. (11a) in DSG 1972) for a given frequency Ω.

Arguments

  • Ω::Float64: is the frequency (2π THz) of applied electric field.
  • β::Float64: is the reduced thermodynamic betas.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • rtol: relative tolerance for the accuracy of any quadrature integrations.

See DSG 1972: https://doi.org/10.1103/PhysRevB.5.2367.

source
PolaronMobility.phonon_propagatorMethod
phonon_propagator(τ, ω, β)

Calculate the value of the phonon propagator at a given imaginary time (τ), phonon frequency (ω), and inverse temperature (β).

Arguments

  • τ: A scalar representing the imaginary time.
  • ω: A scalar representing the phonon frequency.
  • β: A scalar representing the inverse temperature.

Returns

The value of the phonon propagator.

Example

τ = 0.5
+the infrared activties.
source
PolaronMobility.optical_absorptionMethod
optical_absorption(Ω, β, α, v, w; rtol = 1e-3)

Calculate the absorption coefficient Γ(Ω) for the polaron at at finite temperatures (Eqn. (11a) in DSG 1972) for a given frequency Ω.

Arguments

  • Ω::Float64: is the frequency (2π THz) of applied electric field.
  • β::Float64: is the reduced thermodynamic betas.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • rtol: relative tolerance for the accuracy of any quadrature integrations.

See DSG 1972: https://doi.org/10.1103/PhysRevB.5.2367.

source
PolaronMobility.phonon_propagatorMethod
phonon_propagator(τ, ω, β)

Calculate the value of the phonon propagator at a given imaginary time (τ), phonon frequency (ω), and inverse temperature (β).

Arguments

  • τ: A scalar representing the imaginary time.
  • ω: A scalar representing the phonon frequency.
  • β: A scalar representing the inverse temperature.

Returns

The value of the phonon propagator.

Example

τ = 0.5
 ω = 0.2
 β = 1.0
 result = phonon_propagator(τ, ω, β)
-println(result)

This example calculates the value of the phonon propagator for τ = 0.5, ω = 0.2, and β = 1.0. The result is then printed.

source
PolaronMobility.phonon_propagatorMethod
phonon_propagator(τ, ω)

Calculate the value of the phonon propagator based on the given inputs.

Arguments

  • τ: A scalar representing the imaginary time.
  • ω: A scalar representing the adiabaticity.

Example

τ = 0.5
+println(result)

This example calculates the value of the phonon propagator for τ = 0.5, ω = 0.2, and β = 1.0. The result is then printed.

source
PolaronMobility.phonon_propagatorMethod
phonon_propagator(τ, ω)

Calculate the value of the phonon propagator based on the given inputs.

Arguments

  • τ: A scalar representing the imaginary time.
  • ω: A scalar representing the adiabaticity.

Example

τ = 0.5
 ω = 0.2
 result = phonon_propagator(τ, ω)
-println(result)

This example calculates the value of the phonon propagator for the given values of τ and ω. The result is then printed.

Returns

The value of the phonon propagator.

source
PolaronMobility.polaronMethod
polaron(αrange, Trange, Ωrange, ω, v_guesses, w_guesses; verbose=false)

Outer constructor for the Polaron type. This function evaluates model data for the polaron, i.e. unitless and not material specific.

Examples

julia> polaron(6, 300, 3, 1.0, 3.6, 2.8)
source
PolaronMobility.polaronMethod
polaron(material::Material, TΩrange...; v_guesses=3.11, w_guesses=2.87, verbose=false)

Material specific constructors that use material specific parameters to parameterise the polaron. Material data is inputted through the Material type. Returns all data in either SI units or other common, suitable units otherwise.

source
PolaronMobility.polaron_complex_conductivityMethod
polaron_complex_conductivity(Ω, β, α, v, w; rtol = 1e-3)

Calculate the complex conductivity σ(Ω) of the polaron at finite temperatures for a given frequency Ω (equal to 1 / Z(Ω) with Z the complex impedence).

Arguments

  • Ω::Float64: is the frequency (2π THz) of applied electric field.
  • β::Float64: is the reduced thermodynamic betas.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • rtol: relative tolerance for the accuracy of any quadrature integrations.

See also polaron_complex_impedence

source
PolaronMobility.polaron_complex_impedenceMethod
polaron_complex_impedence(Ω, β, α, v, w; rtol = 1e-3, T = nothing, verbose = false)

Calculate the complex impedence Z(Ω) of the polaron at finite temperatures for a given frequency Ω (Eqn. (41) in FHIP 1962).

Arguments

  • Ω::Float64: is the frequency (2π THz) of applied electric field.
  • β::Float64: is the reduced thermodynamic betas.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • rtol: relative tolerance for the accuracy of any quadrature integrations.
  • T: is a token used by make_polaron() to keep track of the temperature for printing during a calculation. Do not alter.
  • verbose: is used by make_polaron() to specify whether or not to print. Ignore.

See FHIP 1962: https://doi.org/10.1103/PhysRev.127.1004.

source
PolaronMobility.polaron_memory_functionMethod
polaron_memory_function(Ω, β, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate the memory function χ(Ω) of the polaron at finite temperatures (equation (35) in FHIP 1962) for a given frequency Ω.

Includes conditionals for zero-temperature and DC limits.

Arguments

  • Ω::Float64: electric field frequency (2π THz).
  • β::Union{Float64, Vector{Float64} reduced thermodynamic temperatures (unitless). Either a single value for one phonon frequency or a vector of values for multiple phonon frequencies.
  • α::Union{Float64, Vector{Float64}}: Frohlich alpha coupling parameter (unitless). Either a single value for one phonon frequency or a vector of values for multiple phonon frequencies.
  • v::Union{Float64, Vector{Float64}}: variational 'v' parameters that minimise the polaron free energy (unitless).
  • w::Union{Float64, Vector{Float64}}: variational 'w' parameters that minimise the polaron free energy (unitless).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

Returns

  • χ: The calculated memory function χ(Ω) of the polaron.

Example

χ = polaron_memory_function(v, w, α, ω, β, Ω)

Description

The code snippet is a function called polaron_memory_function that calculates the memory function χ(Ω) of a polaron at finite temperatures. It includes conditionals for different cases: zero-temperature and DC limits, zero temperature limit at AC finite frequencies, and finite temperatures and frequencies away from zero limits.

If Ω is zero and β is infinity, the code returns a complex number with zero real part and infinity imaginary part. If Ω is zero and β is not infinity, the code calls the polaron_memory_function_dc function to calculate the memory function at the DC zero frequency limit. If Ω is not zero and β is infinity, the code calls the polaron_memory_function_athermal function to calculate the memory function at the zero temperature limit with AC finite frequencies. If Ω is not zero and β is not infinity, the code calls the polaron_memory_function_thermal function to calculate the memory function at finite temperatures and frequencies away from zero limits. If none of the above conditions are met, an error message is printed.

source
PolaronMobility.polaron_memory_functionMethod
polaron_memory_function(v, w, α::Vector, ω::Vector, β, Ω)

Apply the polaron_memory_function to each element of the input vectors and return the sum of the results.

Arguments

  • v::Vector: A vector of values.
  • w::Vector: A vector of values.
  • α::Vector: A vector of values.
  • ω::Vector: A vector of values.
  • β: A value.
  • Ω: A value.

Returns

The sum of the polaron_memory_function applied to each element of the input vectors.

Example

v = [1, 2, 3]
+println(result)

This example calculates the value of the phonon propagator for the given values of τ and ω. The result is then printed.

Returns

The value of the phonon propagator.

source
PolaronMobility.polaronMethod
polaron(αrange, Trange, Ωrange, ω, v_guesses, w_guesses; verbose=false)

Outer constructor for the Polaron type. This function evaluates model data for the polaron, i.e. unitless and not material specific.

Examples

julia> polaron(6, 300, 3, 1.0, 3.6, 2.8)
source
PolaronMobility.polaronMethod
polaron(material::Material, TΩrange...; v_guesses=3.11, w_guesses=2.87, verbose=false)

Material specific constructors that use material specific parameters to parameterise the polaron. Material data is inputted through the Material type. Returns all data in either SI units or other common, suitable units otherwise.

source
PolaronMobility.polaron_complex_conductivityMethod
polaron_complex_conductivity(Ω, β, α, v, w; rtol = 1e-3)

Calculate the complex conductivity σ(Ω) of the polaron at finite temperatures for a given frequency Ω (equal to 1 / Z(Ω) with Z the complex impedence).

Arguments

  • Ω::Float64: is the frequency (2π THz) of applied electric field.
  • β::Float64: is the reduced thermodynamic betas.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • rtol: relative tolerance for the accuracy of any quadrature integrations.

See also polaron_complex_impedence

source
PolaronMobility.polaron_complex_impedenceMethod
polaron_complex_impedence(Ω, β, α, v, w; rtol = 1e-3, T = nothing, verbose = false)

Calculate the complex impedence Z(Ω) of the polaron at finite temperatures for a given frequency Ω (Eqn. (41) in FHIP 1962).

Arguments

  • Ω::Float64: is the frequency (2π THz) of applied electric field.
  • β::Float64: is the reduced thermodynamic betas.
  • α::Float64: is the Frohlich alpha coupling parameter.
  • v::Float64: is the 'v' variational parameter.
  • w::Float64: is the 'w' variational parameter.
  • rtol: relative tolerance for the accuracy of any quadrature integrations.
  • T: is a token used by make_polaron() to keep track of the temperature for printing during a calculation. Do not alter.
  • verbose: is used by make_polaron() to specify whether or not to print. Ignore.

See FHIP 1962: https://doi.org/10.1103/PhysRev.127.1004.

source
PolaronMobility.polaron_memory_functionMethod
polaron_memory_function(Ω, β, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate the memory function χ(Ω) of the polaron at finite temperatures (equation (35) in FHIP 1962) for a given frequency Ω.

Includes conditionals for zero-temperature and DC limits.

Arguments

  • Ω::Float64: electric field frequency (2π THz).
  • β::Union{Float64, Vector{Float64} reduced thermodynamic temperatures (unitless). Either a single value for one phonon frequency or a vector of values for multiple phonon frequencies.
  • α::Union{Float64, Vector{Float64}}: Frohlich alpha coupling parameter (unitless). Either a single value for one phonon frequency or a vector of values for multiple phonon frequencies.
  • v::Union{Float64, Vector{Float64}}: variational 'v' parameters that minimise the polaron free energy (unitless).
  • w::Union{Float64, Vector{Float64}}: variational 'w' parameters that minimise the polaron free energy (unitless).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

Returns

  • χ: The calculated memory function χ(Ω) of the polaron.

Example

χ = polaron_memory_function(v, w, α, ω, β, Ω)

Description

The code snippet is a function called polaron_memory_function that calculates the memory function χ(Ω) of a polaron at finite temperatures. It includes conditionals for different cases: zero-temperature and DC limits, zero temperature limit at AC finite frequencies, and finite temperatures and frequencies away from zero limits.

If Ω is zero and β is infinity, the code returns a complex number with zero real part and infinity imaginary part. If Ω is zero and β is not infinity, the code calls the polaron_memory_function_dc function to calculate the memory function at the DC zero frequency limit. If Ω is not zero and β is infinity, the code calls the polaron_memory_function_athermal function to calculate the memory function at the zero temperature limit with AC finite frequencies. If Ω is not zero and β is not infinity, the code calls the polaron_memory_function_thermal function to calculate the memory function at finite temperatures and frequencies away from zero limits. If none of the above conditions are met, an error message is printed.

source
PolaronMobility.polaron_memory_functionMethod
polaron_memory_function(v, w, α::Vector, ω::Vector, β, Ω)

Apply the polaron_memory_function to each element of the input vectors and return the sum of the results.

Arguments

  • v::Vector: A vector of values.
  • w::Vector: A vector of values.
  • α::Vector: A vector of values.
  • ω::Vector: A vector of values.
  • β: A value.
  • Ω: A value.

Returns

The sum of the polaron_memory_function applied to each element of the input vectors.

Example

v = [1, 2, 3]
 w = [4, 5, 6]
 α = [0.1, 0.2, 0.3]
 ω = [0.5, 0.6, 0.7]
@@ -108,27 +108,27 @@
 
 result = polaron_memory_function(v, w, α, ω, β, Ω)
 
-println(result)  # Output: the sum of the function applied to each element of the input vectors
source
PolaronMobility.polaron_memory_function_athermalMethod
function polaron_memory_function_athermal(Ω, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate polaron complex memory function at zero-temperature inclusive of multiple phonon branches j, each with angular frequency ωj.

Arguments

  • Ω::Float64: is the frequency (THz) of applied electric field.
  • α::Vector{Float64}: is an array of decomposed Frohlich alphas, one for each phonon frequency ω[j].
  • v::Union{Float64, Vector{Float64}}: is a vector or single value of the 'v' variational parameter(s).
  • w::Union{Float64, Vector{Float64}}: is a vector or single value of the 'w' variational parameter(s).
  • m_eff::Float64: is the bare-band mass of the particle (typically electron / hole, in units of electron mass m_e).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

See also polaron_memory_function.

source
PolaronMobility.polaron_memory_function_dcMethod
function polaron_memory_function_dc(β, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate zero-frequency polaron complex memory function at finite temperature inclusive of multiple phonon branches j, each with angular frequency ωj.

Arguments

  • β::Vector{Float64}: is an array of reduced thermodynamic betas, one for each phonon frequency ω[j].
  • α::Vector{Float64}: is an array of decomposed Frohlich alphas, one for each phonon frequency ω[j].
  • v::Union{Float64, Vector{Float64}}: is a vector or single value of the 'v' variational parameter(s).
  • w::Union{Float64, Vector{Float64}}: is a vector or single value of the 'w' variational parameter(s).
  • m_eff::Float64: is the bare-band mass of the particle (typically electron / hole, in units of electron mass m_e).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

See also polaron_memory_function.

source
PolaronMobility.polaron_memory_function_thermalMethod
function polaron_memory_function_thermal(Ω, β, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate polaron complex memory function at finite temperature inclusive of multiple phonon branches j, each with angular frequency ωj.

Arguments

  • Ω::Float64: is the frequency (THz) of applied electric field.
  • β::Vector{Float64}: is an array of reduced thermodynamic betas, one for each phonon frequency ω[j].
  • α::Vector{Float64}: is an array of decomposed Frohlich alphas, one for each phonon frequency ω[j].
  • v::Union{Float64, Vector{Float64}}: is a vector or single value of the 'v' variational parameter(s).
  • w::Union{Float64, Vector{Float64}}: is a vector or single value of the 'w' variational parameter(s).
  • m_eff::Float64: is the bare-band mass of the particle (typically electron / hole, in units of electron mass m_e).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

See also polaron_memory_function.

source
PolaronMobility.polaron_propagatorMethod
polaron_propagator(τ, v, w, β)

Calculate the imaginary time polaron Green's function with temperature dependence.

Arguments

  • τ: A scalar representing the imaginary time.
  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • β: A scalar representing the inverse temperature.

Returns

The value of the polaron propagator.

Example

τ = 0.5
+println(result)  # Output: the sum of the function applied to each element of the input vectors
source
PolaronMobility.polaron_memory_function_athermalMethod
function polaron_memory_function_athermal(Ω, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate polaron complex memory function at zero-temperature inclusive of multiple phonon branches j, each with angular frequency ωj.

Arguments

  • Ω::Float64: is the frequency (THz) of applied electric field.
  • α::Vector{Float64}: is an array of decomposed Frohlich alphas, one for each phonon frequency ω[j].
  • v::Union{Float64, Vector{Float64}}: is a vector or single value of the 'v' variational parameter(s).
  • w::Union{Float64, Vector{Float64}}: is a vector or single value of the 'w' variational parameter(s).
  • m_eff::Float64: is the bare-band mass of the particle (typically electron / hole, in units of electron mass m_e).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

See also polaron_memory_function.

source
PolaronMobility.polaron_memory_function_dcMethod
function polaron_memory_function_dc(β, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate zero-frequency polaron complex memory function at finite temperature inclusive of multiple phonon branches j, each with angular frequency ωj.

Arguments

  • β::Vector{Float64}: is an array of reduced thermodynamic betas, one for each phonon frequency ω[j].
  • α::Vector{Float64}: is an array of decomposed Frohlich alphas, one for each phonon frequency ω[j].
  • v::Union{Float64, Vector{Float64}}: is a vector or single value of the 'v' variational parameter(s).
  • w::Union{Float64, Vector{Float64}}: is a vector or single value of the 'w' variational parameter(s).
  • m_eff::Float64: is the bare-band mass of the particle (typically electron / hole, in units of electron mass m_e).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

See also polaron_memory_function.

source
PolaronMobility.polaron_memory_function_thermalMethod
function polaron_memory_function_thermal(Ω, β, α, v, w; ω = 1.0, rtol = 1e-3)

Calculate polaron complex memory function at finite temperature inclusive of multiple phonon branches j, each with angular frequency ωj.

Arguments

  • Ω::Float64: is the frequency (THz) of applied electric field.
  • β::Vector{Float64}: is an array of reduced thermodynamic betas, one for each phonon frequency ω[j].
  • α::Vector{Float64}: is an array of decomposed Frohlich alphas, one for each phonon frequency ω[j].
  • v::Union{Float64, Vector{Float64}}: is a vector or single value of the 'v' variational parameter(s).
  • w::Union{Float64, Vector{Float64}}: is a vector or single value of the 'w' variational parameter(s).
  • m_eff::Float64: is the bare-band mass of the particle (typically electron / hole, in units of electron mass m_e).
  • ω::Union{Float64, Vector{Float64}}: phonon mode frequencies (2π THz). Predefined as ω = 1.0 for a single mode in polaron units.
  • rtol = 1e-3: specifies the relative error tolerance for the QuadGK integral.

See also polaron_memory_function.

source
PolaronMobility.polaron_propagatorMethod
polaron_propagator(τ, v, w, β)

Calculate the imaginary time polaron Green's function with temperature dependence.

Arguments

  • τ: A scalar representing the imaginary time.
  • v: A scalar representing a variational parameter.
  • w: A scalar representing a variational parameter.
  • β: A scalar representing the inverse temperature.

Returns

The value of the polaron propagator.

Example

τ = 0.5
 v = 0.2
 w = 0.1
 β = 1.0
 result = polaron_propagator(τ, v, w, β)
-println(result)

This example calculates the polaron propagator for given values of τ, v, w, and β. The result is then printed.

source
PolaronMobility.polaron_propagatorMethod
polaron_propagator(τ, v, w)

Calculate the value of the polaron propagator based on the given inputs.

Arguments

  • τ::Number: A scalar representing the imaginary time.
  • v::Number: A scalar representing a variational parameter.
  • w::Number: A scalar representing a variational parameter.

Returns

The value of the polaron propagator.

Example

τ = 0.5
+println(result)

This example calculates the polaron propagator for given values of τ, v, w, and β. The result is then printed.

source
PolaronMobility.polaron_propagatorMethod
polaron_propagator(τ, v, w)

Calculate the value of the polaron propagator based on the given inputs.

Arguments

  • τ::Number: A scalar representing the imaginary time.
  • v::Number: A scalar representing a variational parameter.
  • w::Number: A scalar representing a variational parameter.

Returns

The value of the polaron propagator.

Example

τ = 0.5
 v = 0.2
 w = 0.1
 result = polaron_propagator(τ, v, w)
-println(result)

This example calculates the polaron propagator for the given values of τ, v, and w. The result is then printed.

source
PolaronMobility.puconvertMethod
puconvert(u::Unitful.Units, x::Number)

Interpret x as a quantity given in polaron units and convert it to the unit u.

source
PolaronMobility.punitMethod
punit(x::Unitful.Quantity)
+println(result)

This example calculates the polaron propagator for the given values of τ, v, and w. The result is then printed.

source
PolaronMobility.puconvertMethod
puconvert(u::Unitful.Units, x::Number)

Interpret x as a quantity given in polaron units and convert it to the unit u.

source
PolaronMobility.punitMethod
punit(x::Unitful.Quantity)
 punit(x::Unitful.Units)
-punit(x::Unitful.Dimensions)

Returns the appropriate polaron unit (a Unitful.Units object) for the dimension of x.

source
PolaronMobility.pustripMethod
pustrip(x::Unitful.Quantity)

Returns the value of the quantity converted to polaron units as a number type (i.e., with the units removed). This is equivalent to Unitful.ustrip(puconvert(x)).

source
PolaronMobility.save_polaronMethod
save_polaron(p::Polaron, prefix)

Saves data from 'polaron' into file "prefix". This is a .jdl file for storing the polaron data whilst preserving types. Allows for saving multidimensional arrays that sometimes arise in the polaron data. Each parameter in the NewPolaron type is saved as a dictionary entry. E.g. NewPolaron.α is saved under JLD.load("prefix.jld")["alpha"].

source
PolaronMobility.spherical_k_integralMethod
spherical_k_integral(coupling, propagator; rₚ = 1, limits = [0, Inf])

Calculate the k-space integral in spherical coordinates of the integrand spherical_k_integrand over a specified radius in k-space.

Arguments

  • coupling: A function that takes a scalar k value and returns a scalar value representing the coupling strength.
  • propagator: A scalar value representing the propagator.
  • rₚ: An optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: An array of two scalar values representing the lower and upper limits of the integration range in spherical coordinates. Default is [0, Inf] for infinite sphere.

Returns

A scalar value representing the calculated integral over the specified range in spherical coordinates.

Example

coupling(k) = k^2  # define the coupling function
+punit(x::Unitful.Dimensions)

Returns the appropriate polaron unit (a Unitful.Units object) for the dimension of x.

source
PolaronMobility.pustripMethod
pustrip(x::Unitful.Quantity)

Returns the value of the quantity converted to polaron units as a number type (i.e., with the units removed). This is equivalent to Unitful.ustrip(puconvert(x)).

source
PolaronMobility.save_polaronMethod
save_polaron(p::Polaron, prefix)

Saves data from 'polaron' into file "prefix". This is a .jdl file for storing the polaron data whilst preserving types. Allows for saving multidimensional arrays that sometimes arise in the polaron data. Each parameter in the NewPolaron type is saved as a dictionary entry. E.g. NewPolaron.α is saved under JLD.load("prefix.jld")["alpha"].

source
PolaronMobility.spherical_k_integralMethod
spherical_k_integral(coupling, propagator; rₚ = 1, limits = [0, Inf])

Calculate the k-space integral in spherical coordinates of the integrand spherical_k_integrand over a specified radius in k-space.

Arguments

  • coupling: A function that takes a scalar k value and returns a scalar value representing the coupling strength.
  • propagator: A scalar value representing the propagator.
  • rₚ: An optional scalar value representing the characteristic polaron radius. Default value is 1.
  • limits: An array of two scalar values representing the lower and upper limits of the integration range in spherical coordinates. Default is [0, Inf] for infinite sphere.

Returns

A scalar value representing the calculated integral over the specified range in spherical coordinates.

Example

coupling(k) = k^2  # define the coupling function
 propagator = 0.5  # define the propagator value
 result = spherical_k_integral(coupling, propagator; rₚ = 1, limits = [0, Inf])  # calculate the integral
-println(result)  # print the result

Expected Output: A scalar value representing the calculated k-space integral over the specified range in spherical coordinates.

source
PolaronMobility.spherical_k_integrandMethod
spherical_k_integrand(k, coupling, propagator; rₚ = 1)

Calculate the integrand for a k-space integral in spherical coordinates.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • coupling: a function that takes a scalar k value and returns a scalar value representing the coupling strength
  • propagator: a scalar value representing the propagator
  • rₚ: an optional scalar value representing the radius

Returns

The calculated integrand as a scalar value.

Example

coupling(k) = k^2  # define the coupling function
+println(result)  # print the result

Expected Output: A scalar value representing the calculated k-space integral over the specified range in spherical coordinates.

source
PolaronMobility.spherical_k_integrandMethod
spherical_k_integrand(k, coupling, propagator; rₚ = 1)

Calculate the integrand for a k-space integral in spherical coordinates.

Arguments

  • k: a scalar value representing the k-coordinate in k-space
  • coupling: a function that takes a scalar k value and returns a scalar value representing the coupling strength
  • propagator: a scalar value representing the propagator
  • rₚ: an optional scalar value representing the radius

Returns

The calculated integrand as a scalar value.

Example

coupling(k) = k^2  # define the coupling function
 propagator = 0.5  # define the propagator value
 result = spherical_k_integrand(2.0, coupling, propagator; rₚ = 1)  # calculate the integrand for k = 2.0
-println(result)  # print the result

Expected Output: 0.5

source
PolaronMobility.vw_variationMethod
vw_variation(energy, initial_v, initial_w; lower_bounds = [0, 0], upper_bounds = [Inf, Inf])

This function optimizes the values of v and w to minimize the energy function energy(x[1] + x[2], x[2])[1]. It uses the Optim package to perform the optimization and returns the optimized values of v and w, as well as the minimized energy, kinetic energy, and potential energy.

Arguments

  • energy: A function that takes two arguments x and y and returns an array of energy components.
  • initial_v: The initial value of v.
  • initial_w: The initial value of w.
  • lower_bounds: An optional array representing the lower bounds for v and w optimization. Default is [0, 0].
  • upper_bounds: An optional array representing the upper bounds for v and w optimization. Default is [Inf, Inf].

Returns

  • Δv + w: The optimized value of v.
  • w: The optimized value of w.
  • energy_minimized: The minimized energy.
  • kinetic_energy: The kinetic energy corresponding to the minimized energy.
  • potential_energy: The potential energy corresponding to the minimized energy.

Example

energy(x, y) = [x^2 + y^2, x^2, y^2]
+println(result)  # print the result

Expected Output: 0.5

source
PolaronMobility.vw_variationMethod
vw_variation(energy, initial_v, initial_w; lower_bounds = [0, 0], upper_bounds = [Inf, Inf])

This function optimizes the values of v and w to minimize the energy function energy(x[1] + x[2], x[2])[1]. It uses the Optim package to perform the optimization and returns the optimized values of v and w, as well as the minimized energy, kinetic energy, and potential energy.

Arguments

  • energy: A function that takes two arguments x and y and returns an array of energy components.
  • initial_v: The initial value of v.
  • initial_w: The initial value of w.
  • lower_bounds: An optional array representing the lower bounds for v and w optimization. Default is [0, 0].
  • upper_bounds: An optional array representing the upper bounds for v and w optimization. Default is [Inf, Inf].

Returns

  • Δv + w: The optimized value of v.
  • w: The optimized value of w.
  • energy_minimized: The minimized energy.
  • kinetic_energy: The kinetic energy corresponding to the minimized energy.
  • potential_energy: The potential energy corresponding to the minimized energy.

Example

energy(x, y) = [x^2 + y^2, x^2, y^2]
 initial_v = 0.5
 initial_w = 0.2
 lower_bounds = [0, 0]
 upper_bounds = [Inf, Inf]
 result = vw_variation(energy, initial_v, initial_w; lower_bounds, upper_bounds)
-println(result)

This example demonstrates how to use the vw_variation function. It defines an energy function energy(x, y) that returns an array of energy components. It then calls vw_variation with the initial values of v and w, as well as lower and upper bounds for the optimization. The function optimizes v and w to minimize the energy and returns the optimized values, as well as the minimized energy, kinetic energy, and potential energy. The result is then printed.

source
PolaronMobility.κ_iMethod
κ_i(i, v, w)

Calculates the spring-constant coupling the electron to the 'ith' fictitious mass that approximates the exact electron-phonon interaction with a harmonic coupling to a massive fictitious particle.

Required for calculating the polaron free energy.

Note: Not to be confused with the number of physical phonon branches; many phonon branches could be approximated with one or two etc. fictitious masses for example. The number of fictitious mass does not necessarily need to match the number of phonon branches.

Arguments

  • i::Integer: enumerates the current fictitious mass.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.ϵ_ionic_modeMethod
ϵ_ionic_mode(phonon_mode_freq, ir_activity, volume)

Calculate the ionic contribution to the dielectric function for a given phonon mode.

Arguments

  • phonon_mode_freq::Float64: is the frequency of the mode in THz.
  • ir_activity::Float64: is the infra-red activity of the mode in e²amu⁻¹.
  • volume::Float64: is the volume of the unit cell of the material in m³.
source
PolaronMobility.ϵ_totalMethod
ϵ_total(freqs_and_ir_activity, volume)

Calculate the total ionic contribution to the dielectric function from all phonon modes.

Arguments

  • freqs_and_ir_activity::Matrix{Float64}: is a matrix containeing the phonon mode frequencies (in THz) in the first column and the infra-red activities (in e²amu⁻¹) in the second column.
  • volume::Float64: is the volume of the unit cell of the material in m^3.
source
+println(result)

This example demonstrates how to use the vw_variation function. It defines an energy function energy(x, y) that returns an array of energy components. It then calls vw_variation with the initial values of v and w, as well as lower and upper bounds for the optimization. The function optimizes v and w to minimize the energy and returns the optimized values, as well as the minimized energy, kinetic energy, and potential energy. The result is then printed.

source
PolaronMobility.κ_iMethod
κ_i(i, v, w)

Calculates the spring-constant coupling the electron to the 'ith' fictitious mass that approximates the exact electron-phonon interaction with a harmonic coupling to a massive fictitious particle.

Required for calculating the polaron free energy.

Note: Not to be confused with the number of physical phonon branches; many phonon branches could be approximated with one or two etc. fictitious masses for example. The number of fictitious mass does not necessarily need to match the number of phonon branches.

Arguments

  • i::Integer: enumerates the current fictitious mass.
  • v::Vector{Float64}: is a vector of the v variational parameters.
  • w::Vector{Float64}: is a vector of the w variational parameters.
source
PolaronMobility.ϵ_ionic_modeMethod
ϵ_ionic_mode(phonon_mode_freq, ir_activity, volume)

Calculate the ionic contribution to the dielectric function for a given phonon mode.

Arguments

  • phonon_mode_freq::Float64: is the frequency of the mode in THz.
  • ir_activity::Float64: is the infra-red activity of the mode in e²amu⁻¹.
  • volume::Float64: is the volume of the unit cell of the material in m³.
source
PolaronMobility.ϵ_totalMethod
ϵ_total(freqs_and_ir_activity, volume)

Calculate the total ionic contribution to the dielectric function from all phonon modes.

Arguments

  • freqs_and_ir_activity::Matrix{Float64}: is a matrix containeing the phonon mode frequencies (in THz) in the first column and the infra-red activities (in e²amu⁻¹) in the second column.
  • volume::Float64: is the volume of the unit cell of the material in m^3.
source
diff --git a/dev/index.html b/dev/index.html index da1e3c4..c175838 100644 --- a/dev/index.html +++ b/dev/index.html @@ -10,4 +10,4 @@ author = {Jarvist Moore Frost}, title = {Calculating polaron mobility in halide perovskites}, journal = {Physical Review B} -} +} diff --git a/dev/scientific_discussion/index.html b/dev/scientific_discussion/index.html index 5b756ef..cbe4202 100644 --- a/dev/scientific_discussion/index.html +++ b/dev/scientific_discussion/index.html @@ -136,4 +136,4 @@ title = {Velocity Acquired by an Electron in a Finite Electric Field in a Polar Crystal}, journal = {Physical Review B} } - + diff --git a/dev/search/index.html b/dev/search/index.html index 54883b0..ea60507 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · PolaronMobility.jl documentation

Loading search...

    +Search · PolaronMobility.jl documentation

    Loading search...