MENU
Skip menuOverview
The codes posted here are from research, class projects and some are just for fun. They are all distributed under GNU GPL v3. I do all of my development on Linux machines. As such, most of the below can be compiled using the included makefiles. Some of my codes which are not listed here include a 1D discontinuous Galerkin solver for a simple conservation equation (in-progress), 2D least-squares FEM solution to Poisson's equation, finite element implementation of the deformation method for grid refinement, and a 2d finite difference code which uses the general transformations to solve Poisson's equation on an arbitrary grid.
Sample codes
- C++ finite difference triple-deck solver
- AFLR2 Python wrapper
- Three-dimensional Galerkin FEM solver for elliptic problems.
- Finite difference solver for the incompressible boundary layer equations
- Haskell ODE integrators
- Nonlinear C++ 1D Galerkin FEM code
I wrote this C++ code as a part of my Ph.D. research work on supersonic shock wave/boundary-layer interactions. Triple-deck theory is an asymptotic boundary layer theory which was pioneered by Lighthill (who is also famous for his work in acoustics) in the 1950s. Stewartson and Williams formalized the ideas into triple-deck theory in the late 1960s. The goal was to understand self-induced separation. Application of the theory led to a better understanding of upstream influence in shock wave/boundary-layer interactions. Triple-deck theory is still useful as a reduced-order model of sorts as it represents a simplification of the Navier-Stokes equations. The code and its features are describe in the README on the GitHub site.
This Python module is a high-level, object-oriented wrapper for the AFLR2 grid generator from Mississippi State University. The GitHub page is here. No GUI is provided. Rather, the tool is meant to streamline the process of generating the bedge files which are inputs to AFLR2.
This code was written as part of a project for AE 5301 - Finite Element Methods in Fluid Dynamics and Heat Transfer. I developed the entire C++ program from scratch using an object-oriented design. It took approximately two weeks. For a full overview, see the Bitbucket repository here.
I wrote this Fortran code so that I could better understand how to solve parabolic equations. This was of interest because I wanted to write a finite difference code to solve the triple-deck equations. The code is available on GitHub.
I started learning Haskell in the Fall of 2015 out of curiosity. I'd heard many claims that functional programming languages have great promise in scientific computing. I'm particularly interested in writing parallel programs in Haskell. I wrote the attached ODE integrators because the libraries provided on hackage weren't playing nice with other things installed on my system. The code is available in zipped form here. Because Haskell is purely functional, the Euler and RK4 functions are recursive. The code is also very concise.
This code was developed to investigate different methods for computing sensitivities using finite element programs. The source is available on GitHub. The finite difference method, complex variable method and semi-analytic complex variable method are implemented. The problem involves steady-state heat conduction with temperature-dependent thermal conductivity. The sensitivities with respect to parameters in the expression for thermal conductivity are computed and compared with exact results.