On Fri, May 15, 2009 at 1:37 PM, Anders Logg <[email protected]> wrote: > 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.
Also note that forms and function spaces for coefficients are available by name: a = c*u*v*dx L = f*v*dx -> Prefix::Form_a Prefix::Form_L Prefix::Form_a::CoefficientSpace_c Prefix::Form_a::CoefficientSpace_L and coefficients can be set easily using Prefix::CoefficientSet coeffs; coeffs.c = my_function_c; coeffs.f = my_function_f; Prefix::Form_a a(V, V, coeffs); Prefix::Form_L L(V, coeffs); which avoids duplication of lines like "my_form.f = my_function_f;" for coefficients shared by multiple forms. > 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. > > 3. When running in parallel not only will the entities be generated, > but they will also be numbered globally. So all mesh entities have a > unique global index accessible in the data section of a mesh (named > "global entity indices %d"). The global dof map should also be > computed correctly now but I haven't checked. This means we may in > principle assemble in parallel now. But probably not in > practice... :-) Great :) Martin _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
