Skip to content

MRLintern/MRLintern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Hello 👋, welcome to my GitHub Profile!


Contact Me:



About Me


  • Geophysicist by trade who fell into Data Science, Machine Learning and Data Engineering.
  • Besides Data Science and Machine Learning, I enjoy applying my skills to problems in Scientific Software Engineering, creating Simulations and Solvers using Modern C++, C and Fortran.

Education


  • University of Edinburgh: PG ProfDev High Performance Computing: September 2020 - September 2022

    • Modules covered:
      • OpenMP, MPI, Parallel Architectures, GPU Computing, Compilers, Numerical/Scientific Computing Algorithms and High Performance C and Fortran.
  • 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 and Quantitative Interpretation.
  • 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 Methods and Fluid Dynamics.

Interests


  • 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.

What I'm Up To


Currently Working on:

  • Up-skilling; Data Structures & Algorithms in C++17/20.

Projects on Hold:

  • SigProLib: A C++17 Cross-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.

  • BVPLib: A C++20 Library for solving Boundary Value Problems, using modern features, such as modules, rather than using traditional methods, such as header 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 as vector.cpp and matrix.cpp. These are exercises for the reader and I will be creating these too. All source code for their/that project is pure C++11 with no use of useful APIs. I might use Eigen to tackle the linear algebra.

Future Projects:

  • 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).

  • Refactoring 1D_Wave_Equation-MPI into a more modular form. Additions to be added: Unit Testing and Plotting.

  • 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.


Top Languages


Top Langs


Sample Projects


  • Some projects I'm quite chuffed with can be found below:

Scientific Computing

MATLAB

  • GeoFluidics.
    • Application of the Shallow Water Equations to Problems in Oceanography & Planetary Atmospheres.

Fortran

Python

C++14/17

High Performance Computing: Applied Mathematics and Scientific Computing

C


About

GitHub profile page

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published