FFC

Comment 16 for bug 956979

Revision history for this message
Kristian B. Ølgaard (k.b.oelgaard) wrote : Re: [Bug 956979] Re: FFC generate code which cannot be compiled

On 19 March 2012 07:35, Johan Hake <email address hidden> wrote:
> On 03/18/2012 11:41 PM, Kristian B. Ølgaard wrote:
>> On 16 March 2012 15:49, Johan Hake<email address hidden>
>> wrote:
>>> This is really a duplication of bug 897372, which compared FFc and
>>> SFC, as SFC compiles the attached form just fine. The generated
>>> code is much smaller. Talking with Martin, I get the impression
>>> that FFC does not use the information UFL provides about the
>>> internal structure of the different sub expressions. I got the
>>> impression that FFC lump the whole expression into a large string.
>>> Subdividing this string is probably suboptimal compared to using
>>> the information already stored in UFL.
>>
>> FFC quadrature without any optimisation will simply take the UFL
>> representation as is and generate code accordingly. Any of the
>> optimisations will result in the line being split up in multiple
>> lines. See the FEniCS book chapter for details. Notice that
>> hyperelastic models are usually very heavy on memory when using the
>> simply_expressions option, so if it takes very long, check the memory
>> consumption.
>
> Yes, but if I am not simplifying it it generates lines which have 40M
> characters in it, which eventually wont compile.

Yes I know. I expect the best option for your case to be:

-feliminate_zeros -fprecompute_basis_const

which will result in code similar to what SFC will produce, but with
loops over the A_ij indices (SFC unrolls the loops).
Also remember to set the quadrature_degree manually as discussed previously.

>>> -- You received this bug notification because you are a member of
>>> FFC Core Team, which is subscribed to FFC.
>>> https://bugs.launchpad.net/bugs/956979
>>>
>>> Title: FFC generate code which cannot be compiled
>>>
>>> Status in FEniCS Form Compiler: New
>>>
>>> Bug description: I have a viscoelastic biomechanics form which
>>> generate an .h file which is 45M large, with a single line length
>>> of 44M characters long. This wont compile with gcc. No optimization
>>> enabled at all.
>>>
>>> To manage notifications about this bug go to:
>>> https://bugs.launchpad.net/ffc/+bug/956979/+subscriptions
>>
>
> --
> You received this bug notification because you are a member of FFC Core
> Team, which is subscribed to FFC.
> https://bugs.launchpad.net/bugs/956979
>
> Title:
>  FFC generate code which cannot be compiled
>
> Status in FEniCS Form Compiler:
>  New
>
> Bug description:
>  I have a viscoelastic biomechanics form which generate an .h file
>  which is 45M large, with a single line length of 44M characters long.
>  This wont compile with gcc. No optimization enabled at all.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ffc/+bug/956979/+subscriptions