Thread Previous • Date Previous • Date Next • Thread Next |
kent-and@xxxxxxxxx wrote:
One thing to consider is more sophisticated dof mapping. It is worth considering a special class to take care of this. This would be useful for meshes with mixed cell/element types, parallel assembly and computing sparsity patterns.Yes, we could create a separate class in src/fem/ that takes care of this. Name suggestions: NodeMap, NodeMapping, Nodes, Dofs, DofHandler, ...What about DofHandler or DofManager? I see the class handling the dof mapping, as well as generating sparsity patterns. I'll add something, and start with a function for computing the number of non-zeroes per matrix row (we're overestimating this at the moment substantially which is giving me some memory problems). GarthYou can consider the dof-handler used in SyFi/PyCC. It is not as fast as the nodemap generated by FFC, but it is very flexible. It works for any dofs I know. It is also only about 100 lines of code, using a STL map. You can find it in the file DofT.h
I'm working on this right now so I'll take a look at the SyFi handler. I'm planning to offer different possibilities for the mapping, and also to allow user to provide something for special problems if they wish. The current FFC mapping is about as fast as it gets for scalar valued equations. For vector-valued equations, it's not good for sparse assembly.
Garth
Kent
Thread Previous • Date Previous • Date Next • Thread Next |