Thread Previous • Date Previous • Date Next • Thread Next |
Anders Logg wrote:
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 DofMapThat would work.ok. This will also have consequences for the file format for input/output of Functions.
Yes. Slightly related, I'd like to add output for MeshFuction<T> if the T is suitable for output.
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_elementI 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.
You don't see this in the code - just a hint in the comments that one element should correspond to the test element and the other to the trial element.
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.Or is it necessary to compute all the data?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.
Agree.My intention is that the data is built only if a renumbering is requested.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).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?
I think that I already removed it. FEM::size(uint e) should also be removed and DofMap::size(uint e = 0) should be used instead. This requires some work though because FEM::size() is used elsewhere in the code.
Garth
/Anders _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@xxxxxxxxxx http://www.fenics.org/mailman/listinfo/dolfin-dev
Thread Previous • Date Previous • Date Next • Thread Next |