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

 

Anders Logg wrote:
Do you mean "DofMap associated with mesh and finite element"?


Yep.

I'm ok with that. We could have a DiscreteFunction with two members:

    Vector
    DofMap


That would work.

I haven't looked closely on the DofMap yet, but does it allow working
only through the on-the-fly computed dofmap of the FFC generated code?


This is exactly what it does at the moment.

DofMap::dofmap(int dof_map[], const Cell& cell, const uint e = 0) const;

just call the FFC nodemap() function. The DofMap can have two finite elements attached to it (for rows and columns), so e indicates which map you want.

Or is it necessary to compute all the data?


You only need to compute something if you want to know the total number of degrees of freedom or you want to the sparsity pattern.

I'll add shortly the possibility to run the Cuthill-McKee over the map and reorder it. This will be an option.

I'd like something where one can decide whether to actually build all
the data or just use what FFC generates (to save memory in storing the
function).

Agree.My intention is that the data is built only if a renumbering is requested.

What is worthwhile is computing the sparsity pattern. For 10^6 triangles, it only cost 2.5s to do this on my laptop and it can save a lot of memory.

Garth


By the way: impressive subject of this post. :-)

/Anders


On Wed, Dec 06, 2006 at 04:19:33PM +0100, Garth N. Wells wrote:
We need to think a bit about how a discrete Function is represented. At the moment a Function is defined by a mesh, a finite element and a vector, and the finite element provides a simple dof mapping. What we need is that a Function is defined by a DofMap and a vector, where the DofMap is associated with a vector and a finite element.

Any ideas?

Garth


Anders Logg wrote:
Very nice!

/Anders


        On Tue, Dec 05, 2006 at 09:51:02PM +0100, DOLFIN wrote:
One or more new changesets pushed to the primary DOLFIN repository.
A short summary of the last three changesets is included below.

changeset:   2500:81caeea1ec9f7ee49058dcacc0204bd3dfaa11d4
tag:         tip
user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
date:        Tue Dec 05 21:50:43 2006 +0100
files:       src/kernel/fem/FEM.cpp src/kernel/fem/dolfin/FEM.h
description:
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.

The sparsity pattern could be used when intialising uBlas matrices which will give a major speed up.


changeset:   2499:a9b743b159ccc730ba463751ec018a440b00480d
parent:      2497:a9be37db26e6668c6c83ac27423d478ef1b79e93
parent:      2498:2d0904d34b61e8a1f9132326bd74851e5b94946e
user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
date:        Tue Dec 05 21:30:50 2006 +0100
files: description:
merge


changeset:   2498:2d0904d34b61e8a1f9132326bd74851e5b94946e
parent:      2491:5d1dc976cd3c2897f43db2b60e9ca405928c2dba
user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
date:        Tue Dec 05 21:29:35 2006 +0100
files:       src/kernel/fem/DofMap.cpp src/kernel/fem/dolfin/DofMap.h
description:
Fix memory leak in DofMap.


----------------------------------------------------------------------
For more details, visit http://www.fenics.org/hg/dolfin
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev


_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev





Follow ups

References