Skip to content
View NicJeffress's full-sized avatar

Block or report NicJeffress

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
NicJeffress/README.md

Nicolas (Nic) Jeffress

Mechanical engineer turned physical oceanographer. I recently finished my PhD at Duke University, where I studied how waves lose energy over very rough coral reefs and how to represent that bottom friction in wave models. I'm based in Santa Barbara, CA.

I care about making scientific models trustworthy and affordable to run: testing every change carefully and getting the same answer on any machine.

Particle tracks of lagoon water leaving an idealized coral reef through its passes, coloured by depth: a wave-driven jet and its eddies, 40°S rotation, stratified ocean

What I work on

  • Coupled wave and circulation modeling (COAWST, ROMS, SWAN) and particle tracking (ROMSPath)
  • Testing, extending and speeding up large Fortran model codes
  • Reproducible builds in containers (Docker, Apptainer) with automated checks in GitHub Actions
  • Ensemble runs on Google Cloud (Compute Engine, Cloud Batch, Spot machines) and HPC (512-core runs on SDSC Expanse)
  • Bathymetry merging, satellite imagery analysis, and field data from ADCPs and pressure sensors
  • Python, MATLAB, Fortran, C/C++, MPI, Linux/bash

Featured projects

  • coawst-cloud: a containerized build of COAWST v3.9 for running coastal ocean ensembles on any machine or on Google Cloud. It adds 29 documented and tested patches, fixes and extensions I developed while taking COAWST into periodic, vegetated reef setups, which I plan to offer upstream. Results are bit-identical on Intel and AMD, restarts are exact so long runs can use Spot machines, and the coupled reef case runs 1.7x faster.
  • idealized-reef: a family of idealized coral reef and island simulations (canopy, stratification, solar heating) tested in more than 100 runs, with a lab notebook entry for each. A simulated day costs about $0.15 on Spot machines.
  • ROMSPath: my fork of ROMSPath (Hunter et al., 2022), a particle tracking model for ROMS. I added periodic boundaries for idealized reef domains, along with timing and grid fixes checked against a test case with an exact answer, and made it 29 to 43% faster. Each change is its own commit so it can be offered to the original authors.

Get in touch

I'm open to roles in ocean and coastal modeling, coastal hazard and flood risk, climate research, and ML for weather and climate. LinkedIn

Pinned Loading

  1. coawst-cloud coawst-cloud Public

    COAWST (ROMS + SWAN) and ROMSPath in containers: a documented, tested patch series for COAWST v3.9, image builds, and tools for running ensembles of coastal ocean simulations on Google Cloud.

    Python

  2. idealized-reef idealized-reef Public

    Idealized coral-reef cases for COAWST (ROMS coupled to SWAN): bare, canopy, stratified and thermal reefs, with a lab notebook of every test behind the defaults. Built and run with coawst-cloud.

    Fortran

  3. ROMSPath ROMSPath Public

    Forked from imcslatte/ROMSPath

    Fork of ROMSPath (offline particle tracking for ROMS) adding periodic boundaries and ROMS Stokes drift names, with fixes to the particle clock, RK4 time stepping and curvilinear-grid positioning. U…

    Fortran