element = VectorElement("Lagrange", tetrahedron, 1)

v = TestFunction(element)
u = TrialFunction(element)

constant_scalar = FiniteElement("Discontinuous Lagrange", tetrahedron, 0)
constant_vector = VectorElement("Discontinuous Lagrange", tetrahedron, 0)

w  = Coefficient(constant_vector)
d1 = Coefficient(constant_scalar)
d2 = Coefficient(constant_scalar)
k  = Coefficient(constant_scalar)
nu = Coefficient(constant_scalar)

G_a  = inner(v, u)*dx + 0.5*k*nu*inner(grad(v), grad(u))*dx + 0.5*k*inner(v, dot(w, grad(u)))*dx
SD_a = d1*0.5*k*dot(dot(w, grad(v)), dot(w, grad(u)))*dx + d2*0.5*k*div(v)*div(u)*dx

a = G_a + SD_a
