Skip to content

Correcting chemical formulae for FLiNaK and FLiNaBe - #50

Merged
shimwell merged 3 commits into
fusion-energy:mainfrom
tokasamwin:main
Aug 27, 2026
Merged

Correcting chemical formulae for FLiNaK and FLiNaBe#50
shimwell merged 3 commits into
fusion-energy:mainfrom
tokasamwin:main

Conversation

@tokasamwin

@tokasamwin tokasamwin commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

FLiNaK and FLiNaBe are currently treated as chemical formulae, rather than material names for classes of materials.

This commit replaces these with formulae of LiF(46.5%)-NaF(11.5%)-KF(42%) for FLiNaK and LiF(31%)-NaF(31%)-BeF2(38%) for FLiNaBe, with references to where these have been taken from.

Previous atomic fractions:

Material Li F Na Be K
FLiNaBe 25% 25% 25% 25% 0%
FLiNaK 25% 25% 25% 0% 25%

Current atomic fractions

Material Li F Na Be K
FLiNaBe 15.5% 56.33% 15.5% 12.67% 0%
FLiNaK 23.25% 50% 5.75% 0% 21%

#Edit: @shimwell is right, FLiNaK is 50% F and this was in the .json file - I wrote the wrong value to the PR table. Corrected now.

…material names for classes of materials, rather than reference to a specific mixture or eutectic.

This commit replaces these with eutectic formulae of LiF(46.5%)-NaF(11.5%)-KF(42%) for FLiNaK and LiF(31%)-NaF(31%)-BeF2(38%) for FLiNaBe
@shimwell

Copy link
Copy Markdown
Member

Thanks for this fix.

FLiNaK changes look great

Perhaps the table in the PR description should have 50% instead for F
Current atomic fractions

Material Li F Na Be K
FLiNaK 23.25% 50% 5.75% 0% 21%

"density": 2.05,
"density_unit":"g/cm3",
"comment": "Based on chemical formula",
"comment": "Based on chemical formula, source 10.13182/FST14-975",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are a few FLiNaBe in this paper, could we mention which one perhaps by having mol definition

@shimwell

Copy link
Copy Markdown
Member

Can we just double check the FLiNaBe

"chemical_equation": "Li465Na465Be380F1690"

Has the 46.5 been carried over from FLiNaK's LiF fraction?

Many thanks for the PR, really appreciate the corrections provided

@tokasamwin

Copy link
Copy Markdown
Contributor Author

Can we just double check the FLiNaBe

"chemical_equation": "Li465Na465Be380F1690"

Has the 46.5 been carried over from FLiNaK's LiF fraction?

Many thanks for the PR, really appreciate the corrections provided

So the simple fractions are Li 15.5%, Na 15.5%, Be 12.666666%, F 56.333333%. I multiplied these by 3 so that I can put values in without rounding errors. So 46.%, 46.5%, 38%, and 169%, totalling 300% which will get renormalised to the right fractions

Updated comment to specify the source and composition details.
@shimwell

Copy link
Copy Markdown
Member

Thanks for explaining, and sorry to keep pushing on this one.

I agree the scaling is harmless. OpenMC normalises the multipliers in add_elements_from_formula (it divides each by their sum) and it rejects non-integer multipliers outright, so multiplying up to get integers is exactly the right thing to do. My concern isn't the x3, it's the ratio of Li/Na to Be.

Working your atom fractions back to salt mole fractions:

Li 15.5, Na 15.5, Be 12.6667  ->  LiF 35.5% - NaF 35.5% - BeF2 29.0%

That isn't the LiF(31%)-NaF(31%)-BeF2(38%) quoted in the PR description. One quick way to see it: in a LiF-NaF-BeF2 mixture the fluorine atom fraction depends only on the BeF2 content, F = (1+z)/(2+z) where z is the BeF2 mole fraction. So F = 56.33 at.% implies z = 29 mol% BeF2, whereas 31-31-38 gives F = 57.98 at.%.

For 31-31-38 the fluorine count is 31 + 31 + 2*38 = 138, giving:

"chemical_equation": "Li310Na310Be380F1380"
Li Na Be F
current PR 15.5% 15.5% 12.67% 56.33%
LiF(31)-NaF(31)-BeF2(38) 13.03% 13.03% 15.97% 57.98%

Incidentally no scaling is needed at all here, since the salt mole fractions are already integers: Li31Na31Be38F138 gives the same result and is perhaps easier to check by eye against the reference. My guess is that 46.5 is FLiNaK's LiF fraction carried across, though I may be wrong about how it arose.

On the earlier question of which flinabe: I couldn't get past the paywall on FST 68(3) 669-673, so I can't confirm which composition that paper uses. For what it's worth, the commonly quoted ones are 31-31-38 and 33-33-33, and Grimes et al. 1958 used 35-27-38 (Serrano-López et al., arXiv:1307.7343: "The usually suggested composition for ternary FLiNaBe in recent papers is (0.31-0.31-0.38) or (0.33-0.33-0.33)"). None of them is 35.5-35.5-29, which is what makes me think something has slipped. Putting the mol definition in the comment would make it checkable at a glance.

The FLiNaK numbers do check out exactly, for the record. Table 12-1 on p. 571 of Chapter 12 of Fluid Fuel Reactors lists LiF-NaF-KF (46.5-11.5-42), m.p. 454 °C under a "Composition, mole %" heading, and Fig. 12-1 on p. 570 is the ternary diagram with the 454 °C eutectic (free scan: https://moltensalt.org/references/static/downloads/pdf/FFR_chap12.pdf, p. 571 is PDF page 3). Also, on the description table: in any LiF-NaF-KF mixture the fluorine is exactly 50 at.% because all three cations are monovalent, so 50% holds whatever the ratios are.

One last low priority thought. The library tests do build every material (test_dictionary_of_materials_makes_openmc_materials), so a formula that parses will pass CI even if the numbers are off. A small check on the resulting element fractions for these two entries would catch this class of slip, though that's happily a separate PR.

Thanks again for digging out the references, the FLiNaK correction alone is well worth having.

Comment thread src/neutronics_material_maker/data/multiplier_and_breeder_materials.json Outdated
…rials.json

Co-authored-by: Jonathan Shimwell <drshimwell@gmail.com>
@shimwell
shimwell merged commit 1b78b6d into fusion-energy:main Aug 27, 2026
1 check passed
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.

2 participants