1
// Copyright (C) 2003-2007 Anders Logg.
2
// Licensed under the GNU LGPL Version 2.1.
4
// First added: 2003-07-02
5
// Last changed: 2007-05-02
10
using namespace dolfin;
12
class Lorenz : public ODE
24
void u0(uBlasVector& u)
31
void f(const uBlasVector& u, real t, uBlasVector& y)
33
y(0) = s*(u(1) - u(0));
34
y(1) = r*u(0) - u(1) - u(0)*u(2);
35
y(2) = u(0)*u(1) - b*u(2);
38
void J(const uBlasVector& x, uBlasVector& y, const uBlasVector& u, real t)
40
y(0) = s*(x(1) - x(0));
41
y(1) = (r - u(2))*x(0) - x(1) - u(0)*x(2);
42
y(2) = u(1)*x(0) + u(0)*x(1) - b*x(2);
56
dolfin_set("ODE number of samples", 500);
57
dolfin_set("ODE initial time step", 0.01);
58
dolfin_set("ODE fixed time step", true);
59
dolfin_set("ODE nonlinear solver", "newton");
60
dolfin_set("ODE method", "cg");
61
dolfin_set("ODE order", 5);
62
dolfin_set("ODE discrete tolerance", 1e-12);
63
dolfin_set("ODE save solution", true);