← Back to team overview

dolfin team mailing list archive

Re: Compile time of forms and linear algebra operators

 

> Hello!
>
> I tried to compile an advection diffusion form using Streamline Upwind
> Petrow
> Galerkin stabilazing method, similar to the one introduced in DOLFIN
> 0.6.4.
> Using 3 dimensional and first degree Lagrange elements, FFC/g++ chokes
> when
> the produced code is compiling. It wont finish compile... Is this a known
> problem and a limitation of FFC/g++?

I worked a bit with this kind of form and also had impossibly long
compilation times (back in the 0.6.4 day). The solution then was to
compile the implementation of the form into a separate object. In order to
do this I made a patch for FFC so that it emit the implementation in a
separate file from the declarations. Then the form could be compiled once
(often over lunch) instead of each time I tweaked the solver code. Also, I
had then the option to build the form implementation with less
optimization (which made a huge difference). However, my patch for FFC was
never taken in. No hard feelings over this, but I still think it is a
worthwhile option.

Another C++ approach to this compile-form-once problem is to wrap it in a
"factory" class and build that one with less optimization. Form
compilation times have improved though :)

/Dag

>
> In PyCC I use DOLFIN to assemble the same system matrix, but instead of
> using
> one form for the whole system I split the form into at least 4 different
> forms. These compiles smoothly and after I have assembled the matrices I
> just
> add them together.
>
> This approach is not possible using the present DOLFIN linear algebra
> interface, as sum of matrices is not supported. Is this something we want
> for
> the future?
>
> Johan
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
>




Follow ups

References