# 4.3.4. pde.pdes.diffusion module¶

A simple diffusion equation

class DiffusionPDE(diffusivity: float = 1, noise: float = 0, bc: BoundaryConditionData = 'auto_periodic_neumann')[source]

A simple diffusion equation

The mathematical definition is

$\partial_t c = D \nabla^2 c$

where $$c$$ is a scalar field that is distributed with diffusivity $$D$$.

Parameters
• diffusivity (float) – The diffusivity of the described species

• noise (float) – Strength of the (additive) noise term

• bc – The boundary conditions applied to the field. Boundary conditions are generally given as a list with one condition for each axis. For periodic axis, only periodic boundary conditions are allowed (indicated by ‘periodic’ and ‘anti-periodic’). For non-periodic axes, different boundary conditions can be specified for the lower and upper end (using a tuple of two conditions). For instance, Dirichlet conditions enforcing a value NUM (specified by {‘value’: NUM}) and Neumann conditions enforcing the value DERIV for the derivative in the normal direction (specified by {‘derivative’: DERIV}) are supported. Note that the special value ‘natural’ imposes periodic boundary conditions for periodic axis and a vanishing derivative otherwise. More information can be found in the boundaries documentation.

evolution_rate(state: ScalarField, t: float = 0) [source]

evaluate the right hand side of the PDE

Parameters
• state (ScalarField) – The scalar field describing the concentration distribution

• t (float) – The current time point

Returns

Scalar field describing the evolution rate of the PDE

Return type

ScalarField

explicit_time_dependence: Optional[bool] = False

Flag indicating whether the right hand side of the PDE has an explicit time dependence.

Type

bool

property expression: str

the expression of the right hand side of this PDE

Type

str