Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
0130d03
Merge remote-tracking branch 'origin/feature/coil-forcing-terms' into…
logan-nc Apr 12, 2026
6197505
KineticForces - NEW FEATURE - Complete PE→KF pipeline and validate DI…
logan-nc Apr 14, 2026
69064ab
DOCS - BUG FIX - Fix malformed markdown link in CoilGeometry docstrin…
logan-nc Apr 14, 2026
b10b157
KineticForces - PERFORMANCE - Buffer hoisting in BounceAveraging + ψ-…
logan-nc Apr 14, 2026
753918d
KineticForces - PERFORMANCE - Add FastInterpolations bracket-search h…
logan-nc Apr 14, 2026
cb100d8
KineticForces - PERFORMANCE - Hoist tpsi! θ-grid buffers and drop red…
logan-nc Apr 14, 2026
2976ce5
KineticForces - PERFORMANCE - Fast Float64 energy kernel for ximag==0…
logan-nc Apr 14, 2026
4247288
benchmarks - CLEANUP - Remove exploratory KF scripts and duplicated i…
logan-nc Apr 14, 2026
177add8
benchmarks - CLEANUP - Remove redundant nested Project.toml
logan-nc Apr 14, 2026
64f0950
benchmarks - NEW FEATURE - Kinetic-DCON validation vs Fortran DIIID_k…
logan-nc Apr 14, 2026
c3ad914
KineticForces - BUG FIX - Correct fbnce_norm off-by-one in matrix branch
logan-nc Apr 15, 2026
84c2c39
KineticForces - REFACTOR - Split calculated-matrix path off tpsi!
logan-nc Apr 15, 2026
fad9ef2
KineticForces - BUG FIX - Correct pl factor and range in matrix bounc…
logan-nc Apr 15, 2026
47bcad6
KineticForces - BUG FIX - Preserve complex phase in matrix-path fbnce
logan-nc Apr 15, 2026
3f5c705
KineticForces - BUG FIX - Match Fortran pentrc nlmda=128 default on m…
logan-nc Apr 15, 2026
f2e8eae
KineticForces - NEW FEATURE - Vector-valued QuadGK pitch integrator o…
logan-nc Apr 15, 2026
44d6199
benchmarks - NEW FEATURE - Per-surface kinetic matrix diagnostic with…
logan-nc Apr 15, 2026
c9bec0a
KineticForces - PERFORMANCE - Exploit A/D/H Hermiticity to halve kine…
logan-nc Apr 15, 2026
2098df6
benchmarks - NEW FEATURE - a10 kinetic-DCON benchmark + eigenvector H…
logan-nc Apr 16, 2026
08893ef
KineticForces - PERFORMANCE - Thread-parallelize ψ-loop in kinetic ma…
logan-nc Apr 16, 2026
de33c40
EQUIL - NEW FEATURE - pow1 edge-packed grid matching Fortran powspace
logan-nc Apr 16, 2026
def24ea
ForceFreeStates - NEW FEATURE - Kinetic singular surface crossings wi…
logan-nc Apr 16, 2026
252b56f
Analysis - NEW FEATURE - plot_cond_fbar for kinetic resonance diagnostic
logan-nc Apr 16, 2026
4a5a927
EQUIL - BUG FIX - Cubic-spline resample of .kin profiles (match Fortran)
logan-nc Apr 16, 2026
692fe28
KineticForces - REFACTOR - Complete ODE → QuadGK migration and wire i…
logan-nc Apr 16, 2026
836fd58
KineticForces - NEW FEATURE - Wire profile scaling knobs (density_fac…
logan-nc Apr 17, 2026
d4a4893
KineticForces - BUG FIX - Correct kwmat/ktmat split convention in kin…
logan-nc Apr 22, 2026
7b956d7
Utilities - BUG FIX - FourierCoefficients drops duplicated θ=2π endpo…
logan-nc Apr 23, 2026
2a1061c
KineticForces - BUG FIX - Trapezoidal cumulative in bounce phase inte…
logan-nc Apr 23, 2026
b4e8828
KineticForces - CLEANUP - Explicit trapezoidal θ-quadrature in bounce…
logan-nc Apr 23, 2026
4a6c5c6
Merge branch 'feature/pe-kf-interface' of github.com:OpenFUSIONToolki…
logan-nc Apr 23, 2026
b1c9d62
KineticForces - BUG FIX - Dual-output pitch kernel for Fortran-semant…
logan-nc Apr 24, 2026
532893a
KineticForces - BUG FIX - Anti-Hermitian ktmat mirror for A/D/H upper…
logan-nc Apr 24, 2026
3240386
ForceFreeStates - BUG FIX - aamat = amat_kin^H · A_kin⁻¹ for non-Herm…
logan-nc Apr 24, 2026
27f3012
ForceFreeStates - CLEANUP - Rename ffit.dmats/emats to dmats_prim/ema…
logan-nc Apr 28, 2026
66c6254
FastInterpolations - BUGFIX - Remove 'check=false' from PeriodicBC in…
matt-pharr May 20, 2026
083b0cc
EQUIL - BUG FIX - Snap periodic theta endpoint at 2D interpolant cons…
matt-pharr May 21, 2026
c9fd438
IMAS - BUGFIX - Add toroidal field sign to DirectRunInput in read_ima…
matt-pharr May 21, 2026
6589533
Merge pull request #243 from OpenFUSIONToolkit/bugfix/periodicbc-reve…
logan-nc May 22, 2026
181c4ff
Merge remote-tracking branch 'origin/kinetic' into feature/pe-kf-inte…
logan-nc May 22, 2026
7dc430d
KineticForces - NEW FEATURE - u-substitution energy integral with ana…
logan-nc May 22, 2026
fdb95f0
Merge remote-tracking branch 'origin/develop' into feature/pe-kf-inte…
logan-nc May 22, 2026
382c31e
KineticForces - BUG FIX - Guard energy pole extraction against extrem…
logan-nc May 23, 2026
ace7abc
KineticForces - BUG FIX - Migrate benchmark gpec.toml to current FFS …
logan-nc May 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,7 @@ This format is used for compiling release notes, so tags should be human-readabl
- **Indexing**: The codebase uses 0-based indexing in many places to match Fortran conventions, then converts to 1-based Julia indexing
- **No step numbering in code comments** - Avoid annotations like "Step 1: do this" followed by "Step 2: do that". These get out of sync as code changes. Just describe the action without numbering.
- **Documentation coverage** - When adding a new module or submodule with public docstrings, add a corresponding `@autodocs` block in `docs/src/`. Documenter CI will fail with a `missing_docs` error if any exported docstring is not covered. The analysis submodule docs live in `docs/src/analysis.md`.
- **Docstrings are rendered as Markdown** - Documenter parses docstrings as CommonMark, so `[text](...)` patterns become hyperlinks and will fail CI with `invalid local link/image` if the target doesn't exist. Common pitfall: unit annotations like `[degrees] (or [m] if ...)` parse as `[degrees](or [m] if ...)` — a broken link. Use plain words (`in degrees`) or backticks (`` `[m]` ``) for unit labels inside docstrings. Same rule for bracketed array-shape hints (`[ncoil]`) followed by parentheses. When in doubt, preview with `julia --project=docs docs/make.jl` before pushing.
- **Keep code comments concise** - A comment should be one line where possible. Do not write multi-line block comments explaining the current session's investigation, what was tried, what was wrong before, or why a specific file/path behaves differently. State what the code does and why at a general level. Example of too much detail: a 6-line block explaining that efit_by_inversion uses psilow>0 while CHEASE starts at 0, that the old code was removed, and that spline spikes result. Preferred: `# Replicate Fortran inverse.f: overwrite deta at axis (r²=0) by extrapolating from innermost surfaces.`

### Output Files
Expand All @@ -607,6 +608,19 @@ This format is used for compiling release notes, so tags should be human-readabl
plot!(p, m_ext, a_ext; seriestype=:steppre, lw=2, label="...")
```

### Subagent Consultations

When delegating to specialized agents (julia-performance-optimizer, fast-interpolations-optimizer, fortran-physics-reviewer, clean-code-reviewer, etc.), every prompt **must include an explicit budget** because runaway agents silently consume the user's daily token quota. A single consultation that explores instead of editing has been measured at 167 tool calls / 55 minutes / no return — that is a session-killer. Defaults:

- **Hard cap: ≤ 30 tool uses and ≤ 10 minutes wall time per consultation.** State both numbers in the prompt verbatim ("Budget: ≤30 tool uses, ≤10 min").
- **Single concrete deliverable.** One file, one function, or one named hotspot list. Not "audit the module."
- **No exploration phase.** The prompt must hand the agent the file paths and line numbers; the agent's job is to edit, not to map the codebase.
- **Require an interim status if the work might exceed budget.** Tell the agent: "If you cannot finish within budget, stop and report what was changed and what remains."
- **Prefer two short focused agents over one open-ended one.** If an investigation needs both performance and interpolation review, run them sequentially with separate ≤30-tool budgets — don't chain them in one long prompt.
- **Never re-launch a runaway agent.** If an agent hits the API rate limit before returning, do not retry; report the partial state to the user and switch to hand-implementation.

These rules apply to **every** Agent tool invocation, not just performance work.

### Code Formatting

Pre-commit hooks enforce formatting via JuliaFormatter (v1.0.62) and general file hygiene. **All code you write or modify must already conform to these standards before committing**, so the hooks have nothing to fix. Failing to do this creates noisy diffs in PRs where formatting changes leak into unrelated files.
Expand Down
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ DiffEqCallbacks = "4.9.0"
Documenter = "1.14.1"
FFTW = "1.9.0"
FastGaussQuadrature = "1.1.0"
FastInterpolations = "0.4"
FastInterpolations = "0.4.10"
HDF5 = "0.17.2"
IMASdd = "8"
JLD2 = "0.6.3"
Expand Down
45 changes: 0 additions & 45 deletions benchmarks/DIIID_kinetic_example/dcon.toml

This file was deleted.

30 changes: 0 additions & 30 deletions benchmarks/DIIID_kinetic_example/equil.toml

This file was deleted.

Binary file removed benchmarks/DIIID_kinetic_example/euler.bin
Binary file not shown.
Loading
Loading