← Back to team overview

dolfin team mailing list archive

Re: DofMap.tabulate_vertex_map

 

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.

> 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.

What is the relation to Function::compute_vertex_values?

--
Anders


Follow ups

References