Module Index

Detailed API

MCTBetaScaling.BetaScalingEquationMethod
BetaScalingEquation(λ, σ, t₀, δ=0.0)

Defines the β-scaling equation of MCT, which is a scalar equation for a single scaling function g(t), determined by scalar parameters λ (the MCT exponent parameter, 1/2<=λ<1), the distance parameter to the glass transition σ, and (for convenience) an arbitrary time scale t₀ that just shifts the results. Optionally, a "hopping parameter" δ can be given (defaults to zero).

The MCT exponents a and b will be automatically calculated from λ.

source
MCTBetaScaling.StochasticBetaScalingEquationMethod
StochasticBetaScalingEquation(λ::Float64, α::Float64, σ::Vector{Float64}, t₀::Float64, L_sys::Float64, ns::Int; δ=zeros(length(σ)))

Creates a stochastic β-scaling equation object for a system with specified parameters. This is a convenience constructor 1D systems.

source
MCTBetaScaling.StochasticBetaScalingEquationMethod
StochasticBetaScalingEquation(λ::Float64, α::Float64, σ::Vector{Float64}, t₀::Float64, L_sys::NTuple{DIMS, Float64}, ns::NTuple{DIMS, Int}; δ=zeros(length(σ))) where DIMS

Creates a stochastic β-scaling equation object for a system with specified parameters. This equation is defined as:

σ(x) - δ t + λ (g(x,t))² + α ∇²g(x,t) = ∂ₜ∫g(x, t-τ)g(x, τ)dτ

where σ is a vector of site-dependent noise, δ is a vector of damping coefficients, λ is the coupling constant, α is the diffusion coefficient, t₀ is a reference time, and L_sys is the system size in each dimension.

source
MCTBetaScaling.regula_falsiMethod
regula_falsi(x0::Float64, x1::Float64, f; accuracy=10^-10, max_iterations=10^4)

Implements a simple "regular falsi" search to find a point x where f(x)=0 within the given accuracy, starting in the interval [x0,x1]. For purists, f(x) should have exactly one root in the given interval, and the scheme will then converge to that. The present code is a bit more robust, at the expense of not guaranteeing convergence strictly.

Returns a point x such that approximately f(x)==0 (unless the maximum number of iterations has been exceeded). If exactly one of the roots of f(x) lie in the initially given interval [x0,x1], the returned x will be the approximation to that root.

Arguments:

  • x0: lower bound of the initial search interval
  • x1: upper bound of the initial search interval
  • f: a function accepting one real value, return one real value
source
ModeCouplingTheory.do_time_steps!Method
do_time_steps!(equation::MemoryEquation, solver::TimeDoublingSolver, kernel::MemoryKernel, temp_arrays::SolverCache)

Solves the equation on the time points with index 2N+1 until 4N, for each point doing a recursive iteration to find the solution to the nonlinear equation C1 F = -C2 M(F) + C3.

source
ModeCouplingTheory.initialize_F_temp!Method
initialize_F_temp!(equation::BetaScalingEquation, solver::ModeCouplingTheory.TimeDoublingSolver, temp_arrays::ModeCouplingTheory.SolverCache)

Fills the first 2N entries of the temporary arrays needed for solving the β-scaling equation with a an adapted Fuchs scheme.

In particular, this initializes g(t) = (t/t₀)^-a.

source
ModeCouplingTheory.initialize_F_temp!Method
initialize_F_temp!(equation::BetaScalingEquation, solver::ModeCouplingTheory.TimeDoublingSolver, temp_arrays::ModeCouplingTheory.SolverCache)

Fills the first 2N entries of the temporary arrays needed for solving the β-scaling equation with a an adapted Fuchs scheme.

In particular, this initializes g(t) = (t/t₀)^-a + A1 * σ(x) * (t/t0)^(a)

source
ModeCouplingTheory.initialize_integrals!Method
initialize_integrals!(equation::BetaScalingEquation, solver::ModeCouplingTheory.TimeDoublingSolver, temp_arrays::ModeCouplingTheory.SolverCache)

Initializes the integrals over the first 2N time points for the solution of the β-scaling equation, using the known critical decay law as the short-time asymptote.

source
ModeCouplingTheory.initialize_integrals!Method
initialize_integrals!(equation::BetaScalingEquation, solver::ModeCouplingTheory.TimeDoublingSolver, temp_arrays::ModeCouplingTheory.SolverCache)

Initializes the integrals over the first 2N time points for the solution of the β-scaling equation, using the known critical decay law as the short-time asymptote.

source
ModeCouplingTheory.update_Fuchs_parameters!Method
update_Fuchs_parameters!(equation::BetaScalingEquation, solver::ModeCouplingTheory.TimeDoublingSolver, temp_arrays::ModeCouplingTheory.SolverCache, it::Int)

Updates the parameters that are needed to solve the β-scaling equation numerically with Fuchs' scheme.

source
ModeCouplingTheory.update_Fuchs_parameters!Method
update_Fuchs_parameters!(equation::BetaScalingEquation, solver::ModeCouplingTheory.TimeDoublingSolver, temp_arrays::ModeCouplingTheory.SolverCache, it::Int)

Updates the parameters that are needed to solve the β-scaling equation numerically with Fuchs' scheme.

source