subfunction assignment with VectorFunctionSpace fails

Issue #210 duplicate
Nico Schlömer created an issue

If a function is composed of subfunctions and one of the subfunctions is from a VectorFunctionSpace, subfunction assignment fails.

MWE:

from dolfin import *

mesh = UnitSquareMesh(1, 1)
#mesh = UnitSquareMesh(10, 10)
W = VectorFunctionSpace(mesh, 'CG', 1)
P = FunctionSpace(mesh, 'CG', 1)
WP = MixedFunctionSpace([W, P])

WP0 = WP.sub(0).collapse()
WP1 = WP.sub(1).collapse()

u = Function(WP0)
p = Function(WP1)

p.assign(project(Expression('sin(6 * x[0])'), WP1))

plot(p, title='in')

from_sub = FunctionAssigner(WP, [u.function_space(),
                                 p.function_space()])
up = Function(WP)
from_sub.assign(up, [u, p])

u, p = up.split()
plot(p, title='out')
interactive()

Comments (3)

  1. Log in to comment