Martin Sandve Alnæs wrote: > 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 >
This is very useful and a nice improvement. > 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. > Nice. > >> 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 :) > Very good. What's the situation with mesh i/o? Is is serial? Garth > Martin > _______________________________________________ > DOLFIN-dev mailing list > [email protected] > http://www.fenics.org/mailman/listinfo/dolfin-dev _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
