Skip to content

Add a curve variant that isolates the PEM Faraday term - #165

Merged
erikfilias merged 1 commit into
mainfrom
feature/isolate-pem-faraday
Aug 1, 2026
Merged

Add a curve variant that isolates the PEM Faraday term#165
erikfilias merged 1 commit into
mainfrom
feature/isolate-pem-faraday

Conversation

@erikfilias

Copy link
Copy Markdown
Contributor

Additive. Nothing already run changes.

The problem

The baseline ulleberg PEM column was generated before the PEM half was rebuilt, and it carries no Faraday term at all. It assumes every electron makes hydrogen at every load.

That is not physical, and it is not what the paper says. Yodwong et al. 2020 measured the crossover directly on a PEM cell at three pressures, and analysis/electrolyser_curve.py now models it. Reproducing the baseline row requires deleting the Faraday term from the derivation entirely — confirmed to 2e-4.

What the baseline understates:

load baseline with crossover understated by
0.05 134.9 166.9 kWh/kg 24%
0.08 99.4 112.0 13%
0.14 78.5 83.9 7%
0.22 66.8 69.2 4%
1.00 60.5 60.5 0%

That is exactly the deep turn-down range PEM is valued for, and PEM is the technology under test — so the baseline flatters it where it matters most.

Figure 1(a) of the paper already draws the corrected curve. So the figure, the manuscript text and the model currently disagree, and the model is the one that is wrong.

Why a new variant rather than fixing the baseline

ulleberg_conservative already has the corrected PEM column, but it also swaps alkaline's Faraday parameters from Ulleberg to Sánchez. It moves both technologies at once, so it cannot say which one did the work.

ulleberg_pemfaraday is baseline alkaline plus corrected PEM. One change. It answers whether the baseline needs replacing, and at the cost of a single solve rather than a full campaign.

If the answer is that it matters, the baseline row gets replaced in a follow-up and the campaign runs again. If it does not, the completed campaign stands and the corrected curve is reported as a sensitivity.

Verification

Both columns of the new entry reproduce analysis/electrolyser_curve.py to better than 5e-4. The baseline, the two balance-of-plant variants and the conservative set are untouched.

The baseline 'ulleberg' PEM row was generated before the PEM half was rebuilt and
carries no Faraday term at all. It assumes every electron makes hydrogen at every
load, which is not physical, and Yodwong et al. 2020 measured the loss directly.
Against the current derivation the baseline understates PEM's specific
consumption by 24 per cent at 5 per cent load, 13 per cent at 8 and 7 per cent at
14 - exactly the deep turn-down range PEM is valued for.

Figure 1 in the paper already draws the corrected curve, so the figure, the text
and the model currently disagree, and the model is the one that is wrong.

This adds 'ulleberg_pemfaraday': baseline alkaline, PEM with its crossover term.
The existing 'ulleberg_conservative' moves both technologies at once and cannot
say which did the work, so it cannot answer whether the baseline needs replacing.
Nothing already run is affected, because the baseline row is untouched.

Verified: both columns of the new entry reproduce analysis/electrolyser_curve.py.
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@erikfilias
erikfilias merged commit 45ccdb5 into main Aug 1, 2026
13 of 14 checks passed
@erikfilias
erikfilias deleted the feature/isolate-pem-faraday branch August 1, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant