Numerical Methods

Orthogonal Collocation Revisited

On these pages I am constructing an Ebook/Tutorial on the Orthogonal Collocation, a.k.a. Pseudospectral, method, which includes source code for free download (in Matlab/Octave, C++, Fortran 90 and Excel).  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.


Latest News - June 2017

I have again reorganized the material and made a few additions. The appendices were getting out of hand, so I have consolidated material in the "Fundamental Calculations" chapter and elsewhere. There is some new stuff here that you won't find anywhere else. Also, everything to do with boundary value problems have been consolidated in that chapter. This framework will allow me to add more examples to these chapters later. I particularly want to add a nonlinear parabolic example. I'm now behind on coding, so will be working on that in the next few months. I got a new computer, so both the Excel dll's and the Matlab .mex files no longer work. What happened to the idea of upward compatibility?


The text of this article is provided as PDF files (now with bookmarks) so they can be printed with full formatting and so I don't have to fiddle with equations in HTML.  Below is an outline that includes links to all the files that are available:

 I am calling this 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 45 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 this 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 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.

 I started this project in 2011 and did little additional for a few years, but now I am making good progress. Unfortunately, I keep redoing the first part. This is now the fourth rendition. I have coded several of the other problems listed as “coming”, but have not had a chance to write them up.

 There is now a lot more Matlab code as well, which was suggested in limited feedback I’ve received. As a retiree on fixed income, I couldn’t justify the corporate fat cat price for a Matlab license, so I chose to use the free clone Octave which is part of the GNU project. I am now using C++ and Fortran compilers from GNU also. All of the source code is free (see Download Page). Due to the size of this project, some examples may not be programmed in every language.

 The code provides a toolkit that far exceeds anything else available, in both capabilities and ease of use. The tools are useful for full Galerkin or Moments method as well as Orthogonal Collocation or Pseudospectral methods.  A simple instruction manual and a test code is provided for all four programming systems.


You are visitor number

since March 21, 2011