- Telephone: 07813661626.
- Email 1: [email protected].
- Email 2: [email protected].
- LinkedIn.
- Geophysicist by trade who fell into Data Science, Machine Learning and Data Engineering.
- My real passion is Software Engineering using Modern C++, and using it to solve problems in Applied Mathematics, the Physical Sciences and aspects of Engineering.
- I'm keen to start learning more about Systems Programming and Engineering, so I'll be looking at some systems-level projects, such as developing a Compiler and Operating System, for example.
- I'm also interested in Computational Science; it takes the best parts of Computer Science and combines them with Science and Engineering.
-
University of Edinburgh: PG ProfDev High Performance Computing: September 2020 - September 2022
- Modules covered:
OpenMP,MPI,Parallel Architectures,GPU Computing,Compilers,Numerical/Scientific Computing AlgorithmsandHigh Performance CandFortran.
- Modules covered:
-
University of Aberdeen: MSc Geophysics: September 2014 - July 2015.
- Thesis undertook with Centrica plc:
- Forward Modelling of the Seismic Response of the Sherwood Sandstone Group of the Rhyl Gas Field.
- Skills:
Fortran,Forward Modelling,Rock MechanicsandQuantitative Interpretation.
- Skills:
-
University of Liverpool: BSc(Hons) Geophysics with Physics: September 2009 - July 2012.
- Thesis: Secular Variation and Core-Surface Flow Modelling.
- Skills:
Geomagnetism,Core Dynamics,Inverse Theory,Fortran,Numerical MethodsandFluid Dynamics.
- Skills:
- Thesis: Secular Variation and Core-Surface Flow Modelling.
- The table below shows tools and technologies I like working with:
| Programming Languages |
|
| Scripting |
|
| Data Analytics |
|
| Things I'd Like to Start Using |
|
| Databases |
|
| Other |
|
- Machine Learning (Fluid Dynamics). E.g. Application of Deep Learning Algorithms/Methods for replacing or augmenting Conventional Numerical Solvers in Fluid Dynamics.
- Machine Learning (Natural Language Processing). I've used this in a couple of jobs and it proved to be very informative. E.g. I used Sentiment Analysis while working at Tesco to understand customer opinions of Tesco products.
- Computational Science.
- Scientific Programming: E.g. Modelling and Simulation of problems in Fluid Dynamics & the Physical Sciences.
- Systems-Level Programming.
-
Up-skilling; Data Structures & Algorithms in C++17/20.
-
BVPLib: A
C++20Library for solving Boundary Value Problems, using modern features, such asmodules, rather than using traditional methods, such asheader files. This project follows the worked example in the book: Guide to Scientific Computing in C++, by Joe Pitt-Francis and Jonathan Whiteley. Note 1: I don't feel they create a library; they create more of a "header file" for BVPs. Note 2: They don't provide certain source files, such asvector.cppandmatrix.cpp. These are exercises for the reader and I will be creating these too. All source code for their/that project is pureC++11with no use of useful APIs. I might useEigento tackle the linear algebra.
- SigProLib: A
C++17Cross-Platform Shared Library which can be used to perform basic signal processing operations. Go here to see it. All of the signal processing techniques have now been developed. Its now a case of constructing the library itself.
-
The following projects are ideas; I might not do them.
-
Parallelise aspects/regions of the StokesianFlow solver via the OpenMP API.
-
2DWavePINN: A
C++17program which solves the 2D Wave Equation via a Physics Informed Neural Network (PINN). -
Refactoring 1D_Wave_Equation-MPI into a more modular form. Additions to be added:
Unit TestingandPlotting. -
TsunamiSolver: A
C++17Non-Linear Solver which models Tsunamis by solving the 2D Shallow Water Equations. -
OceanLib: A
C++17Library (.sofile) which helps users solve Partial Differential Equations (PDEs) that model different 2D Ocean Models. -
Developing a Modern (Pure) Modular Fortran version of NavierStokes-2D-Open-Channel-Flow using OOD. Unlike the original solver, this one uses Coarrays and Domain Decomposition for
Parallelism. -
BarotropicCirculation: A
C++17solver which models Large-Scale Ocean Gyres and Wind-Driven Circulation by solving the Linearized Shallow Water Equations on a Beta Plane using FEM. -
basix: a small Linux Kernal written in C.
-
ros: a basic Operating System written in Rust.
- Some projects I'm quite chuffed with can be found below:
- GeoFluidics.
- Application of the Shallow Water Equations to Problems in Oceanography & Planetary Atmospheres.
- 2D Poisson Equation Solver with OpenMP.
- 2D Heat Equation Solver using OpenMP.
- 2D Heat Equation Solver using MPI.
- 1D Wave Equation Solver using MPI.