Torus

MultiFractalFields.TorusType
Torus(n, η)

1D torus regularized at scale η with n grid points.

Examples

julia> torus = Torus(100, 0.1)
Torus{Float64, Float64}(n=100,η=0.1)
source

Covariances

Abstract types

MultiFractalFields.AbstractCovarianceType
AbstractCovariance{T}

Supertype for all covariance functions (singular or not).

Examples

julia> Covariance{Float64}<:AbstractCovariance{Float64}
true

julia> SingularCovariance{Int64}<:AbstractCovariance{Int64}
true
source
MultiFractalFields.CovarianceType
Covariance{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}
true
source
MultiFractalFields.SingularCovarianceType
SingularCovariance{T}

Supertype for singular covariance functions.

Singular means that the variance $\sigma^2 = \infty$.

Examples

julia> Log{Float64}<:SingularCovariance{Float64}
true
source

Concrete types

MultiFractalFields.LinearType
Linear(ξ, [λ = 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.0
source
MultiFractalFields.ExponentialType
Exponential(ξ, [λ = 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/ℯ
true
source
MultiFractalFields.LogType
Log([λ = 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.0
source

Fields

MultiFractalFields.FieldType
Field

Supertype for GaussianField and MultifractalField.

Examples

julia> GaussianField<:Field
true

julia> MultiFractalField<:Field
true
source
MultiFractalFields.GaussianFieldType
GaussianField(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))
source
MultiFractalFields.MultiFractalFieldType
MultiFractalField(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))
source

Sample