4.3.5. pde.pdes.kpz_interface module

The Kardar–Parisi–Zhang (KPZ) equation describing the evolution of an interface

class KPZInterfacePDE(nu=0.5, lmbda=1, *, noise=0, bc='auto_periodic_neumann')[source]

Bases: PDEBase

The Kardar–Parisi–Zhang (KPZ) equation

The mathematical definition is

\[\partial_t h = \nu \nabla^2 h + \frac{\lambda}{2} \left(\nabla h\right)^2 + \eta(\boldsymbol r, t)\]

where \(h\) is the height of the interface in Monge parameterization. The dynamics are governed by the two parameters \(\nu\) and \(\lambda\), while \(\eta\) is Gaussian white noise, whose strength is controlled by the noise argument.

  • nu (float) – Parameter \(\nu\) for the strength of the diffusive term

  • lmbda (float) – Parameter \(\lambda\) for the strenth of the gradient term

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

  • bc (Union[Dict[str, Union[Dict, str, BCBase]], Dict, str, BCBase, Tuple[Union[Dict, str, BCBase], Union[Dict, str, BCBase]], BoundaryAxisBase, Sequence[Union[Dict[str, Union[Dict, str, BCBase]], Dict, str, BCBase, Tuple[Union[Dict, str, BCBase], Union[Dict, str, BCBase]], BoundaryAxisBase]]]) – 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.

diagnostics: Dict[str, Any]

Diagnostic information (available after the PDE has been solved)



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: Optional[bool] = 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