agentleFS
CliMACliMA/Oceananigans.jl/.claude/skills/new-simulation/SKILL.md

new-simulation

Skill1.4k starsChanged 10 days agoMITView on GitHub

Set up and validate a new Oceananigans simulation, with or without a reference paper

2 other projects use a version of this, 1 of them edited.

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 2 mentionsFeb 2026: 2 mentionsMar 2026: 1 mentionApr 2026: 2 mentionsMay 2026: 0 mentionsJun 2026: 1 mentionJul 2026: 1 mentionAug 2026: 2 mentionsSep 2026: 1 mentionOct 2026: 7 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the CliMA/Oceananigans.jl repository that our weekly crawl found. There is no adoption data for this file yet.

Most recently taken up by

Who's talking about CliMA/Oceananigans.jl

The biggest 5 of 48 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 48

Talked about on GitHub, Bluesky and Hacker News (48 times).

On GitHub · 45

40 more on GitHub
  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 1

    1. NumericalEarth/Breeze.jl★ 9047% same

    Wrote their own version · 1

    1. physicshub/physicshub.github.io★ 68same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository5 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

22 rules. About 0 are common, 18 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈18

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the paper carefully and extract ALL parameters: domain size, resolution, physical constants, boundary conditions, initial conditions, …

    line 13
  2. Distinctive:

    Check parameter tables (often "Table 1"), figure captions, and coordinate conventions

    line 15
  3. Distinctive:

    Ask the user for the science goal or phenomenon to simulate

    line 18
  4. Distinctive:

    Create the grid and visualize it immediately (see Visualization below)

    line 24
  5. Distinctive:

    Verify domain extents, topography/immersed boundaries, coordinate orientations

    line 25
  6. Distinctive:

    If reproducing a paper, compare geometry to paper figures

    line 26
  7. Distinctive:

    Run a few timesteps on CPU at low resolution

    line 37
  8. Very specific:

    Check for NaNs: maximum(abs, u), maximum(abs, v), etc.

    line 38
  9. Distinctive:

    Verify flow is developing (velocities changing from initial state)

    line 39
  10. Distinctive:

    Check output files contain meaningful data

    line 40
  11. Distinctive:

    Run a short simulation and visualize results

    line 44
  12. Distinctive:

    Check physics: flow direction, velocity magnitude, mixing patterns

    line 45
  13. Distinctive:

    If reproducing a paper, compare to early-time figures

    line 46
  14. Distinctive:

    Run at full resolution / full duration

    line 50
  15. Distinctive:

    Create diagnostic visualizations matching the science goal

    line 51
  16. Distinctive:

    If reproducing a paper, match figure format, colormaps, axis ranges, time snapshots

    line 52
  17. Very specific:

    Use the Oceananigans Makie extension.

    line 56
  18. Distinctive:

    Wrong flow direction: check coordinate conventions

    line 137
  19. Distinctive:

    GPU issues: avoid branching, ensure type stability

    line 138
  20. Very specific:

    Place validation scripts in validation/<case_name>/

    line 142
  21. Very specific:

    Place example scripts in examples/

    line 143
  22. Distinctive:

    Follow existing conventions in those directories

    line 144

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

New Simulation

Set up, run, and visualize a new Oceananigans simulation.

Step 1: Understand the Case

If reproducing a paper:

  • Read the paper carefully and extract ALL parameters: domain size, resolution, physical constants, boundary conditions, initial conditions, forcing, closure parameters
  • Check parameter tables (often "Table 1"), figure captions, and coordinate conventions

If designing a new case:

  • Ask the user for the science goal or phenomenon to simulate
  • Clarify: domain geometry, resolution, physics (buoyancy, Coriolis, closures), run duration
  • Identify what quantities to diagnose and visualize

Step 2: Set Up Geometry

  • Create the grid and visualize it immediately (see Visualization below)
  • Verify domain extents, topography/immersed boundaries, coordinate orientations
  • If reproducing a paper, compare geometry to paper figures

Step 3: Set Initial Conditions

  • Apply initial conditions, then verify:
    • minimum(field) and maximum(field) make physical sense
    • Visualize spatial distribution
    • Dense water, stratification, velocity profiles are where they should be

Step 4: Short Test Run

  • Run a few timesteps on CPU at low resolution
  • Check for NaNs: maximum(abs, u), maximum(abs, v), etc.
  • Verify flow is developing (velocities changing from initial state)
  • Check output files contain meaningful data

Step 5: Progressive Validation

  • Run a short simulation and visualize results
  • Check physics: flow direction, velocity magnitude, mixing patterns
  • If reproducing a paper, compare to early-time figures

Step 6: Production Run and Comparison

  • Run at full resolution / full duration
  • Create diagnostic visualizations matching the science goal
  • If reproducing a paper, match figure format, colormaps, axis ranges, time snapshots

Visualization Guide

Use the Oceananigans Makie extension. Plot Field objects directly — avoid interior() and explicit nodes() calls whenever possible. The extension handles coordinate extraction, GPU-to-CPU transfer, and immersed boundary masking automatically.

Setup

using CairoMakie
using Oceananigans

Plotting Fields Directly

# 2D field (or 3D field with a Flat dimension) — just pass the field
fig, ax, plt = heatmap(field; colormap=:balance)

# Add to an existing axis
heatmap!(ax, field)

# 1D field
lines!(ax, field)

The extension auto-detects dimensionality, extracts grid coordinates, and sets axis labels.

Slicing 3D Fields

3D fields cannot be plotted directly — you must slice them first. Use view to create a 2D slice that remains a Field:

# Slice at k=1 (bottom), j=Ny÷2 (midpoint), etc.
b_surface = view(b, :, :, grid.Nz)
b_section = view(b, :, grid.Ny÷2, :)

heatmap!(ax, b_surface)
heatmap!(ax, b_section)

Animations with Observables

using Oceananigans.OutputReaders: FieldTimeSeries

bt = FieldTimeSeries("output.jld2", "b")

n = Observable(1)
b_frame = @lift bt[$n]

fig = Figure()
ax = Axis(fig[1, 1])
heatmap!(ax, b_frame; colormap=:thermal)

record(fig, "animation.mp4", 1:length(bt.times)) do i
    n[] = i
end

Spherical Grids

For LatitudeLongitudeGrid, TripolarGrid, etc., use surface! on an Axis3:

fig = Figure()
ax = Axis3(fig[1, 1]; aspect=:data)
surface!(ax, field; colormap=:viridis)

Common Mistakes to Avoid

  • Don't use interior(f) to get data for plotting — plot the Field directly
  • Don't call nodes(grid, ...) to build coordinate arrays — the extension does this
  • Don't forget compute! on computed Fields before plotting (the extension calls compute! automatically, but be aware of it for debugging)
  • 3D fields error — always slice to 2D or 1D first

Common Issues

  • NaN blowups: timestep too large, unstable ICs, if/else on GPU (use ifelse)
  • Nothing happening: wrong buoyancy sign, ICs not applied, forcing inactive
  • Wrong flow direction: check coordinate conventions
  • GPU issues: avoid branching, ensure type stability

Output

  • Place validation scripts in validation/<case_name>/
  • Place example scripts in examples/
  • Follow existing conventions in those directories

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.