Torus
MultiFractalFields.Torus — TypeTorus(n, η)1D torus regularized at scale η with n grid points.
Examples
julia> torus = Torus(100, 0.1)
Torus{Float64, Float64}(n=100,η=0.1)Covariances
Abstract types
MultiFractalFields.AbstractCovariance — TypeAbstractCovariance{T}Supertype for all covariance functions (singular or not).
Examples
julia> Covariance{Float64}<:AbstractCovariance{Float64}
true
julia> SingularCovariance{Int64}<:AbstractCovariance{Int64}
trueMultiFractalFields.Covariance — TypeCovariance{T}Supertype for 'true' (non-singular) covariance functions.
Non-singular means that the variance $\sigma^2 < \infty$.
Examples
julia> Exponential{Float32}<:Covariance{Float32}
true
julia> Linear{Int16}<:Covariance{Int16}
trueMultiFractalFields.SingularCovariance — TypeSingularCovariance{T}Supertype for singular covariance functions.
Singular means that the variance $\sigma^2 = \infty$.
Examples
julia> Log{Float64}<:SingularCovariance{Float64}
trueConcrete types
MultiFractalFields.Linear — TypeLinear(ξ, [λ = 1], [σ² = 1])Linear covariance function with scaling exponent ξ, correlation length λ and variance σ².
It is defined as $C(r) = \begin{cases} \sigma^2 \left(1 - \displaystyle \left(\frac{r}{\lambda}\right)^{\xi}\right) & \text{if }r ≤ \lambda\\ 0 & \text{if }r>\lambda\end{cases}$.
Examples
julia> lincov = Linear(0.5, 1.5, 3)
Linear{Float64}(ξ=0.5, λ=1.5, σ²=3.0)
julia> lincov(0)
3.0
julia> lincov(1.5)
0.0MultiFractalFields.Exponential — TypeExponential(ξ, [λ = 1], [σ² = 1])Exponential covariance function with scaling exponent ξ, correlation length λ and variance σ².
It is defined as $C(r)= \sigma^2 e^{-\left(\frac{r}{\lambda}\right)^{\xi}}$.
Examples
julia> expcov = Exponential(0.5, 1.5, 3)
Exponential{Float64}(ξ=0.5, λ=1.5, σ²=3.0)
julia> expcov(0)
3.0
julia> expcov(1.5) == 3/ℯ
trueMultiFractalFields.Log — TypeLog([λ = 1])Logarithm covariance function with correlation length λ and variance σ² = ∞.
Used for generating the Gaussian Multiplicative Chaos.
It is defined as $C(r) = \log\left(\frac{\lambda}{r}\right)$.
Examples
julia> logcov = Log(1.5)
Log{Float64}(λ=1.5)
julia> logcov(0)
Inf
julia> logcov(1.5)
0.0Fields
MultiFractalFields.Field — TypeFieldSupertype for GaussianField and MultifractalField.
Examples
julia> GaussianField<:Field
true
julia> MultiFractalField<:Field
trueMultiFractalFields.GaussianField — TypeGaussianField(cov, torus)Gaussian random field with covariance cov on the torus.
Examples
julia> torus = Torus(100, 0.1)
Torus{Float64, Float64}(n=100,η=0.1)
julia> lincov = Linear(0.5)
Linear{Float64}(ξ=0.5, λ=1.0, σ²=1.0)
julia> GaussianField(lincov ,torus)
GaussianField(cov=Linear{Float64}(ξ=0.5, λ=1.0, σ²=1.0),torus=Torus{Float64, Float64}(n=100,η=0.1))MultiFractalFields.MultiFractalField — TypeMultiFractalField(cov, torus, scov, γ)Multifractal random field with intermittency parameter γ.
scov<:SingularCovariance is necessary to generate the Gaussian Multiplicative Chaos.
Examples
julia> torus = Torus(100, 0.1)
Torus{Float64, Float64}(n=100,η=0.1)
julia> lincov = Linear(0.5)
Linear{Float64}(ξ=0.5, λ=1.0, σ²=1.0)
julia> MultiFractalField(lincov, torus, Log(), 0.4)
MultiFractalField(γ=0.4,cov=Linear{Float64}(ξ=0.5, λ=1.0, σ²=1.0),torus=Torus{Float64, Float64}(n=100,η=0.1))Sample
MultiFractalFields.sample — Functionsample(f<:Field)Sample from a given field f.
Samples are generated by stochastic convolution in Fourier space.