Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
40 changes: 39 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,22 @@ bash gen_page.sh

`gen_page.sh` writes into `_generated/` and is the only build step. There are no tests, no linter, and no local dev server — open `_generated/index.html` in a browser to check output (relative paths to `css/` and `media/` resolve correctly from there).

Deployment is automatic: `.github/workflows/deploy.yml` runs the same commands on every push/PR to `main` and publishes `_generated/` to GitHub Pages via `JamesIves/github-pages-deploy-action`.
Deployment is automatic once a change reaches `main` — see [Publishing](#publishing) below.

## Publishing

The live site is served from **`pyoomph/pyoomph.github.io`**, which is the `upstream` remote. `origin` is the fork `cdiddens/pyoomph.github.io`. Check with `git remote -v` before pushing anywhere — a push to `upstream/main` publishes immediately, with no review step.

The established flow (how PRs #19–#21 landed):

1. Commit the change — on a feature branch, or on the fork's `main`; both have been used.
2. `git push -u origin <branch>`
3. `gh pr create --repo pyoomph/pyoomph.github.io --base main --head cdiddens:<branch>`
4. Merge the PR. **Merging is what publishes the site**, so it is the user's call, not something to do unprompted.

The merge pushes to `upstream/main`, which triggers `.github/workflows/deploy.yml`: it installs the dependencies, runs `gen_page.sh` and force-pushes `_generated/` to the `gh-pages` branch via `JamesIves/github-pages-deploy-action`. That run takes ~20 s and is followed by GitHub's own "pages build and deployment" run. Check both with `gh run list --repo pyoomph/pyoomph.github.io`.

**A PR from a fork always shows a failing check — this is expected and not a defect in the change.** `deploy.yml` triggers on `pull_request` to `main` as well as on push, but for fork PRs GitHub scopes `GITHUB_TOKEN` to read-only regardless of the `permissions: contents: write` declaration. The build succeeds and only the final push to `gh-pages` fails with a 403, so nothing is published. The check goes green on merge, because a push to `main` runs with a writable token. Gating the deploy step with `if: github.event_name != 'pull_request'` would suppress the red X.

## How pages are assembled

Expand Down Expand Up @@ -46,6 +61,29 @@ Renders `pubs.bib` into the numbered publication list on the About page.
- Journal names are shortened via the `abbrevs` dict (lowercase key → abbreviation); add an entry there rather than editing the `.bib`. A `journal` starting with `arXiv` renders as *submitted*.
- PDF link: `eprint` (labelled "arXiv preprint" if the URL contains arxiv.org, else "Open Access"), otherwise a local `pdf/<citekey>.pdf` if present.

## Finding new publications for `pubs.bib`

The About page lists publications that **use** pyoomph, which is a smaller set than the publications that *cite* it. New entries are found by looking at what cites the main paper (Diddens & Rocha, J. Comput. Phys. **518**, 113306, 2024, `10.1016/j.jcp.2024.113306`) and then screening each candidate.

1. **Collect citing works.** Three DOI-based indexes, all open and without authentication — query all three, they disagree:

```bash
# OpenAlex (W4401074401 is the JCP paper)
curl -sS "https://api.openalex.org/works?filter=cites:W4401074401&per-page=200"
# Semantic Scholar
curl -sS "https://api.semanticscholar.org/graph/v1/paper/DOI:10.1016/j.jcp.2024.113306/citations?fields=title,year,externalIds,venue,authors&limit=100"
# OpenCitations (-L is required, the endpoint redirects)
curl -sSL "https://opencitations.net/index/coci/api/v1/citations/10.1016/j.jcp.2024.113306"
```

Merge and dedupe on DOI. The same work routinely appears twice — as preprint (arXiv, SSRN) and as published version — and OpenAlex sometimes holds two records for one DOI. Because all three indexes are DOI-based, theses and non-DOI preprints are invisible to them; Google Scholar reports a somewhat higher count for that reason.

2. **Subtract** what is already in `pubs.bib` and what is already listed in **`pubs_excluded.md`** — both match on DOI, `grep -i` is enough.

3. **Screen the remainder**: the paper must actually *use* pyoomph, not merely cite it. Papers citing the JCP paper for bifurcation tracking, Marangoni modelling or multiphysics coupling in general are common and usually do not use the framework.

4. **Add** what passes to the top of `pubs.bib` (order is literal, see `gen_pubs.py` above), and **append what fails** to `pubs_excluded.md` with the date, so it is not screened again.

## Files under `_generated/` that are committed

`css/`, `media/` (minus `media/tutorial/`), `docs.html` and `pdf.html` (meta-refresh redirects to readthedocs), `google3a5a7a86d2ed869e.html` (Search Console verification) and `sitemap.xml` are hand-maintained and tracked in git. The build only *adds* the three page files plus `media/tutorial/` on top of them — never clean the directory.
Expand Down
16 changes: 16 additions & 0 deletions _generated/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,22 @@ a {text-decoration:underline; color:#000000;}
#menu a {color:#FFF; text-decoration:none; padding:4px;}

#menu a:hover {color: #DDD}

/* small icon in front of every menu entry */
#menu .menu-icon {
width: 0.95em;
height: 0.95em;
vertical-align: -0.11em;
margin-right: 0.35em;
fill: currentColor; /* the three internal entries follow their label */
}
/* white variants: the "light logo" Read the Docs publishes for dark backgrounds,
and one of the colours GitHub permits for the Invertocat */
#menu .menu-icon-rtd { fill: #FAFAFA; }
#menu .menu-icon-github { fill: #FFF; }

/* keep the mark on the same line as its label when the menu wraps */
#menu a { white-space: nowrap; }
#menu li.selected a {color: #FFF}


Expand Down
10 changes: 5 additions & 5 deletions header.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@
<div id="content">
<div id="menu">
<ul>
<li><a href="index.html">Features</a></li>
<li><a href="about.html">About</a></li>
<li><a href="installation.html">Installation</a></li>
<li><a href="https://pyoomph.readthedocs.io/en/latest/">Documentation</a></li>
<li><a href="https://github.com/pyoomph/pyoomph">Source&nbsp;Code</a></li>
<li><a href="index.html"><svg class="menu-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 2l2.47 6.6 7.04.31-5.52 4.39 1.89 6.79L12 16.2l-5.88 3.89 1.89-6.79L2.49 8.91l7.04-.31z"/></svg>Features</a></li>
<li><a href="about.html"><svg class="menu-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M12 1.5A10.5 10.5 0 1 0 12 22.5 10.5 10.5 0 1 0 12 1.5zm0 1.9a8.6 8.6 0 1 1 0 17.2 8.6 8.6 0 1 1 0-17.2zm0 2.2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 1 0 0-3zm-1.3 4.6h2.6v7.4h-2.6z"/></svg>About</a></li>
<li><a href="installation.html"><svg class="menu-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M10.6 2.5h2.8v8.3h3.4L12 16.6l-4.8-5.8h3.4zM3.2 14.6v4.6a2.2 2.2 0 0 0 2.2 2.2h13.2a2.2 2.2 0 0 0 2.2-2.2v-4.6h-2.6v4.2H5.8v-4.2z"/></svg>Installation</a></li>
<li><a href="https://pyoomph.readthedocs.io/en/latest/"><svg class="menu-icon menu-icon-rtd" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M7.732 0a59.316 59.316 0 0 0-4.977.218V24a62.933 62.933 0 0 1 3.619-.687c.17-.028.34-.053.509-.078.215-.033.43-.066.644-.096l.205-.03zm1.18.003V22.96a61.042 61.042 0 0 1 12.333-.213V1.485A60.859 60.859 0 0 0 8.912.003zm1.707 1.81a.59.59 0 0 1 .015 0c3.06.088 6.125.404 9.167.95a.59.59 0 0 1 .476.686.59.59 0 0 1-.569.484.59.59 0 0 1-.116-.009 60.622 60.622 0 0 0-8.992-.931.59.59 0 0 1-.573-.607.59.59 0 0 1 .592-.572zm-4.212.028a.59.59 0 0 1 .578.565.59.59 0 0 1-.564.614 59.74 59.74 0 0 0-2.355.144.59.59 0 0 1-.04.002.59.59 0 0 1-.595-.542.59.59 0 0 1 .54-.635c.8-.065 1.6-.114 2.401-.148a.59.59 0 0 1 .035 0zm4.202 2.834a.59.59 0 0 1 .015 0 61.6 61.6 0 0 1 9.167.8.59.59 0 0 1 .488.677.59.59 0 0 1-.602.494.59.59 0 0 1-.076-.006 60.376 60.376 0 0 0-8.99-.786.59.59 0 0 1-.584-.596.59.59 0 0 1 .582-.583zm-4.211.097a.59.59 0 0 1 .587.555.59.59 0 0 1-.554.622c-.786.046-1.572.107-2.356.184a.59.59 0 0 1-.04.003.59.59 0 0 1-.603-.533.59.59 0 0 1 .53-.644c.8-.078 1.599-.14 2.4-.187a.59.59 0 0 1 .036 0zM10.6 7.535a.59.59 0 0 1 .015 0c3.06-.013 6.125.204 9.167.65a.59.59 0 0 1 .498.67.59.59 0 0 1-.593.504.59.59 0 0 1-.076-.006 60.142 60.142 0 0 0-8.992-.638.59.59 0 0 1-.592-.588.59.59 0 0 1 .573-.592zm1.153 2.846a61.093 61.093 0 0 1 8.02.515.59.59 0 0 1 .509.66.59.59 0 0 1-.586.514.59.59 0 0 1-.076-.005 59.982 59.982 0 0 0-8.99-.492.59.59 0 0 1-.603-.577.59.59 0 0 1 .578-.603c.382-.008.765-.012 1.148-.012zm1.139 2.832a60.92 60.92 0 0 1 6.871.394.59.59 0 0 1 .52.652.59.59 0 0 1-.577.523.59.59 0 0 1-.076-.004 59.936 59.936 0 0 0-8.991-.344.59.59 0 0 1-.61-.568.59.59 0 0 1 .567-.611c.765-.028 1.53-.042 2.296-.042z"/></svg>Documentation</a></li>
<li><a href="https://github.com/pyoomph/pyoomph"><svg class="menu-icon menu-icon-github" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>Source&nbsp;Code</a></li>
</ul>
</div>

18 changes: 18 additions & 0 deletions pubs_excluded.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Screened out of `pubs.bib`

Publications that **cite** the main pyoomph paper (Diddens & Rocha, J. Comput. Phys. **518**,
113306, 2024, `10.1016/j.jcp.2024.113306`) but do **not use** pyoomph, and therefore do not
belong on the About page.

They are recorded here so that they do not have to be screened again every time the citing
literature is checked. See the *Finding new publications for `pubs.bib`* section of `CLAUDE.md`
for the full workflow; append a row here whenever a candidate fails the screening.

This file is documentation only — no build step reads it.

| DOI | Reference | Screened |
|---|---|---|
| `10.1016/j.apm.2026.117152` | Napieralski, Huete, Coenen, Kurdyumov, Douglas & Sánchez-Sanz, *Modal, non-modal and sensitivity analysis of planar deflagrations with low molecular diffusivity and branching kinetics*, Appl. Math. Model. (2026) | 2026-08-04 |
| `10.1016/j.jcp.2025.114348` | Saini, Sanjay, Saade, Lohse & Popinet, *Implementation of integral surface tension formulations in a volume of fluid framework and their applications to Marangoni flows*, J. Comput. Phys. (2025) — also indexed as SSRN preprint `10.2139/ssrn.5132266` | 2026-08-04 |
| `10.1016/j.ijnonlinmec.2025.105066` | Li, Liu, Liu, Wu, Li, Ding & Feng, *Analysis and control of coexisting attractor transitions in a class of rigid vibro-impact systems*, Int. J. Non-Linear Mech. (2025) | 2026-08-04 |
| `10.1016/j.compstruc.2024.107615` | Nahed & de Lamare, *Dynamic characterization of cross-physics coupling strengths, a methodology to coupling and reordering partitioned solvers for multiphysics applications*, Comput. Struct. (2024) | 2026-08-04 |
Loading