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 (
otp.oregonator.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.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.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.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.