CUSP

class otp.cusp.CUSPProblem

Bases: otp.Problem

A 1D PDE combining a “cusp catastrophe” model with the van der Pol oscillator.

The CUSP problem [HW96] (pp. 147-148) is the PDE

\[\begin{split} \frac{\partial y}{\partial t} &= -\frac{1}{ε} (y^3 + a y + b) + σ \frac{\partial^2 y}{\partial x^2}, \\ \frac{\partial a}{\partial t} &= b + 0.07 v + σ \frac{\partial^2 a}{\partial x^2}, \\ \frac{\partial b}{\partial t} &= (1 - a^2) b - a - 0.4 y + 0.035 v + σ \frac{\partial^2 b}{\partial x^2}, \end{split}\]

where \(v = u / (u + 0.1)\) and \(u = (y - 0.7)(y - 1.3)\). The spatial domain \(x ∈ [0, 1]\) has periodic boundary conditions. Discretization with second order finite difference on a grid with \(N\) cells gives

\[\begin{split} y'_i &= -\frac{1}{ε} (y_i^3 + a_i y_i + b_i) + σ N^2 (y_{i-1} - 2 y_i + y_{i+1}) \\ a'_i &= b_i + 0.07 v_i + σ N^2 (a_{i-1} - 2 a_i + a_{i+1}) \\ b'_i &= (1 - a_i^2) b_i - a_i - 0.4 y_i + 0.035 v_i + σ N^2 (b_{i-1} - 2 b_i + b_{i+1}), \end{split}\]

where \(i = 1, …, N\). Values at cell indices \(i=0, N+1\) are specified by the periodic boundary conditions.

Notes

Type

PDE

Number of Variables

arbitrary multiple of 3

Stiff

typically, depending on \(ε\), \(σ\), and number of grid points

Example

>>> problem = otp.cusp.presets.Canonical;
>>> sol = problem.solve();
>>> problem.plotPhaseSpace(sol, 'View', [45, 45]);
Constructor Summary
CUSPProblem(timeSpan, y0, parameters)

Create a CUSP problem object.

Parameters:
  • timeSpan (numeric(1, 2)) – The start and final time.

  • y0 (numeric(:, 1)) – The initial conditions.

  • parameters (CUSPParameters) – The parameters.

Property Summary
RHSStiff

Right-hand side containing the diffusion terms and the reaction terms multiplied by \(ε^{-1}\).

This partition of the RHS is used in [JM17].

See also

RHSNonstiff

RHSNonstiff

Right-hand side containing the reaction terms not scaled by \(ε^{-1}\).

This partition of the RHS is used in [JM17].

See also

RHSStiff

RHSDiffusion

Linear right-hand side containing the diffusion terms.

See also

RHSReaction

RHSReaction

Right-hand side containing the reaction terms.

See also

RHSDiffusion

Parameters

class otp.cusp.CUSPParameters

Bases: otp.Parameters

Parameters for the CUSP problem.

Constructor Summary
CUSPParameters(varargin)

Create a CUSP parameters object.

Parameters:

varargin – A variable number of name-value pairs. A name can be any property of this class, and the subsequent value initializes that property.

Property Summary
Epsilon

The stiffness parameter \(ε\) for the “cusp catastrophe” model.

Sigma

The diffusion coefficient \(σ\) for all three variables.

Presets

class otp.cusp.presets.Canonical

Bases: otp.cusp.CUSPProblem

The CUSP configuration from [HW96] (pp. 147-148) which uses time span \(t ∈ [0, 1.1]\), \(N = 32\) grid cells, and initial conditions

\[\begin{split} y_i(0) &= 0 ,\\ a_i(0) &= -2 \cos\left( \frac{2 i π}{N} \right), \\ b_i(0) &= 2 \sin\left( \frac{2 i π}{N} \right), \\ \end{split}\]

for \(i = 1, …, N\). The parameters are \(ε = 10^{-4}\) and \(σ = \frac{1}{144}\).

Constructor Summary
Canonical(varargin)

Create the canonical CUSP problem object.

Parameters:

varargin

A variable number of name-value pairs. The accepted names are

  • N – The number of cells in the spatial discretization.

  • epsilon – Value of \(ε\).

  • sigma – Value of \(σ\).