← Back to team overview

dolfin team mailing list archive

Re: [HG dolfin] Use DofMap in FEM to get dof mapping and to compute number of nonzeroes per matrix row. This gives big memory savings for some problems. For /src/demo/pde/elasticity memory use was approx. 600mb, now 200mb.

 

On Mon, Jan 15, 2007 at 06:27:06PM +0100, Garth N. Wells wrote:
> 
> 
> Anders Logg wrote:
> > On Mon, Jan 15, 2007 at 05:58:46PM +0100, Garth N. Wells wrote:
> >>
> >> Anders Logg wrote:
> >>> On Thu, Dec 07, 2006 at 01:12:41AM +0100, Garth N. Wells wrote:
> >>>
> >>>>>> I'll add shortly the possibility to run the Cuthill-McKee over the map 
> >>>>>> and reorder it. This will be an option.
> >>>>> What is Cuthill-McKee?
> >>>> It's the most common reordering algorithm. It will probably improve the 
> >>>> sparse matrix performance.
> >>> How about using the Boost Graph Library for this?
> >>>
> >>>     http://www.boost.org/libs/graph/doc/table_of_contents.html
> >>>     http://www.boost.org/libs/graph/doc/cuthill_mckee_ordering.html
> >>>
> >>> We already have a boost dependence so another one is no problem.
> >>>
> >> Sure, if it's in Boost I'd much rather use it than implement it myself.
> > 
> > I've started looking at it and might commit something tonight.
> >
> 
> OK, I'll wait.

ok.

> >> I will start with a class Assembler soon. This is related in some ways 
> >> to DofMap, matrix layout, reuse, etc. We could then create a class 
> >> "pAssembler" for experimental parallel assembly which should eventually 
> >> merge back into Assembler.
> >>
> >> Garth
> > 
> > I'm also about to start working on an Assembler class that works with
> > the UFC generated code. Should we work together on the new Assembler
> > class? Alternatively, I could open a separate UFCAssembler class (to
> > be merged)?
> > 
> 
> How far away are you from adding UFCAssembler?

I've been thinking about the design for a while (which is reflected in
the design of the UFC). I haven't actually written the code yet but I
expect to add a first sketch in a day or two.

Maybe we could work together on a single class Assembler and overload
our different versions (rather than having two separate classes) since
the initial implementation will be rather sketchy anyway and we'll be
looking at each others code as we write (instead of having to merge
much later and finding out which problems we need to solve)?

/Anders


References