![]() |
NeoPZ
|
The NeoPZ environment is a object oriented environment for the development finite element simulations.
The NeoPZ environment (in the future quoted as simply NeoPZ) incorporates several advanced finite element technologies in a single coherent structure, allowing its user to develop sophisticated simulations in a short period of time.
During my PhD work (late 1980's) I developed hp-adaptive finite element algorithms applied to the simulation of compressible fluid flow. The first version of the adaptive mesh datastructure dates back to 1984.
I soon noticed that adaptivity is a universal concept which can be applied to virtually any finite element simulation. During the time I studied in Texas, adaptivity was applied to the Stokes equations, to plasticity, to thermal problems, convection problems etc.
On the other hand, It was obvious that writing an hp-adaptive code requires a major investment. It takes at least two years to write and validate a three dimensional adaptive finite element code.
At that time I imagined it would be possible to write a finite element framework that would be allow its user to apply hp-adaptive strategies to different systems of differential equations in a single framework.
More recently, the concept of generality has been extended in that the NeoPZ library allows its user to choose the approximation space as well. One can approximate a differential equation with continuous or discontinuous approximation spaces. Denise Siqueira implemented two dimensional HDiv spaces in the library. Douglas Castro is working on its three dimensional extension. We are working on incorporating HCurl spaces as well.
The objective of the NeoPZ environment is to provide its user access to advanced finite element technologies within a coherent framework. Wherever possible those technologies should be able to interact with each other.
What is meant by "advanced technologies" is documented in the section
There are many ways to define a library of classes. A global view of the NeoPZ environment is found in
. This same structure is "more or less" recognized in the Modules section. The section
is dedicated to describing which algorithms within the NeoPZ environment are different from regular finite element codes