← Back to team overview

ffc team mailing list archive

Problem with vector constants (more the 3 components)

 

An error message is returned with constant vector functions when the number of
vector components exceeds the spatial dimension. There seems to be no problem
with higher order functions. Below are some details and an example.

Garth 



element = FiniteElement("Vector Lagrange", "triangle", 1)
stress_basis  = FiniteElement("Discontinuous vector Lagrange", "triangle", 0, 3)

stress = Function(stress_basis) 

v = BasisFunction(element)
L = stress[2]*v[0].dx(0) *dx 
 
returns an error for constant "stress_basis". The error is 



Traceback (most recent call last):
  File "/usr/bin/ffc", line 81, in ?
    main(sys.argv[1:])
  File "/usr/bin/ffc", line 59, in main
    execfile(outname)
  File "test.py", line 33, in ?
    compile([a, L], name, "C++", "GNU GPL Version 2")
  File "/usr/lib/python2.4/site-packages/ffc/compiler/compiler.py", line 42, in
compile
    forms = build(sums, name, language)
  File "/usr/lib/python2.4/site-packages/ffc/compiler/compiler.py", line 93, in
build
    form.AKi = ElementTensor(form.sum, "interior", format)
  File "/usr/lib/python2.4/site-packages/ffc/compiler/elementtensor.py", line
37, in __init__
    self.terms = [Term(p) for p in sum.products if p.integral.type == type]
  File "/usr/lib/python2.4/site-packages/ffc/compiler/term.py", line 19, in __init__
    self.A0 = ReferenceTensor(product)
  File "/usr/lib/python2.4/site-packages/ffc/compiler/referencetensor.py", line
58, in __init__
    self.A0 = self.__compute_reference_tensor()
  File "/usr/lib/python2.4/site-packages/ffc/compiler/referencetensor.py", line
121, in __compute_reference_tensor
    integral += integrate(self.basisfunctions, i, a, b)
  File "/usr/lib/python2.4/site-packages/ffc/compiler/integrator.py", line 113,
in __call__
    value = self.table[element][cindex[0]][dorder][dindex][vindex]
IndexError: list index out of range