Anders Logg wrote: > On Mon, Dec 03, 2007 at 01:05:51AM +0100, DOLFIN wrote: > > >> changeset: 3430:4fa0790a4fc34d3abac3079644368813a252ac61 >> parent: 3428:7967082310c3ab03df9d812a6f471dcf988e7b4e >> user: "Johan Jansson <[EMAIL PROTECTED]>" >> date: Sun Dec 02 20:17:50 2007 +0100 >> files: src/kernel/ode/MonoAdaptiveJacobian.cpp >> src/kernel/ode/MonoAdaptiveNewtonSolver.cpp src/kernel/ode/ODE.cpp >> src/kernel/ode/TimeSlabJacobian.cpp >> src/kernel/ode/dolfin/MonoAdaptiveJacobian.h >> src/kernel/ode/dolfin/MonoAdaptiveNewtonSolver.h src/kernel/ode/dolfin/ODE.h >> src/kernel/ode/dolfin/TimeSlabJacobian.h >> src/kernel/parameter/dolfin/DefaultParameters.h >> description: >> ODE: >> >> Added support for computing the Jacobian as a sparse matrix (only for >> mono-adaptive dG(0) and cG(1) so far, and only for PETSc). >> > > Why PETSc? The ODE solvers are tied to uBlas so the vectors won't be > parallel. > > How and when should this be used? Does it change anything in the > computation that the ODE solver does, or is it just a utility function > for computing the Jacobian that a user can call? > Ideally the ODE solver should support both uBlas and PETSc, I think the plan should be to transition to a general implementation if we start to use it more for PDE. PETSc has a higher priority than uBlas though, since that's what we use for large computations (due to efficiency and robustness), and since it's parallel while uBlas is not.
The sparse Jacobian matrix is used in the mono-adaptive Newton case when the option "ODE matrix-free jacobian" is set to false. The way I've implemented time-dependent PDE with the ODE solver is that the form for the Jacobian is supplied, and a TimeDependentPDE class provides ODE::J() and ODE::Jmatrix() based on this form. Johan _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
