OP2/PyOP2 — pull request #42 by gmarkall (2012-08-17 16:58:11+00:00)
Title: Change matrix API to support assembly of matrices for vector fields

The changes are:

* The Local tensor argument to a kernel is declared `A[dim][dim]` instead of `*A`
* This means the user kernel wrapper must declare the local tensor as `A[dim][dim]`
* All entries of the local tensor must be zeroed out before calling the user kernel (as opposed to zeroing the single entry that was previously present).
* The matrix addto must be called for each entry of the local tensor.
* A 1D Burgers' demo has been added - it uses an unstable forward Euler method.
* A unit test for assembling a matrix with `dim=2` has been added.
* The `mass_vector_ffc` demo has been added so that it uses all generated code, and matches the user API for iteration spaces with matrices of dim>1.

This change to the API requires this branch of FFC: https://code.launchpad.net/~grm08/+junk/ffc-pyop2-vector-api - if you wish to run any of the FFC demos on this branch, you will need to get it. This will be merged into the main FFC PyOP2 branch at the same time as this pull request is merged into master, in order to keep the two trees in sync with the code that they generate.