UFLACS fails on Holzapfel-Ogden

Issue #133 resolved
Miklós Homolya created an issue
$ ffc -v -r uflacs ~/Downloads/holzapfel.ufl
This is FFC, the FEniCS Form Compiler, version 2016.2.0.dev0.
UFC backend version 2016.2.0.dev0, signature 59227d849f669930c2cf84f1ef02c21153a5b091.
For further information, visit https://bitbucket.org/fenics-project/ffc/.

Python 2.7.12 (default, Jul  1 2016, 15:12:24) 
[GCC 5.4.0 20160609] on linux2

Compiling form holzapfel

Compiler stage 1: Analyzing form(s)
-----------------------------------

  Geometric dimension:       3
  Number of cell subdomains: 0
  Rank:                      2
  Arguments:                 '(v_0, v_1)'
  Number of coefficients:    12
  Coefficients:              '[w_0, w_1, w_2, w_3, w_4, w_5, w_6, w_7, w_8, w_9, w_{
                             10}, w_{11}]'
  Unique elements:           'Vector<3 x CG1(?)>, R0(?), Vector<3 x R0(?)>'
  Unique sub elements:       'Vector<3 x CG1(?)>, R0(?), Vector<3 x R0(?)>, CG1(?)'

  representation:    uflacs
  quadrature_rule:   auto --> default
  quadrature_degree: auto --> 0
  quadrature_degree: 0

Compiler stage 1 finished in 0.499413 seconds.

Compiler stage 2: Computing intermediate representation
-------------------------------------------------------
  Computing representation of 4 elements
  Computing representation of 4 dofmaps
  Computing representation of 1 coordinate mappings
  Computing representation of integrals
  Computing uflacs representation
  Computing representation of forms

Compiler stage 2 finished in 5.9483 seconds.

Compiler stage 3: Optimizing intermediate representation
--------------------------------------------------------
  Skipping optimizations, add -O to optimize

Compiler stage 3 finished in 0.000283957 seconds.

Compiler stage 4: Generating code
---------------------------------
  Generating code for 4 element(s)
  Generating code for 4 dofmap(s)
  Generating code for 1 coordinate_mapping(s)
  Generating code for integrals
  Generating code from ffc.uflacs representation
Traceback (most recent call last):
  File "/home/mh1714/ffc-tsfc/bin/ffc", line 11, in <module>
    load_entry_point('FFC', 'console_scripts', 'ffc')()
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/__main__.py", line 237, in main
    code_h, code_c = compile_ufl_data(ufd, prefix, parameters)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/__main__.py", line 97, in compile_ufl_data
    parameters=parameters)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/compiler.py", line 141, in compile_form
    prefix, parameters, jit)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/compiler.py", line 198, in compile_ufl_objects
    code = generate_code(oir, parameters)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/codegeneration.py", line 86, in generate_code
    for ir in ir_integrals]
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/codegeneration.py", line 319, in _generate_integral_code
    code = r.generate_integral_code(ir, ir["prefix"], parameters)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/uflacs/uflacsgenerator.py", line 39, in generate_integral_code
    uflacs_code = generate_tabulate_tensor_code(ir, prefix, parameters)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/uflacs/uflacsgenerator.py", line 63, in generate_tabulate_tensor_code
    parts = ig.generate()
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/uflacs/generation/integralgenerator.py", line 103, in generate
    body += self.generate_unstructured_partition(num_points, "piecewise")
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/uflacs/generation/integralgenerator.py", line 409, in generate_unstructured_partition
    num_points)
  File "/home/mh1714/ffc-tsfc/src/ffc/ffc/uflacs/generation/integralgenerator.py", line 351, in generate_partition
    vops = [vaccesses[op] for op in v.ufl_operands]
KeyError
^C: <exception str() failed>

Comments (10)

  1. Martin Sandve Alnæs

    Thanks for the report. The failing code has been rewritten some in a branch awaiting the release before merging, but fails at the equivalent line. I don't understand how it can happen, so will have to do some digging when I get time.

  2. Log in to comment