- Telephone: 07813661626.
- Email 1: lintern121184@gmail.com.
- Email 2: programmagablescience@yahoo.com.
- 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
andHigh Performance C
andFortran
.
- 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 Mechanics
andQuantitative Interpretation
.
- Skills:
-
University of Liverpool: BSc(Hons) Geophysics with Physics: September 2009 - July 2012.
- Thesis: Secular Variation and Core-Surface Flow Modelling.
- Skills:
Geomagnetism
,Inverse Theory
,Fortran
,Numerical Methods
andFluid 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.
-
SigProLib: A
C++17
Cross-Platform Shared Library which can be used to perform basic signal processing operations. E.g., Signal Processing Statistics, Convolution of two signals and Time to Frequency Domain conversion via the Fourier Transform. Go here to see it. -
BVPLib: A
C++20
Library 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.cpp
andmatrix.cpp
. These are exercises for the reader and I will be creating these too. All source code for their/that project is pureC++11
with no use of useful APIs. I might useEigen
to tackle the linear algebra.
- Nothing at the moment.
-
The following projects are ideas; I might not do them.
-
Parallelise aspects/regions of the StokesianFlow solver via the OpenMP API.
-
2DWavePINN: A
C++17
program which solves the 2D Wave Equation via a Physics Informed Neural Network (PINN). A lot of issues with this at present and I'm currently focusing more of my time on SigProLib. -
Refactoring 1D_Wave_Equation-MPI into a more modular form. Additions to be added:
Unit Testing
andPlotting
. -
TsunamiSolver: A
C++17
Non-Linear Solver which models Tsunamis by solving the 2D Shallow Water Equations. -
OceanLib: A
C++17
Library (.so
file) 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++17
solver 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.