Topic: What are the differences between oofem interfaces and base classes?

Hi Guys

I really wanna make it clearer about the oofem design concept.  I am not from computer science, which leads some concepts and terminology very obscure for me to seize well when I read the development manual and oofem design papers. However, brightness comes in and this forum provides me a really amazing place to learn more what I want to know!
Ok. I have two basic questions. One is what oofem kernel or software kernel means? The other is what the differences exist between interfaces and base classes though I think they are all about abstractions!

Regards

WJ

Re: What are the differences between oofem interfaces and base classes?

I don't think we really follow some strict lingo in OOFEM. It's quite straight forward.

We have had various interfaces (abstract classes you inherit, forcing you to implement certain features) for option things that elements or material models can support. For example interpolating their unknowns, computing nodal values of stresses etc.

There has been ideas to extend the interfaces to include more fundamental things, such as supporting structural problems, meaning we could just compose elements by inheriting various interfaces (though there are some practical difficulties with multiple inheritance sometimes). So far, this is only partially done, which is why you sometimes see the "Evaluator" classes, and sometimes not.


Kernel is even less clear. It might refer to the base library ( /src/oofemlib ), or maybe all of OOFEM depending on context. Are we really using this word that much?