On Wed, Oct 24, 2012 at 3:03 PM, Lei Shi <stoneszone@gmail.com> wrote:
BTW, I'm confused about the difference between the template class FEGenericBase and pure virtual class FEAbstract. Why do we need FEAbstract? It seems that we can put everything from FEAbstract into FEGenericBase. Since all FE class just inherits from FEGenericBase. Why add an extra level to the class inheritance hierarchy?

FEGenericBase is templated on the "OutputType", namely scalar-valued or vector-valued. We keep FEAbstract separate because there are places in the code where we don't care about the type and only need access to the common structure contained in FEAbstract, as opposed to other places where we need to the type.