Short Course on the Object Oriented Finite Element Framework NeoPZ

Prof. Philippe Devloo

School of Civil Engineering

Universidade Estadual de Campinas, Brazil


Prof. Snia M. Gomes

Applied Mathematical Department 

Institute for Mathematics, Statistics and Scientific Computing

University of Campinas, Barzil


This short course gives an overview of the features of the object oriented programming environment NeoPZ. The objective of NeoPZ is to offer the scientific community advanced finite element algorithms in a coherent framework.  It hopes to foster the advancement of finite element research by making complex algorithms accessible through a simple class interface. NeoPZ is freely available and can be downloaded from github at The target public for the short course is people who are knowledgeable in finite element research and have some programming experience. Knowledge of C++ is desirable but not required.


This short course will take place at the State Key Laboratory of Scientific and Engineering Computing (LSEC). Time: July 31 – Aug 4, 9am – 11am. Address: LSEC Building Room 311, No. 55, ZhongGuanCun Donglu, Beijing, CHINA. 


Day 1: Overview of the NeoPZ software

The NeoPZ is organized by modules that can, theoretically, be used independently.  This lecture will give an overview of the different modules and their specific capabilities. The main modules are:

      Geometric map

      Approximation space

      Variational statement or weak form

      Linear Algebra

      Finite element tools

Day 2 : Approximation spaces in NeoPZ

Finite element research has pointed out that the quality of finite element approximations depends very strongly of type of approximation space that is used. Elliptic problems are very well approximated with H1 approximations, hyperbolic equations are better approximated with discontinuous element spaces, simulations where local conservation is important are better approximated by H(div) approximation spaces.

This lecture will show which approximation spaces are available within the NeoPZ environment and which interface they present to the user. At this point the following approximation spaces can be used:

      Continuous approximations (H1)

      Discontinuous approximations

      H(div) approximations

      Any combination of the above (multi physics)

      Reduced approximation spaces

Most of the approximation spaces can be used in a hp-adaptive setting. H and P refinement levels can be chosen locally.

Day 3: Geometric mapping in NeoPZ

The geometric map allows the definition of approximation spaces on deformed elements. In this lecture we will elaborate on three related class structures: TPZTopologyTPZGeomTPZShape. This class structure allows the unification of geometric maps of all topologies, the definition of h-refined meshes and provides the framework for defining nonlinear geometric maps and shape function restraints. At the geometric level, h-refinement is generalized by refinement patterns.

Day 4: Approximating differential equations

The finite element technique combines the definition of approximation spaces with a variational formulation associated with the partial differential equation to create a linear system of equations. Each partial differential equation leads to a different system of equations. In this lecture we will illustrate the class structure that allows approximating virtually any system of differential that can be modeled by the finite element method. A class derived from the abstract TPZMaterial class models a differential equation. The attributes of the class is wider than defining the weak statement of the differential equation. It includes defining the necessary order of integration for a given polynomial order, post processing quantities of interest and others.

Day 5: Finite element tools and future developments

The above-described components are combined to implement finite element approximations. These components have been complemented by tools for creating truly sophisticated models. Different approximation spaces are combined to model the interaction between different physics. These are called multi-physics approximations.