-
Languages I prefer developing with: C, Modern C++, Fortran, Rust & Golang.
-
High Performance Computing. E.g OpenCL & SYCL; I'll be doing some projects using these (at some point in the next couple of months).
-
Computational Science.
-
Systems Programming: E.g. Operating Systems/Kernel Development & Compiler Development
-
Scientific Programming: E.g. Modelling and Simulation of problems in Fluid Dynamics & the Physical Sciences.
-
Applied Mathematics: E.g. Numerical Analysis: Numerical Linear Algebra and Numerical Ordinary/Partial Differential Equations.
-
Developing a Modern Fortran Solver for 2D Heat Diffusion Through Different Geological Materials. Makes use of OOP techniques and the OpenMP API. Project Name: 2DGeoHF.
-
viscousRiver: a C++ solver for modelling a Viscous Fluid flowing through a Channel. Makes use of the Finite Element Method (FEM) and the Eigen Template Library (Eigen) for the Algebra.
-
Developing a C++ Solver for the Burgers Equation for 2D Channel Flow. Concepts/tools that will be utilised: OOP, the Finite Element Method (FEM) and the Eigen Template Library for the Algebra. Project Name: 2D_BurgerFEM.
-
Re-developing the NavierStokes-2D-ChannelFlow Fortran Solver from a Serial to a Parallel version, making use of OOP techniques and the OpenMP API.
-
sigPro. This is a Dynamic Library (.SO) developed in Modern C++, (hopefully C++20), which allows user to perform basic Signal Processing tasks. E.g. converting spacial or temporal data into frequency data via the Discrete Fourier Transform (DFT).
-
fastDFT. Using OpenCL to develop a solver for the Discrete Fourier Transform (DFT).
-
lidFlowFVM. This is a C++ solver, which models Lid-Driven Cavity Flow. The Discretization Method used will be the Finite Volume Method (FVM). Everything else will be developed by myself.
-
Developing Unit Tests for a number of solvers developed in C. See repositories from High Performance Computing Applications for Physical Simulation.
-
A Dynamic Library called cfvmLib, developed in C++, (hopefully C++20), for problems in Fluid Dynamics. The Discretization Method used will be the Finite Volume Method (FVM). Linear problems will be tackled first; hopefully Non-Linear problems will be tackled not too far down the line!
-
Linux Kernel called basix.
-
Operating Systems: Three Easy Pieces. I've been meaning to read this for years!
-
Compiler using C. Language implementation will (hopefully) be with Rust.
-
Operating System developed in Rust. Project Name: ros.
-
RDBMS (SQL) developed in C++. Hopefully look at doing this with C++20. Project Name: CDB++.
-
Distributed File System development in Golang. Project Name: GoDistIt.
-
Rust version of Git. Project Name: RustIt.
-
Compiler Development using LLVM.
-
Heterogeneous Programming: Using SYCL to develop a Numerical Solver for the Linear 2D Heat/Diffusion Equation. Could be any Partial Differential Equation; TBC.
Programming Languages |
|
Scripting |
|
Data Analytics |
|
Text Editors |
|
Databases |
|
Other |
|
Below shows a list of links to some of my repositories.
- Boundary Value Problem (BVP) Library.
- Application of the Shallow Water Equations to Problems in Oceanography & Planetary Atmospheres.
- Navier-Stokes Equation Solver for 2D Channel Flow.
- Application of the U-Net Convolutional Neural Network to Classify Salt and Sediment Structures in Oil & Gas Reservoirs.