4.3.1 pde.pdes.allen_cahn module

A Allen-Cahn equation

class AllenCahnPDE(interface_width=1, bc='auto_periodic_neumann')[source]

Bases: PDEBase

A simple Allen-Cahn equation

The mathematical definition is

\[\partial_t c = \gamma \nabla^2 c - c^3 + c\]

where \(c\) is a scalar field and \(\gamma\) sets the (squared) interfacial width.

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

  • bc (BoundariesData) – The boundary conditions applied to the field. Boundary conditions are generally given as a list with one condition for each axis. For periodic axes, 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, t=0)[source]

evaluate the right hand side of the PDE

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

  • t (float) – The current time point


Scalar field describing the evolution rate of the PDE

Return type:


explicit_time_dependence: bool | None = False

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



property expression: str

the expression of the right hand side of this PDE



interface_width: float