← Back to team overview

dolfin team mailing list archive

Re: DofMap.tabulate_vertex_map

 

On Mon, Jan 28, 2013 at 09:31:27PM +0000, Garth N. Wells wrote:
> On 28 January 2013 21:22, Anders Logg <logg@xxxxxxxxx> wrote:
> > On Mon, Jan 28, 2013 at 10:10:40PM +0100, Johan Hake wrote:
> >> Hello!
> >>
> >> I have now added a method to DofMap, which tabulate a map between
> >> vertices and dofs. It will only work for DofMaps with dofs on vertices.
> >> So basically for any CG 1 FunctionSpaces and will raise error else wise.
> >>
> >> Usage:
> >>
> >>   from dolfin import *
> >>   import numpy as np
> >>   mesh = UnitSquareMesh(10,10)
> >>   V = VectorFunctionSpace(mesh, "CG", 1)
> >>   u = Function(V)
> >>   u.interpolate(Constant((1,2)))
> >>   vert_values = np.zeros(mesh.num_vertices()*2)
> >>   vert_values[V.dofmap().tabulate_vertex_map(mesh)] = \
> >>   u.vector().array()
> >>   print vert_values
> >>
> >> In parallel the map will follow the local dofs. This means that some
> >> values in vert_values above will still be 0. The 0 values will then
> >> correspond to vertex values which are owned by another process.
> >>
> >> In C++ the method returns a std::vector<std::size_t>.
> >>
> >> Questions:
> >> Does the name "tabulate_vertex_map" work?
> >
> > Sounds ok.
> >
>
> Doesn't mean much to me. Can it be more descriptive?
>
> >> Should a version of this method exist in other classes. FunctionSpace,
> >> Function (without the mesh argument of course)?
> >
> > Yes, would be good to have for convenience.
> >
>
> I don't see the benefit of spreading it around. It should just belong to DofMap.

A method in Function should do more than just provide the map.

--
Anders


Follow ups

References