How can I specify a constant vector as form coefficient in UFL?
I want to evaluate the overhead for coefficient evaluation and with a form like this:
scalar = FiniteElement(
vector = VectorElement(
v = TestFunction(
u = TrialFunction(
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'
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- UFL Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Garth Wells
- Solved:
- Last query:
- Last reply: