OpenCS Example DAE 1 | The chemical kinetics problem with 6 non-linear differential equations. |
OpenCS Example DAE 2 | A simple heat conduction problem (re-implementation of the model in Tutorial 1). |
OpenCS Example DAE 3 | Auto-catalytic chemical reaction with oscillations (the Brusselator PDE). |
OpenCS Example ODE 1 | The Roberts chemical kinetics problem with 3 rate equations. |
OpenCS Example ODE 2 | A simple advection-diffusion in 2-D. |
OpenCS Example ODE 3 | 2-species diurnal kinetics advection-diffusion PDE system in 2D. |
Reimplementation of IDAS idasAkzoNob_dns example. The chemical kinetics problem with 6 non-linear diff. equations:
dy1_dt + 2*r1 - r2 + r3 + r4 = 0
dy2_dt + 0.5*r1 + r4 + 0.5*r5 - Fin = 0
dy3_dt - r1 + r2 - r3 = 0
dy4_dt + r2 - r3 + 2*r4 = 0
dy5_dt - r2 + r3 - r5 = 0
Ks*y1*y4 - y6 = 0
where:
r1 = k1 * pow(y1,4) * sqrt(y2)
r2 = k2 * y3 * y4
r3 = k2/K * y1 * y5
r4 = k3 * y1 * y4 * y4
r5 = k4 * y6 * y6 * sqrt(y2)
Fin = klA * (pCO2/H - y2)
The system is stiff. The original results are in tutorial_opencs_dae_1.csv file.
Files
Source code | tutorial_opencs_dae_1.py |
Auxiliary functions | tutorial_opencs_aux.py |
DAE Tools model | tutorial_opencs_daetools_1.py |
The original results | tutorial_opencs_dae_1.csv |
Reimplementation of DAE Tools tutorial1.py example. A simple heat conduction problem: conduction through a very thin, rectangular copper plate:
rho * cp * dT(x,y)/dt = k * [d2T(x,y)/dx2 + d2T(x,y)/dy2]; x in (0, Lx), y in (0, Ly)
Two-dimensional Cartesian grid (x,y) of 20 x 20 elements. The original results are in tutorial_opencs_dae_2.csv file.
Files
Source code | tutorial_opencs_dae_2.py |
Auxiliary functions | tutorial_opencs_aux.py |
The original results | tutorial_opencs_dae_2.csv |
Reimplementation of IDAS idasBruss_kry_bbd_p example. The PDE system is a two-species time-dependent PDE known as Brusselator PDE and models a chemically reacting system:
du/dt = eps1(d2u/dx2 + d2u/dy2) + u^2 v - (B+1)u + A
dv/dt = eps2(d2v/dx2 + d2v/dy2) - u^2 v + Bu
Boundary conditions: Homogenous Neumann. Initial Conditions:
u(x,y,t0) = u0(x,y) = 1 - 0.5*cos(pi*y/L)
v(x,y,t0) = v0(x,y) = 3.5 - 2.5*cos(pi*x/L)
The PDEs are discretized by central differencing on a uniform (Nx, Ny) grid. The model is described in:
The original results are in tutorial_opencs_dae_3.csv file.
Files
Source code | tutorial_opencs_dae_3.py |
Auxiliary functions | tutorial_opencs_aux.py |
The original results | tutorial_opencs_dae_3.csv |
Reimplementation of CVodes cvsRoberts_dns example. The Roberts chemical kinetics problem with 3 rate equations:
dy1/dt = -0.04*y1 + 1.e4*y2*y3
dy2/dt = 0.04*y1 - 1.e4*y2*y3 - 3.e7*(y2)^2
dy3/dt = 3.e7*(y2)^2
The problem is simulated for 4000 s, with the initial conditions:
y1 = 1.0
y2 = y3 = 0
The problem is stiff. The original results are in tutorial_opencs_ode_1.csv file.
Files
Source code | tutorial_opencs_ode_1.py |
Auxiliary functions | tutorial_opencs_aux.py |
The original results | tutorial_opencs_ode_1.csv |
Reimplementation of CVodes cvsAdvDiff_bnd example. The problem is simple advection-diffusion in 2-D:
du/dt = d2u/dx2 + 0.5 du/dx + d2u/dy2
on the rectangle:
0 <= x <= 2
0 <= y <= 1
and simulated for 1 s. Homogeneous Dirichlet boundary conditions are imposed, with the initial conditions:
u(x,y,t=0) = x(2-x)y(1-y)exp(5xy)
The PDE is discretized on a uniform Nx+2 by Ny+2 grid with central differencing. The boundary points are eliminated leaving an ODE system of size Nx*Ny. The original results are in tutorial_opencs_ode_2.csv file.
Files
Source code | tutorial_opencs_ode_2.py |
Auxiliary functions | tutorial_opencs_aux.py |
The original results | tutorial_opencs_ode_2.csv |
Reimplementation of CVodes cvsDiurnal_kry example. 2-species diurnal kinetics advection-diffusion PDE system in 2D:
dc(i)/dt = Kh*(d/dx)^2 c(i) + V*dc(i)/dx + (d/dy)(Kv(y)*dc(i)/dy) + Ri(c1,c2,t), i = 1,2
where:
R1(c1,c2,t) = -q1*c1*c3 - q2*c1*c2 + 2*q3(t)*c3 + q4(t)*c2
R2(c1,c2,t) = q1*c1*c3 - q2*c1*c2 - q4(t)*c2
Kv(y) = Kv0*exp(y/5)
Kh, V, Kv0, q1, q2, and c3 are constants, and q3(t) and q4(t) vary diurnally. The problem is posed on the square:
0 <= x <= 20 (km)
30 <= y <= 50 (km)
with homogeneous Neumann boundary conditions, and integrated for 86400 sec (1 day). The PDE system is discretised using the central differences on a uniform 10 x 10 mesh. The original results are in tutorial_opencs_ode_3.csv file.
Files
Source code | tutorial_opencs_ode_3.py |
Auxiliary functions | tutorial_opencs_aux.py |
The original results | tutorial_opencs_ode_3.csv |