Thanks Lawrence, Good way to check - picking the dim of the VFS different from the gdim. I had also forgotten about .sub, useful. all the best --cjc ________________________________ From: Lawrence Mitchell <wence@gmx.li> Sent: 23 November 2019 14:15 To: Cotter, Colin J <colin.cotter@imperial.ac.uk> Cc: firedrake <firedrake@imperial.ac.uk> Subject: Re: [firedrake] VFS
On 23 Nov 2019, at 14:02, Cotter, Colin J <colin.cotter@imperial.ac.uk> wrote:
VectorFunctionSpace(mesh, "BDM", 1) ?
Is the first index the dim copies and the second index the vector component of the copies of the BDM spaces?
Yes In [3]: V = VectorFunctionSpace(mesh, "BDM", 2, dim=4) In [4]: f = Function(V) In [5]: f.ufl_shape Out[5]: (4, 2) In [6]: f.sub(0) Out[6]: Coefficient(WithGeometry(ComponentProxyFunctionSpace(<firedrake.mesh.MeshTopology object at 0x1202e31d0>, FiniteElement('Brezzi-Douglas-Marini', triangle, 2), name=None, index=None, component=0), Mesh(VectorElement(FiniteElement('Lagrange', triangle, 1), dim=2), 1)), 7) In [7]: f.sub(0).ufl_shape Out[7]: (2,) In [8]: f.sub(1).ufl_shape Out[8]: (2,) In [9]: f.sub(2).ufl_shape Out[9]: (2,)