dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #03991
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 Wed, Dec 06, 2006 at 11:39:44PM +0100, Garth N. Wells wrote:
> 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.
ok. This will also have consequences for the file format for
input/output of Functions.
Anyway, the Function class needs some work. We've also talked about
smart pointers before so there are a few things to figure out:
- Incorporate DofMap
- Reference counting/smart pointers
- FiniteElement --> ufc::finite_element
> > 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.
Sounds good. But I'd like to avoid talking about rows and columns if
possible.
> > 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.
What is Cuthill-McKee?
> > 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.
Very nice.
It looks like estimateNonZeros() is no longer needed in FEM?
/Anders
Follow ups
References
-
[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.
From: DOLFIN, 2006-12-05
-
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.
From: Anders Logg, 2006-12-06
-
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.
From: Garth N. Wells, 2006-12-06
-
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.
From: Anders Logg, 2006-12-06
-
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.
From: Garth N. Wells, 2006-12-06