Tutorial programming examples for beginners and not so beginners.

BoostConv PDF

(contributed by Paolo Luchini, Vincenzo Citro and Flavio Giannetti) improves (or even enables) the convergence of a pre-existing, linear or nonlinear, iterative algorithm. Its reverse-calling interface only requires the insertion of a single line in the original code.

MeanandVar PDF

(contributed by Paolo Luchini) estimates the mean of an autocorrelated time series together with the variance of the estimate itself. Its use is to produce a statistical error bar for the finite time sampling of an experiment or direct numerical simulation.

Multigrid PDF

(contributed by Paolo Luchini) CPL library that solves the constant-coefficient 2D and 3D Poisson equation with multigrid iteration.


(contributed by Flavio Giannetti) evaluates the eigenvalues of the Orr-Sommerfeld equation with a spectral collocation method, using a 3-term recurrence relation to evaluate the derivatives of Chebyshev polynomials and the CPL Fortran interface to call lapack.

Quaternions PDF

(contributed by Paolo Luchini) CPL library providing a QUATERNION type and operations upon it in a straightforward algebraic syntax.

rbmatmod PDF

(contributed by Paolo Luchini) Distributed-memory extension of the rbmat.cpl library that solves a banded linear system by distributing the work among multiple nodes.

Spectral-CD-DNS PDF

(contributed by Paolo Luchini and Maurizio Quadrio) A classical spectral, compact-difference direct numerical simulation of turbulent channel flow in 300 lines of CPL.

Thomas53 PDF

(contributed by Paolo Luchini) Reproduction of the historical (Thomas, 1953) compact-difference computation of eigenfunctions and eigenvalues of the Orr-Sommerfeld equation.

TurbMeanFlow PDF

(contributed by Paolo Luchini) Toolbox offering a mean turbulent velocity profile as a CPL FUNCTION that can be used for plotting or as a component of your own program.


A list of scientific references that used CPL for their programming needs. Some related codes are available under article CPLcodes.