Module Index
MCTBetaScaling.BetaScalingEquation
MCTBetaScaling.StochasticBetaScalingEquation
MCTBetaScaling.StochasticBetaScalingEquation
MCTBetaScaling.regula_falsi
Detailed API
MCTBetaScaling.BetaScalingEquation
— MethodBetaScalingEquation(λ, σ, 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 λ.
MCTBetaScaling.StochasticBetaScalingEquation
— MethodStochasticBetaScalingEquation(λ::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.
MCTBetaScaling.StochasticBetaScalingEquation
— MethodStochasticBetaScalingEquation(λ::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.
MCTBetaScaling.regula_falsi
— Methodregula_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 intervalx1
: upper bound of the initial search intervalf
: a function accepting one real value, return one real value
ModeCouplingTheory.do_time_steps!
— Methoddo_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.
ModeCouplingTheory.initialize_F_temp!
— Methodinitialize_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.
ModeCouplingTheory.initialize_F_temp!
— Methodinitialize_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)
ModeCouplingTheory.initialize_integrals!
— Methodinitialize_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.
ModeCouplingTheory.initialize_integrals!
— Methodinitialize_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.
ModeCouplingTheory.update_Fuchs_parameters!
— Methodupdate_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.
ModeCouplingTheory.update_Fuchs_parameters!
— Methodupdate_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.