FESTIM meeting

March 2024

Agenda

NumFOCUS sponsorship

πŸ“ƒFESTIM review paper

βœ…V&V project

New example: isotope swapping

πŸ§‘β€πŸ’»General updates

πŸ—£οΈDiscussion

FESTIM accepted as a NumFOCUS affiliated project

What this means for us...

Small development grants πŸ’°

  • Code development
  • Documentation
  • Website updates
  • Workshops and sprints
  • Educational, sustainability, and diversity initiatives
  • Any work that directly benefits the project and/or its community
  • Travel for community members & developers to project events and conferences

Visibility and credibility πŸ“ˆ

A couple of ideas

Code review by FEniCS team

Funding for a FESTIM conference

Internships for small development tasks/prototyping

Logo design

Ideas from the community

πŸ“ƒFESTIM review paper published

Repository

https://doi.org/10.1016/j.ijhydene.2024.03.184

βœ…V&V book

  • A standard for decades
  • Still not fully reproducible
  • We thought we could do even better...
  • 100% automated (no hard coded images)
  • 100% transparent
  • 100% reproducible
  • Version control
  • Citable (DOI from DSpace@MIT)

βœ…V&V book

Isotope swapping example

References:

  • F. Sun et al 2024 Nucl. Fusion 64 046011
  • D Kogut et al 2016 Phys. Scr. 2016 014062

Isotope swapping

H+[   ]trap p⟡⟢k [H]trap\mathrm{H} + [\ \ \ ]_\mathrm{trap} \ \substack{p \\[-1em] \longleftarrow\\[-1em] \longrightarrow \\[-1em] k} \ [\mathrm{H}]_\mathrm{trap}
\mathrm{H} + [\ \ \ ]_\mathrm{trap} \ \substack{p \\[-1em] \longleftarrow\\[-1em] \longrightarrow \\[-1em] k} \ [\mathrm{H}]_\mathrm{trap}
D+[   ]trap p⟡⟢k [D]trap\mathrm{D} + [\ \ \ ]_\mathrm{trap} \ \substack{p \\[-1em] \longleftarrow\\[-1em] \longrightarrow \\[-1em] k} \ [\mathrm{D}]_\mathrm{trap}
\mathrm{D} + [\ \ \ ]_\mathrm{trap} \ \substack{p \\[-1em] \longleftarrow\\[-1em] \longrightarrow \\[-1em] k} \ [\mathrm{D}]_\mathrm{trap}
D+[H]trap kswap⟡⟢kswap [D]trap+H\mathrm{D} + [\mathrm{H}]_\mathrm{trap} \ \substack{k_\mathrm{swap} \\[-1em] \longleftarrow\\[-1em] \longrightarrow \\[-1.2em] k_\mathrm{swap}} \ [\mathrm{D}]_\mathrm{trap} + \mathrm{H}
\mathrm{D} + [\mathrm{H}]_\mathrm{trap} \ \substack{k_\mathrm{swap} \\[-1em] \longleftarrow\\[-1em] \longrightarrow \\[-1.2em] k_\mathrm{swap}} \ [\mathrm{D}]_\mathrm{trap} + \mathrm{H}

same underlying equations!

Can be represented by festim.Reaction

my_model.species = [
    mobile_H,
    mobile_D,
    trapped_H,
    trapped_D,
]

my_model.reactions = [
    F.Reaction(
        k_0=k_0,
        E_k=0.39,
        p_0=1e13,
        E_p=1.2,
        reactant1=mobile_H,
        reactant2=empty_trap,
        product=trapped_H,
        volume=my_subdomain,
    ),
    F.Reaction(
        k_0=k_0,
        E_k=0.39,
        p_0=1e13,
        E_p=1.2,
        reactant1=mobile_D,
        reactant2=empty_trap,
        product=trapped_D,
        volume=my_subdomain,
    ),
    F.Reaction(
        k_0=k_0,
        E_k=0.1,
        p_0=k_0,
        E_p=0.1,
        reactant1=mobile_H,
        reactant2=trapped_D,
        product=[mobile_D, trapped_H],
        volume=my_subdomain,
    ),
]

Usual trapping reactions

Swapping reaction

4 species are defined

βˆ‚cHβˆ‚t=βˆ‡β‹…(Dβˆ‡cH)βˆ’Ctrapping,Hβˆ’Cswapping\frac{\partial c_H}{\partial t} = \nabla \cdot (D \nabla c_H) - C_\mathrm{trapping, H} - C_\mathrm{swapping}
\frac{\partial c_H}{\partial t} = \nabla \cdot (D \nabla c_H) - C_\mathrm{trapping, H} - C_\mathrm{swapping}
βˆ‚cDβˆ‚t=βˆ‡β‹…(Dβˆ‡cD)βˆ’Ctrapping,D+Cswapping\frac{\partial c_D}{\partial t} = \nabla \cdot (D \nabla c_D) - C_\mathrm{trapping, D} + C_\mathrm{swapping}
\frac{\partial c_D}{\partial t} = \nabla \cdot (D \nabla c_D) - C_\mathrm{trapping, D} + C_\mathrm{swapping}
βˆ‚cH,tβˆ‚t=Ctrapping,H+Cswapping\frac{\partial c_{H, t}}{\partial t} = C_\mathrm{trapping, H} + C_\mathrm{swapping}
\frac{\partial c_{H, t}}{\partial t} = C_\mathrm{trapping, H} + C_\mathrm{swapping}
βˆ‚cD,tβˆ‚t=Ctrapping,Dβˆ’Cswapping\frac{\partial c_{D, t}}{\partial t} = C_\mathrm{trapping, D} - C_\mathrm{swapping}
\frac{\partial c_{D, t}}{\partial t} = C_\mathrm{trapping, D} - C_\mathrm{swapping}
Ctrapping,D=kcD(nβˆ’cD,t)βˆ’pcD,tC_\mathrm{trapping, D} = k c_D (n - c_{D, t}) - p c_{D, t}
C_\mathrm{trapping, D} = k c_D (n - c_{D, t}) - p c_{D, t}
Ctrapping,H=kcH(nβˆ’cH,t)βˆ’pcH,tC_\mathrm{trapping, H} = k c_H (n - c_{H, t}) - p c_{H, t}
C_\mathrm{trapping, H} = k c_H (n - c_{H, t}) - p c_{H, t}
Cswapping=kswappingcHcD,tβˆ’kswappingcH,tcD=kswapping(cHcD,tβˆ’cH,tcD)C_\mathrm{swapping} = k_\mathrm{swapping} c_H c_{D, t} - k_\mathrm{swapping} c_{H, t} c_D = k_\mathrm{swapping} (c_H c_{D, t} - c_{H, t} c_D )
C_\mathrm{swapping} = k_\mathrm{swapping} c_H c_{D, t} - k_\mathrm{swapping} c_{H, t} c_D = k_\mathrm{swapping} (c_H c_{D, t} - c_{H, t} c_D )

Governing equations

At t=0 t = 0 , traps saturated with H and D is introduced in the sample

cH=0c_H =0 on boundary

General updates

FESTIM meeting March

By Remi Delaporte-Mathurin

FESTIM meeting March

  • 327