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

Reply via email to