ffc team mailing list archive
-
ffc team
-
Mailing list archive
-
Message #01422
DG form not compiling with quadrature
Hi,
I am trying to update my code to the latest version of FFC. I have a
form (attached) that previously compiled using either tensor or
quadrature representation, but now only works using tensor. This is a
smaller form that shows the same behavior of a much heavier form where I
need to use quadrature for it to compile. I think the last version of
FFC that worked was about changeset 990 or so. Can someone take a look?
in short:
ffc -l dolfin lift_Hp.form -- works
ffc -l dolfin -r quadrature lift_Hp.form -- doesn't work, error: ***
tabulate() takes exactly 3 arguments (4 given)
thanks,
Jake
elHp = VectorElement("DG", "tetrahedron", 0, 9)
DG0 = FiniteElement("DG", "tetrahedron", 0)
# Test and Trial Functions
V = TestFunction(elHp)
U = TrialFunction(elHp)
# Current Hp
Hp1 = Function(elHp)
# DG parameters
alpha = Function(DG0)
n = FacetNormal("tetrahedron")
h = MeshSize("tetrahedron")
k = Function(DG0)
pflag = Function(DG0)
def Mat(A):
return [ [A[0], A[1], A[2]], \
[A[3], A[4], A[5]], \
[A[6], A[7], A[8]] ]
def skwMt(v):
return [ [ 0.0, v[2], -v[1]],
[ -v[2], 0.0, v[0]],
[ v[1], -v[0], 0.0] ]
def Vec(A):
return [ A[0][0], A[0][1], A[0][2], A[1][0], A[1][1], A[1][2],
A[2][0], A[2][1] ,A[2][2] ]
term1 = Mat(jump(Hp1))
term2 = numpy.array(skwMt(n('+')))
#print term1
#print len(term1.shape)
#print len(term2.shape)
#def matmat(A,B):
# return
arg1 = numpy.array(Vec(mult(term1,term2)))
arg2 = alpha('+')*k('+')/h('+')
#arg = mult(arg2,arg1)
arg = mult(k('+'),arg1)
#print arg
a = dot(V,U)*dx
#L = pflag('+')*dot(avg(V),arg)*dS
L = - dot(avg(V),mult(pflag('+'),arg))*dS
Follow ups