Oregonator

class otp.oregonator.OregonatorProblem

Bases: otp.Problem

A periodic, three-variable model for the Belousov–Zhabotinsky reaction.

The Oregonator chemical reaction [FN74] is given by

\[\begin{split} \ce{ A + Y &-> X + P \\ X + Y &-> 2P \\ A + X &-> 2X + 2Z \\ 2X &-> A + P \\ B + Z &-> 1/2 $f$ Y. } \end{split}\]

Species \(\ce{A = BrO3-}\), \(\ce{B = CH2(COOH)2}\), and \(\ce{P = HOBr}\) or \(\ce{BrCH(COOH)2}\) are assumed to be constant. The dynamic concentrations of intermediate species \(\ce{X = HBrO2}\), \(\ce{Y = Br-}\), and \(\ce{Z = Ce(IV)}\) can be modeled by an ODE in three variables. Field and Noyes [FN74] proposed the nondimensionalized form

\[\begin{split} α' &= s(η - η α + α - q α^2), \\ η' &= s^{-1}(-η - η α + f ρ), \\ ρ' &= w (α - ρ), \end{split}\]

where \(α\), \(η\), and \(ρ\) are scaled concentrations of \(\ce{X}\), \(\ce{Y}\), and \(\ce{Z}\), respectively.

Notes

Type

ODE

Number of Variables

3

Stiff

typically, depending on \(f\), \(q\), \(s\), and \(w\)

Example

>>> problem = otp.oregonator.presets.Canonical;
>>> sol = problem.solve();
>>> problem.plotPhaseSpace(sol, 'Vars', [2, 3]);
Constructor Summary
OregonatorProblem(timeSpan, y0, parameters)

Create a Oregonator problem object.

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

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

  • parameters (OregonatorParameters) – The parameters.

Parameters

class otp.oregonator.OregonatorParameters

Bases: otp.Parameters

Parameters for the Oregonator problem.

Constructor Summary
OregonatorParameters(varargin)

Create an Oregonator 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
F

The stoichiometric factor \(f\).

Q

The reaction constant \(q\).

S

The reaction constant \(s\).

W

The reaction constant \(w\).

Presets

class otp.oregonator.presets.Canonical

Bases: otp.oregonator.OregonatorProblem

The Oregonator configuration used in [HW96] (p. 144) called OREGO. It uses time span \(t ∈ [0, 360]\), initial condition \(y_0 = [1, 2, 3]^T\), and parameters

\[\begin{split} f &= 1, \\ q &= 8.375 \times 10^{-6}, \\ s &= 77.27, \\ w &= 0.1610. \end{split}\]

Constructor Summary
Canonical(varargin)

Create the canonical Oregonator problem object.

Parameters:

varargin

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

  • f – Value of \(f\).

  • q – Value of \(q\).

  • s – Value of \(s\).

  • w – Value of \(w\).

class otp.oregonator.presets.GottwaldWanner

Bases: otp.oregonator.OregonatorProblem

The Oregonator configuration from [GW82] which uses time span \(t ∈ [0, 302.85805]\), initial condition \(y_0 = [4, 1.331391, 2.852348]^T\), and parameters

\[\begin{split} f &= 1, \\ q &= 8.375 \times 10^{-6}, \\ s &= 77.27, \\ w &= 0.1610. \end{split}\]

The initial condition lies on a stable limit cycle, and the time span is chosen to be one period.

Constructor Summary
GottwaldWanner()

Create the Gottwald–Wanner Oregonator problem object.

class otp.oregonator.presets.EnrightHull

Bases: otp.oregonator.OregonatorProblem

The Oregonator configuration used in problem CHM 9 of [EH76]. It uses time span \(t ∈ [0, 300]\), initial condition \(y_0 = [4, 1.1, 4]^T\), and parameters

\[\begin{split} f &= 1, \\ q &= 8.375 \times 10^{-6}, \\ s &= 77.27, \\ w &= 0.1610. \end{split}\]

Constructor Summary
EnrightHull()

Create the Enright–Hull Oregonator problem object.