← Back to team overview

ffc team mailing list archive

Re: ffc compile problem

 

Quoting Patrick Riesen <priesen@xxxxxxxxxxxxxxx>:

> hi kristian
> 
> > What stage of the compilation process does the compiler reach?
> > Compile times up to 1 hour has been reported for some forms so you could
> try to
> > let it finish.
> 
> i let it run now with -d1 & quadrature and it aborts in compiler phase 2 
> when computing the cell tensor. i attached the last part of the 
> std:output before if stopped.

I see that it runs out of memory when computing the representation. Currently,
the quadrature representation at this stage is very similar to the tensor
representation, this is one of the things that will change with the new UFL
implementation so hopefully this problem will be solved in the future.

> > Alternatively, see if you can simplify your form somehow.
> 
> what's a good way to do so?
> 
> can i do something like this:
> if i have an operator yielding actually a constant as
> 
> def V(v):
>      return dot(grad(v),grad(v))*dot(grad(v),grad(v))

If you use 'V' (and similar functions) in many places of your form I'm not
surprised that it runs out of memory. It's not an 'error' on your account it's
just due to the way things work currently which means that premultiplying terms
with derivatives of functions makes the compile time blow up or in some cases
even prevent compilation as it did in your case.

> can i use
> 
> vv=Constant("triangle")
> 
> for this term and implement the above term in another form file as
> 
> M=dot(grad(v),grad(v))*dot(grad(v),grad(v))*dx ?

That would be an excellent idea.
 
> or does it help when i define the (other) possible terms in the way of 
> V(v) in the same form file so that the bilinear & linear forms are reduced?

I'm not sure I understand this.

Kristian
 
> thanks for the help,
> patrick
> 
> 
> 
> 
> 




Follow ups

References