Programming Finite Element Methods in C

One of the authors of fenics, A. Logg, have written a very good paper on datastructures of storing meshes. The paper is

A. Logg (2009). Efficient Representation of Computational Meshes fact it's always a tradeoff between storing all the topological informations (nodes around nodes, faces around nodes, etc...) OR having to recompute them before using them. If you store them then you will probably end up with a very massive amount of data to store, if you recompute them using iterators will take some (too much) time. Depending upon the algorithm (typically for FEM, with linear elements you just want nodes of polyhedrons to assemble your local stiffness matrices), you may want to use some specific traversals and then you can generate what you need on the fly.Anyway, the proposed solution in fenics is based on many arrays of integer handles and is probably what's closest to the most efficient method (both in terms of memory and access).

I am trying to develop a library for finite element methods in C and for that I am looking at the data structures for meshes. Based on what I've read up on fenics and deal.ii, the general understanding seems to be that a basic mesh class should have the following members:

Cells, Faces, vertices.

Connectivity relationships (What are the neighbors of a given cell, common faces between cells, vertices of a given cell, boundary indicators for cells, faces and vertices)

Cell iterators

These are my questions:

What is the best way to store cells of a mesh. I think an STL vector would suffice. Is this the popular option? I have also read that linked lists have been used for cells but I cannot see the advantage of linked lists over vectors in this case.

Again, for the connectivity relationships, STL maps seem to be the best method for me. Any comments on this?

Does the same data structure work for both triangular and quadrilateral meshes. I think it should but I am not sure if I am missing anything basic here?

Are there any more connectivity relationships to be kept in mind?

Are there any good references for programming a finite element library?

Thank you.

cell map related articles
Let's Talk About the Application of Thermal Conductive Silica Gel in LED Lighting Industry
7 Tips to Help You Sell Your Farm Fresh Eggs for More Money
Need Help Finding Kitchen Items and Sofa?
Can I Heat an Outside Chicken Coop with an Underground Heating System?
How Can I Get My Foundation Brush Clean?