← Back to team overview

ffc team mailing list archive

Re: ffc compile problem

 

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.

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))

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 ?

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?

thanks for the help,
patrick




Compiler phase 2: Computing form representation
-----------------------------------------------

  Computing cell tensor
  ---------------------

    Number of terms to consider: 2
    Number of terms to compute: 2
    Computing quadrature representation for term 0...
    Total degree is 4, using 3 quadrature point(s) in each dimension
    Primary multi index: rank = 1 dims = [15] indices = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14]]
    Secondary multi index: rank = 1 dims = [12] indices = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11]]
    Auxiliary_0 multi index: rank = 1 dims = [2] indices = [[0], [1]]
    Auxiliary_G multi index: rank = 0 dims = [] indices = [[]]
    QuadratureElement indices: []
    done
    Computing quadrature representation for term 1...
    Total degree is 6, using 4 quadrature point(s) in each dimension
    Primary multi index: rank = 1 dims = [15] indices = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14]]
Traceback (most recent call last):
  File "/home/priesen/num/fenics_py/bin/ffc", line 218, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/priesen/num/fenics_py/bin/ffc", line 107, in main
    execfile(script, {})
  File "NonNewtonianStokes.py", line 56, in <module>
    compile([a, L, M, element], "NonNewtonianStokes", {'language': 'dolfin', 'blas': False, 'form_postfix': True, 'precision': '15', 'cpp optimize': False, 'split_implementation': False, 'quadrature_points': False, 'output_dir': '.', 'representation': 'quadrature', 'cache_dir': None, 'optimize': False})
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/compiler.py", line 68, in compile
    (form_data, form_representation) = __compile_forms(forms, prefix, options)
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/compiler.py", line 99, in __compile_forms
    form_representation = compute_form_representation(form_data, options)
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/compiler.py", line 200, in compute_form_representation
    form_representation = Representation(form_data, int(options["quadrature_points"]))
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/representation/quadrature/quadraturerepresentation.py", line 49, in __init__
    self.cell_tensor = self.__compute_cell_tensor(form)
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/representation/quadrature/quadraturerepresentation.py", line 72, in __compute_cell_tensor
    tensors = self.__compute_tensors(monomials, factorization, Integral.CELL, None, None)
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/representation/quadrature/quadraturerepresentation.py", line 174, in __compute_tensors
    tensors[i] = ElementTensor(m, facet0, facet1, self.num_user_specified_quad_points)
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/representation/quadrature/elementtensor.py", line 67, in __init__
    debug("Secondary multi index: " + str(self.a), 1)
  File "/home/priesen/num/fenics_py/lib/python2.5/site-packages/ffc/compiler/representation/tensor/multiindex.py", line 48, in __repr__
    return "rank = %d dims = %s indices = %s" % (self.rank, str(self.dims), str(self.indices))
MemoryError

Follow ups

References