python

Multiprocessing in Python

Most of the codes I develop run in parallel using MPI (Message Passing Interface) using the python wrapper, mpi4py. There is a reason why highly scalable programs use this approach, and that is because each processor handles its own chunk of memory and communicates with other processors only when it’s needed. PETSc, for example, is a behemoth computing framework entirely written in the MPI computing philosophy. Despite MPI’s efficiency, there are some barriers:

Invert geology

A method to relate the spatial configuration of mesh nodes to lithology that is differentiable - an adjoint to the inversion of geological structure.

Curie point depth

Computing Curie depth from the magnetic anomaly

Convert images to arrays

This is how you go from a jpeg to a csv

Analytical conduction adjoint

An adjoint to the analytical steady-state heat equation

Implicit heat conduction

Algebraic expression in matrix representation to solve temperature using implicit 2D finite difference