I am a beginner in computational science and programming. I am doing research in non linear solid mechanics analysis and using C++ for coding. I have been exploring various finite element open source programs and saw some nice works like Deal.ii, FEniCS, OOFEM, libmesh. But as a beginner in C++ programming and finite element , documentation of these programs are beyond my comprehension and confusing. I would like to see  some simple object oriented C++ codes for solving finite element problems. My objective is not studying finite element analysis but to understand the implementation of algebra behind it in C++ Object oriented frame work.     Regarding my work, I am clear about the procedures and concepts in my mind. I have made a prototype in MATLAB. Since MATLAB program takes too much time to get the result I decided to switch to C++ considering the ease of future work. But various data structures in C++ makes me troubled to select appropriate storage and structure for nodes, elements, constraints and loads. In MATLAB I imported prepared data (nodes, element connectivity, loads and boundary constraints) from spread sheet and used in built functions for calculations. In the C++ implementation, I am thinking to use a text-file (like in Abaqus/Calculix) for input. How do I implement it?           I am searching for a well commented small finite element program source code for solving plane stress problems, like the kind of programs some university is using for teaching. I went through the book of S D Rajan, Numerical methods in C++ and got some insights about C++ data structures but still I need to go through some source codes for developing my own program. In later stages of my research I can make use of existing finite element libraries like Deal.ii and FEniCS.
Developing a C++ solid mechanics program
finite element;c++;fenics;deal.ii;solid mechanics
This is not really a program as much as a big repository of codes. John Burkardt from Florida State University maintains a rich collection of scripts in C++, Matlab and Fortran for a large range of problems. You can check out the FEM 2D library or go up a level and look at other codes listed there. These have good commenting on them and you can look at the source directly.