These pages are here to describe and document my code at github, I also have some here personal home pages over at bitbucker.org. The projects here are a mix of mature ready to use code, works in progess, and `stubs'. They projects are
These projects (along with their current status) are described below. To try out any of these, just run "git clone https://github.com/seagods/X.git" at a terminal, where X=MieOhMy, SphereTree, etc.
Some of the code is written in C or C++, and some is written in fortran. Some of the code uses OpenGL graphics. None of this should be a problem on Linux/Unix (and I believe Apple Mac) machines. I would recommend the gnu-compiler collection for building these projects. Microsoft users will need to install Msys2 and MinGW-w64. I refer them to the Video Tutorial section further down. The openGL routines currently use SDL1, freetype-2 fonts for axis labels, numbers, and so on, and also OGLft. The latter is an Open GL Freetype library. At some point I should like to convert them to use SDL2 with SDL2-ttf, but this is not a priority.
Mie Theory is used to compute the scattering of a plane electromagnetic wave from a sphere. The basic solution is an expansion using Mie's pi and tau functions. To obtain the solution in `the-lab reference frame' we compute Spherical Harmonics coefficients from the Mie Coefficients using formulae developed by J.V. Dave. Scattering from many particles with a statistically described particle size distribution is also computed. The theory is given in some detail in documentation contained in the Theory directory. This is a mature project.
Dutton, and later GoodChild and Yang have published papers for generating quadtrees on spheres. The result is a set of increasingly fine triangulations of a sphere. They are based on recursive subdivions of a regular Octahedron or a regular Icosahedron. The linux part of the project is mature, however I am currently adapting the project so that it can be used by microsoft windows.
The PlotFiles start with 2D plots of y=f(x). Then space-curves r=(x(t),y(t),z(t)), surfaces z=f(x,y), and nested surfaces to represent w=f(x,y,z). We include contour plots with world maps. A 3D-tetrahedral mesh viewer, and a PlotGlobe to view a rotating planet Earth.
The PlotFilesMSwin are the same thing, but for use by Microsoft Windows users. I hope to adding some more routines, such as plotting f(theta,phi) on a sphere at some point. So the project is mature in a sense, though I will merge the MSwin into the PlotFiles at some point, and they shall be added to. Sometimes things will be `work-in-progress'. The Xfiles, HeadersFor Plot and bitmaps required by the the PlotFiles are kept in separate git projects.
The only thing here is a `game' called flight. I generate a landscape using the recursive subdivision idea of Mandelbrot, you can fly about in it. The only object of the game is to avoid crashing. It is also a 2D triangular mesh viewer, and belongs in the PlotFiles. (GamesMSwin is in PlotFilesMSwin)
I have used analytical solutions of cubic and Quartic equations to write this set of polynomial solvers, and eigenproblem solvers. I have included a Gaussian elemination routine used for collision detection in my openGL graphics
Not many people know about these, so far there is just some documentation to explain what they are, and the very begining of a continued fractions library. Very much a `work in Progress'.
The Discrete Ordinates Radiative-transfer Solver. I've been stalled for a long time, but I am improving and adapting my atmospheric radiation code. At the moment, I just have some programs to `build an atmosphere'. Very much a `work in Progress'. I haven't even put up the Discrete Ordinates code yet.
I have used a triangulation generated by SphereTree to demonstrate Geodesic propagation on a sphere.
Viewers for the Icosahedron, Dodecahedron, and Truncated Icosahedron (or bucky-ball)
For non MS windows people, and MS windows people inexperienced in programming, I have an introductory video series (Series 1) at youtube, with a follow on series 2 which looks at how to setup a lot of scientific computing stuff on MS windows (including graphics). Series 1 starts with very basic windows, covers installing and using compilers (especially GCC --- the Gnu Compiler Collection) and installing useful things with MSYS2 and mingw-w64. You will, for instance, be able to download and build fortran libraries and mix programming languages. Note the emphasis is on "building programs" rather than writing them. (No programing language tutorials here.) In Series 2, I get down to business with the installation of important mathematics and graphics libraries.
Series 1 is at Building Programs and Libraries on MS Windows and the follow on Series 2 is at Scientific Computing on MS Windows.
Series 1 contains 14 videos in all,
Then there is series 2, in which we do some heavy duty setting up on MS windows,