FractionalDiffusion (FD)#

FractionalDiffusion (FD) [1] is a solver developed for simulating heavy-tailed diffusion events in compartmental models. As opposed to standard diffusion events that model transitions to neighboring locales, FD allows transitions to any locale irrespective of how far away it is. The probability of a particle jumping to a distant locale is small but non-zero.

The method can use several parameters, but the most important for modeling physical processes are alpha and Dalpha.

Parameter

Data type

Default

Description

solver

string

NA

FractionalDiffusion, Fractional, FD, Levy, and LevyFlight are all valid names to run this solver.

alpha

float

1

Determines the value of the fractional derivative; accepts values greater than 0 and less than or equal to 2. A value close to 0 results in a diffusive process with very large kurtosis. A value close to 2 results in Gaussian-like diffusion. The default value results in a Cauchy distribution.

Dalpha

float

1

The diffusion coefficient; accepts values between 0 and infinity.

h

float

1

The physical distance between locales; accepts values greater than zero and less than infinity.

constant

float

0.25

The Courant–Friedrichs–Lewy (CFL) condition for parabolic partial differential equations. that is used for meeting the time step criteria; accepts values greater than 0 but much less than 1.

truncation

integer

number of locales/4

The maximum number of locales a particle can jump; accepts values greater than 1 and less than the size of the domain divided by 2. To ensure that particles remain far away from the boundary, the default value is the number of locales divided by 4. We do not recommend changing the default value. For details regarding truncation and boundary effects, see [1].

verbose

bool

false

If true, extra information is printed to the command line, which can be useful for debugging or testing the solver.

Example#

Diffusive events are not specified since the solver assumes that all species can diffusive anywhere in the domain. Therefore, the .emodl files should just include the reaction events.

{
    "duration" : 10,
    "runs"     : 1,
    "samples"  : 100,
    "solver"   : "FD",
    "fd" : {
        "alpha"    : 1.6,
		    "constant" : 0.025,
        "Dalpha"   : 1.0,
        "verbose"  : true
    }
}