Numerical Methods       

Orthogonal Collocation Revisited

These pages contain an Ebook/Tutorial on the Orthogonal Collocation method, a.k.a. Pseudospectral method and Differential Quadrature method. The project includes a monograph and open source with code in Matlab/Octave, Python, C++, Fortran 90+ and Excel available for free download. It is really more than a tutorial, because it explains some aspects of the method which are not clear or wrong in much of the existing literature. The project is under construction and will be expanded, so I have generalized the title of the monograph to:

Implementing Weighted Residual, Spectral and Finite Element Methods

 Orthogonal Collocation, Pseudospectral, Differential Quadrature

The long title is a consequence of the name proliferation which has occurred for this subject area. The struggle for consistent nomenclature and against name proliferation has become a crusade of mine. If you would like to provide feedback on the project, I can be reached at larry@tildentechnologies.com. Many of my old journal articles are available at my ResearchGate page.

Latest News - January 2020

After a laps of a couple of years, I've now embarked on a major update. During the interim, I published a paper summarizing some of this work in the March, 2019 issued of Computer Methods in Applied Mechanics and Engineering, which is called Orthogonal Collocation Revisited. I also got carried away and spent far too much time studying Jacobi polynomials and implementing accurate and efficient calculation methods. These are detailed in the monograph. They are implemented in Fortran, but will be made available for the other languages through a shared library. Unfortunately, there are no new examples other than a "First Example", but I believe other examples can be added easily with the current document framework. The monograph approaches the subject from an historical perspective. You will not find a better description of how these methods evolved. The monograph is now in a single file and includes many links to ease navigation.

The updated monograph and new codes for Python and Fortran are now available. These codes are in a correct object oriented framework which make them easy to use. The codes are furnished in .zip files. The best way to download is to click on code downloads page which gives access to documentation and the current code files for each language. You can also go directly to the documentation and latest codes using the links below.

- monograph, (PDF 235pg, 4.6MB) (Jan. 2020)

- code downloads

- code documentation, (PDF 16pg,  370k) (Jan 2020)

- Python code (Jan 2020)

- Fortran code (Jan 2020)

 

A current outline is:

1. Introduction to the Basics
    1.1 Trial Functions
    1.2 Historical Perspective
    1.3 A First Example
    1.4 Road Map to this Monograph
2. Fundamental Calculations
    2.1 Jacobi Polynomials
    2.2 Differentiation of Jacobi Polynomials
    2.3 Orthogonal Polynomial Roots
    2.4 Quadrature and Barycentric Weights
    2.5 Nodal Differentiation Matrices
    2.6 Nodal Stiffness Matrices
    2.7 Nodal Mass Matrices
    2.8 Discrete Jacobi Transforms
    2.9 Monomial Transforms
    2.10 Software
    2.11 Example Calculations
3 Boundary Value Problems
    3.1 Diffusion/Conduction with Source
        3.1.1 Orthogonal Collocation Method
        3.1.2 Method of Moments
        3.1.3 Galerkin Method
        3.1.4 Mass Conservation and Fluxes
        3.1.5 Symmetric and Nonlinear Problems
        3.1.6 Relationship to the Tau Method
        3.1.7 Orthogonal Polynomial - Modal Trial Functions
    3.2 Chemical Reactor with Axial Dispersion
4. Parabolic Partial Differential Equations
    4.1 Mass or Heat Transfer from Falling Liquid Film
        4.1.1 Orthogonal Collocation
        4.1.2 Galerkin Method
        4.1.3 Continuous Solutions in z
        4.1.4 Numerical Solutions in z

 

I originally called this project Orthogonal Collocation Revisited, because after my involvement with orthogonal collocation (OC) during the early days in the 1970’s, I had reason to use it again more recently.  I was writing a model of an automotive valve train, and OC seemed to be ideal for treating the valve springs. As I started to write a description of the model, I reviewed OC over the last 50 years and discovered that some aspects of the method have never been explained (at least not clearly) and some information is missing or just plain wrong. Documentation of the valve train model got bogged down explaining the fundamentals of OC. This problem prompted me to write the monograph. At first I thought I would do a short webpage and perhaps a note to a journal, but as you can see, it has blossomed well beyond that.

This is a pragmatic approach to solving differential equations. I am particularly concerned about acquiring accurate engineering quantities from the solution, e.g. boundary fluxes. In most real world problems, one is primarily interested in how an object interacts with its surroundings, e.g. the transfer of heat from a fluid to a solid, and this invariably involves flux calculations. Flux calculations are virtually ignored in some of the more mathematical articles and texts about these methods.

I first lay the fundamental framework for orthogonal collocation.  Then, I show what works and what does not work using a series of examples.  In many cases the examples are solved not only with orthogonal collocation, but also with other methods for comparison, e.g. Galerkin, Moments, finite elements and finite differences.  The examples also will cover a variety of problems: boundary value problems, parabolic equations, hyperbolic equations, one and two spatial dimensions.  The examples show the advantages and disadvantages of the method for each type of problem.

In developing this material, I have assumed you are familiar with basic linear algebra such as Gaussian elimination, matrix factorization and eigenvalues and eigenvectors. Furthermore, I assume you understand how to take a differential equation and put in nondimensional form. Finally, I assume you have some familiarity with whichever computer language you chose to work in.

 

You are visitor number

since March 21, 2011