dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #26279
Re: DofMap.tabulate_vertex_map
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.
Garth
> What is the relation to Function::compute_vertex_values?
>
> --
> Anders
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help : https://help.launchpad.net/ListHelp
Follow ups
References