Semtex is a 'classical' quadrilateral spectral element DNS code that uses the standard nodal GLL basis functions and (optionally) Fourier expansions in a homogeneous direction to provide three-dimensional solutions. Its lineage can be traced back through Ron Henderson's Prism code to Nekton — in many ways the implementation is similar to Ron's code (see Henderson & Karniadakis (1995) J Comput Phys 122: 191–217) but without mortar element patching or mesh adaptation. One noteworthy difference is that Semtex supports cylindrical coordinate systems, and with full spectral convergence in all directions: see Blackburn & Sherwin (2004) J Comput Phys 197: 759–778 for a description of the method. For three-dimensional solutions the code may be run in parallel using MPI. In addition to an incompressible Navier–Stokes solver, source is also provided for an elliptic solver that will deal with Laplace, Poisson and Helmholtz problems.

Please note that Semtex is a 'research code' and is provided 'as-is' with the understanding that it will be used mainly by other computer-literate researchers in computational fluid dynamics. It is not guaranteed to work or to provide correct results, and neither I or any employer accept any liability for detriment or loss consequent on your use of the code. Please see the terms of the Gnu General Public License (GPL) under which the code is released for public use. On the other hand, I'd be happy to hear of your experiences with using the code and your types of applications and results.

I'm afraid that I do not have much time to answer routine questions about making Semtex compile, running examples, etc. Please consult the user guide (PDF) for information on these matters. Of course, I will be happy to hear of bugs, and even better, suggestions about how to fix them, although I cannot promise to remedy problems on a timely basis. The source code distribution is updated automatically every week from its CVS repository, however, the code is quite mature now and does not often change.

Here is the source code tarball. Semtex has been compiled and run on a variety of Unix systems. Consult the user guide for system requirements and compilation steps. As a minimum, your system will need C++, C and F77 (or later FORTRAN) compilers, the Gnu version of make, as well as BLAS and LAPACK libraries. For parallel compilation you'll need MPI libraries. Most of these things are readily available on modern Unix systems. The starting point if you have difficulty compiling (after consulting the user guide) is src/Makefile — quite likely you will find a set of compiler flags for a machine similar to the one you have, and reading it may help you diagnose and fix the problem.

If through your use of the code you manage to obtain publishable results, I would be pleased if you could cite Blackburn & Sherwin (2004) J Comput Phys 197: 759–778, where the numerical method is described.

Hugh Blackburn's home page and Semtex-related publications.