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

Reply via email to