4.4.7 pde.pdes.kuramoto_sivashinsky module
The Kuramoto-Sivashinsky equation.
- class KuramotoSivashinskyPDE(nu=1, *, bc=None, bc_lap=None, noise=0, rng=None)[source]
Bases:
SDEBaseThe Kuramoto-Sivashinsky equation.
The mathematical definition is
\[\partial_t u = -\nu \nabla^4 u - \nabla^2 u - \frac{1}{2} \left(\nabla u\right)^2 + \eta(\boldsymbol r, t)\]where \(u\) is the height of the interface in Monge parameterization. The dynamics are governed by the parameter \(\nu\), while \(\eta\) is Gaussian white noise, whose strength is controlled by the noise argument.
- Parameters:
nu (float) – Parameter \(\nu\) for the strength of the fourth-order term
bc (BoundariesData | None) – The boundary conditions applied to the field. Boundary conditions are generally given as a dictionary with one condition for each axis side. 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 specific identifiers, like x- and y+). 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 ‘auto_periodic_neumann’ imposes periodic boundary conditions for periodic axis and a vanishing derivative otherwise. More information can be found in the boundaries documentation.
bc_lap (BoundariesData | None) – The boundary conditions applied to the second derivative of the scalar field \(c\). If None, the same boundary condition as bc is chosen. Otherwise, this supports the same options as bc.
noise (float) – Variance of the (additive) noise term
rng (
Generator) – Random number generator (default:default_rng()) used for stochastic simulations. Note that this random number generator is only used for numpy functions, while compiled numba code uses the random number generator of numba. Moreover, in simulations using multiprocessing, setting the same generator in all processes might yield unintended correlations in the simulation results.
- default_bc = 'auto_periodic_neumann'
Default boundary condition used when no specific conditions are chosen.
- evolution_rate(state, t=0)[source]
Evaluate the right hand side of the PDE.
- Parameters:
state (
ScalarField) – The scalar field describing the concentration distributiont (float) – The current time point
- Returns:
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.
- Type:
- make_evolution_rate(state, backend)[source]
Create a compiled function evaluating the right hand side of the PDE.
- Parameters:
state (
ScalarField) – An example for the state defining the grid and data typesbackend (str or
BackendBase) – The backend used for numerical operations
- Returns:
A function with signature (state_data, t), which can be called with an instance of the state data and time to obtain the associated evolution rate.
- Return type:
Callable[[TArray, float], TArray]