RUB »Fakultät für Mathematik »Numerische Mathematik

Numerical Software


Python Module "pydar"


pydar is a Python module implementing an adaptive linear finite element method for general linear elliptic equations of second order in a bounded connected two dimensional domain with inhomogeneous Dirichlet boundary conditions. The discretization consists of standard linear triangular elements without any additional stabilization and interpolated boundary conditions. The domain may have a curved boundary. In this case the integrals in the discrete problem extend over piecewise linear approximations of the domain and its boundary and the boundary approximation is improved during the refinement process by projecting mid-points of bisected boundary edges onto the curved boundary. The assembly is based on quadrature rules of order one and two. The discrete problem is solved using the sparse linear system solver of scipy. The mesh refinement is either uniform or adaptive with marked edge bisection based on either a standard residual error indicator, or a residual error indicator based on edge residuals exclusively, or the Zinkiewicz-Zhu error estimator in its simplest form.

Here you'll find a short user guide. A zip-file with the source code may be provided upon e-mail request.


Python Module "pyns"


pyns is a Python module implementing an adaptive finite element method for the Stokes equations in a bounded connected two dimensional domain with inhomogeneous Dirichlet boundary conditions. The discretization either consists of the stabilized linear-linear element with the mini-element as a special case, or the stabilized linear-constant element with the Bernardi-Raugel element as a special case, or the Hood-Taylor element, or the non-conforming Crouzeix-Raviart element and interpolated boundary conditions. The domain may have a curved boundary. In this case the integrals in the discrete problem extend over piecewise linear approximations of the domain and its boundary and the boundary approximation is improved during the refinement process by projecting mid-points of bisected boundary edges onto the curved boundary. The assembly is based on quadrature rules of order one and two. The discrete problem is solved using the sparse linear system solver of scipy. The mesh refinement is either uniform or adaptive with marked edge bisection based on either a standard residual error indicator, or a residual error indicator based on edge residuals exclusively, or the Zinkiewicz-Zhu error estimator in its simplest form.

Here you'll find a short user guide. A zip-file with the source code may be provided upon e-mail request.


SciLab Library "Numerics" (no longer maintained)


"Numerics" is a library of SciLab functions which implement some of the algorithms that are presented in the Numerics courses. This in particular covers the following topis:

  • interpolation
  • numerical integration
  • solution of systems of non-linear equations
  • iterative solvers for linear systems of equations
  • eigenvalue problems
  • single and multi-step methods for ordinary differential equations
  • finite difference methods for partial differential equations
  • linear, discrete and non-linear optimization

Scilab is a freeware software with a functionality and syntax comparable to Matlab. Here you may download SciLab for your operating System. In the section "Documentation" with the subsections "SciLab Tutorials" and "Community's Documents" of this site you'll find some user guides for SciLab.

To install and use "Numerics" proceed as follows:

  • Install SciLab on your computer.
  • Download the compressed archive Numerics.zip.
  • Decompress the archive "Numerics.zip" and put the result in a folder of your choice.
  • Start SciLab.
  • In the SciLab console enter the command "mylib = lib(path)" (without quotation marks). Here, path is a string (with quotation marks) which gives the full path-name to the folder created above. As a result you should obtain an alphabetic list with the names of the functions in "Numerics".
  • In the SciLab console enter the command "numerics_help()" (without quotation marks) to obtain a short help concerning the functionality of the implemented functions.

Here you'll find a short user guide.

"Numerics" is devised for teaching purposes exclusively and must not be used for commercial purposes. We do neither guarantee that the functions are free of bugs nor that the implementation is optimal.


SciLab Library "AFEM" (no longer maintained)


"AFEM" is a library of SciLab functions which numerically solve two-dimensional elliptic partial differential equations using adaptive linear triangular elements based on a posteriori error estimators and marked edge bisection.

Scilab is a freeware software with a functionality and syntax comparable to Matlab. Here you may download SciLab for your operating System. In the section "Documentation" with the subsections "SciLab Tutorials" and "Community's Documents" of this site you'll find some user guides for SciLab.

To install and use "AFEM" proceed as follows:

  • Install SciLab on your computer.
  • Download the compressed archive AFEM.zip.
  • Decompress the archive "AFEM.zip" and put the result in a folder of your choice.
  • Start SciLab.
  • In the SciLab console enter the command "mylib = lib(path)" (without quotation marks). Here, path is a string (with quotation marks) which gives the full path-name to the folder created above. As a result you should obtain an alphabetic list with the names of the functions in "AFEM".
  • In the SciLab console enter the command "afem_help()" (without quotation marks) to obtain a short help concerning the functionality of the implemented functions.

Here you'll find a short user guide.

"AFEM" is devised for teaching purposes exclusively and must not be used for commercial purposes. We do neither guarantee that the functions are free of bugs nor that the implementation is optimal.


Applet "Numerics" (no longer maintained)


This Applet implements the following algorithms which are subject of the various courses in numerical analysis:

  • interpolation
  • numerical integration
  • solution of non-linear equations
  • direct and iterative solvers for linear systems of equations
  • computation of eigenvalues
  • single and multi-step methods for ordinary differential equations
  • linear optimaization

Here you'll find a short user guide.
Here you may start the applet "Numerics".


Applet "ALF" (no longer maintained)


This applet implements an adaptive finite element discretization for scalar linear elliptic equations in two dimensions. The discretization uses linear triangular or quadrilateral elements. The error estimation is based on a residual error indicator. The discrete problems are solved with preconditioned CG-algorithms or multigrid methods.

Here you'll find a short user guide.
Here you may start the applet "ALF".