Hello Chris! When defining MixedFunction spaces with more than one component you should use:
W = MixedFunctionSpace([V,Q,R]) The add operator in FunctionSpace returns a MixedFunctionSpace of its two components, so V+Q+R would result in: W = MixedFunctionSpace([MixedFunctionSpace([V,Q]),R]) Johan On Monday 15 March 2010 14:13:12 Chris Richardson wrote: > New question #104471 on DOLFIN: > https://answers.launchpad.net/dolfin/+question/104471 > > I want to solve for a vector and two scalars, and I have specified the > FunctionSpace W intuitively correctly, but the BC complains that my > dimension is incorrect (for the vector). What am I doing wrong? > > mesh=UnitSquare(10,10) > > V=VectorFunctionSpace(mesh,"CG",2) > Q=FunctionSpace(mesh,"CG",1) > R=FunctionSpace(mesh,"CG",1) > W=V+Q+R > > def bound0(x): > x[0]<DOLFIN_EPS > > v0=Constant((0.0,0.0)) > > bc=DirichletBC(W.sub(0),v0,bound0) > > > bc=DirichletBC(W.sub(0),v0,bound0) > File "/usr/lib/python2.6/dist-packages/dolfin/mesh/bcs.py", line 56, in > __init__ cpp.DirichletBC.__init__(self, *args) > File "/usr/lib/python2.6/dist-packages/dolfin/cpp.py", line 9390, in > __init__ _cpp.DirichletBC_swiginit(self,_cpp.new_DirichletBC(*args)) > RuntimeError: *** Error: Unable to create boundary condition. Reason: > Illegal value 2 for value dimension, should be 3. > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

