Anders Logg wrote: > On Sun, Aug 16, 2009 at 10:34:12PM +0100, Garth N. Wells wrote: >> >> Anders Logg wrote: >>> On Sun, Aug 16, 2009 at 04:36:33PM +0100, Garth N. Wells wrote: >>>> Anders Logg wrote: >>>>> What is the reason for using int instead of uint in the precomputed >>>>> DofMap? >>>>> >>>> I didn't make it int, but I suspect that it is to leave open the >>>> possibility of using negative indexes which some libraries (e.g. PETSc) >>>> treat differently during insertion. >>> Negative indices will affect all backends. Does Trilinos support it? >>> >> Not sure. We can't guarantee that all backends will support it so I'm >> inclined to use uint. >> >>>>> Also, would it be good to have the same DofMapBuilder::build() >>>>> implementation both in parallel and serial. I imagine the algorithm >>>>> will specialize to the case of one process. This will be useful to >>>>> have once we add the localized iteration over cells on each mesh to >>>>> minimize bandwidth. >>>> DofMapBuilder::build() does not build the DofMap (name needs to be >>>> changed). >>> Yes, maybe DofMapRenumbering is better. >>> >>>> It renumbers the dofs and is not required when running in serial. >>> I think it is. The FFC generated dof map does not do a very good job >>> at minimizing bandwidth for vector-valued elements (or even scalar >>> P2). I was hoping the same algorithm would work in both serial and >>> parallel (less code to maintain). >>> >> This should work after splitting the current function into two >> (ownership + renumbering). It looks to me like the present parallel >> renumbering is more or less the UFC numbering on each process. > > ok. I thought it also did local renumbering. > >> There is some work to do (I'm about to commit something) to sort out >> DofMap, so I'm not going to worry about the details of DofMapBuilder >> until DofMap is sorted out and working. > > ok, great. I'm thinking about adding some functionality for local > iteration over mesh entities (continuing to the nearest unvisited > neighbor). This should further improve the renumbering once we get > the local renumbering in place. >
It would be nice if we could focus on the major items that are broken in parallel before getting into refinements. Garth > -- > Anders > > >> Garth >> >>>> I have added a FIXME (might not have pushed it yet) that >>>> DofMap::parallel_build needs to be broken into two functions. The first >>>> function should determine ownership of dofs when running in parallel, >>>> and the second does the re-numbering. >>>> >>>> Garth >>>> >>>> _______________________________________________ >>>> DOLFIN-dev mailing list >>>> DOLFIN-dev@fenics.org >>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >>>> >>>> ------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> DOLFIN-dev mailing list >>>> DOLFIN-dev@fenics.org >>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >> >> _______________________________________________ >> DOLFIN-dev mailing list >> DOLFIN-dev@fenics.org >> http://www.fenics.org/mailman/listinfo/dolfin-dev >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> DOLFIN-dev mailing list >> DOLFIN-dev@fenics.org >> http://www.fenics.org/mailman/listinfo/dolfin-dev _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev