On Mon, Jan 28, 2013 at 09:31:27PM +0000, Garth N. Wells wrote: > On 28 January 2013 21:22, Anders Logg <l...@simula.no> 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 _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp