← Back to team overview

ufl team mailing list archive

[Question #118493]: How can I specify a constant vector as form coefficient in UFL?

 

New question #118493 on UFL:
https://answers.launchpad.net/ufl/+question/118493

I want to evaluate the overhead for coefficient evaluation and with a form like this:

scalar = FiniteElement("Lagrange", "triangle", 1)
vector = VectorElement("Lagrange", "triangle", 1)

v  = TestFunction(scalar)
u  = TrialFunction(scalar)
u0 = Coefficient(scalar)
b  = Coefficient(vector)
f  = Coefficient(scalar)

c = 0.05
k = 0.1
alpha = 1.0

a = v*u*dx + k*alpha*u*v*dx + k*c*dot(grad(v), grad(u))*dx
L = v*u0*dx - k*v*dot(b, grad(u0))*dx + k*v*f*dx

My question is how to set the vector coefficient to a UFL form compilation time constant (i.e. they won't show up as coefficients in the generated code).

For u0 and f I can just set them to a float value, but what is the syntax for b? If possible at all.

I tried
tuple: b = (-1.0, 0.0)
list: b = [-1.0, 0.0]
which both give an AttributeError: 'float' object has no attribute 'cell'

-- 
You received this question notification because you are a member of UFL
Team, which is an answer contact for UFL.



Follow ups