There have been some big changes to the code lately. Here's a summary:
1. We now use the wrappers module in dolfin_utils to generate the
DOLFIN wrapper code (in both FFC and SFC). This module generates
slightly different code to the old FFC wrappers. Most notably,
typedefs are used to avoid code duplication and classes/namespaces are
now nested. For application code, that means one must change from
PrefixBilinearForm
PrefixLinearForm
PrefixTestSpace
PrefixTrialSpace
to
Prefix::BilinearForm
Prefix::LinearForm
Prefix::BilinearForm::TestSpace
Prefix::BilinearForm::TrialSpace
etc.
If all test and trial spaces are equal, then a common class named
Prefix::FunctionSpace
will be created (a typedef).
Some of you may remember that we've had this interface before, but
then had to remove it due to problems with SWIG. Now that SWIG just
looks at the pure UFC code it's not a problem anymore.
2. Initialization of mesh entities now happens in the constructor of
DofMap. The initialization happens automitcally only if the new
non-const (wrt Mesh) constructor of FunctionSpace is used. If the
const version is used, then an error message is given. So if you solve
something with P2 elements and need the edges, these must either first
be generated using mesh.init(1) or the non-const constructor must be
used. Most demos should remain unchanged.