Progress on Coupled Physics Modeling in Fluoride Salt Cooled High Temperature Reactors


Kathryn Huff

at Oak Ridge National Laboratory

March 03, 2016

Physics, University of Chicago Nuclear Engineering and Engineering Physics, University of Wisconsin - Madison Nuclear Engineering, University of California, Berkeley
Software Carpentry THW book pyne cyclus pyrk fhr

Outline

  • PB-FHR Design Overview
  • TMSR-SF Design Overview
  • Neutronics Benchmark Development
  • 0D Transient Multiphyiscs Analysis
  • 3D Transient Mutliphysics Progress
  • Future work
image generated by Tommy Cisneros and the UCBerkeley FHR group
image generated by the UCBerkeley FHR group

PB-FHR Fuel Geometry

FHR Pebbles diagram, UCB
                                                  FHR project. This image from
                                                  http://fhr.nuc.berkeley.edu/pb-fhr-technology/fuel-development/

PB-FHR Mk1 Design

  • MIT, UCB, UW FHR-IRP collaboration
  • Reactor power: 236MWth
  • Coolant Inlet: 600C
  • FLiBe coolant
  • Annular core
  • Annular pebbles with TRISO particles
  • Randomly packed bed
  • Multi-pass fuel circulation
  • High Temperatures
  • Strong fuel temperature feedback

TMSR-SF

From TMSR presentation FHR_W5_1_05_Yu Yu, 2016. TMSR-SF design, Chinese TMSR-SF and TMSR-LF Development, TMSR Research center, SINAP, CAS

TMSR-SF Fuel Geometry

Wang, 2016

TMSR-SF

  • SINAP, CAS, ORNL collaboration
  • Reactor power: 10MWth
  • Coolant Inlet: 600C
  • Coolant Outlet: 628C
  • Fuel Element: 6cm Spherical elements, TRISO matrix

Neutronics Benchmark Development at UC Berkeley

Leads: Per Peterson, Max Fratoni, Manuele Aufiero, Lance Maul, Xin Wang, Dan Chen, Katy Huff, April Novak, et al.

Workshop in April at Berkeley

Neutronics Benchmark Development at UC Berkeley

  • Two Reactor Types: PB-FHR and TMSR-SF
  • Phase 1: Unit Cell
  • Phase 2: Simplified Core
  • Phase 3: Design Level Modeling
Dan Chen, Max Fratoni:Developing Benchmarks
Lance Maul: Comparing MCNP, SERPENT, KENO results.
Manuele Aufiero: SERPENT analysis (with Open Foam TH).
Xin Wang: COMSOL model development.
Huff and Novak: MOOSE application development.
Huff and Novak: Benchmark geometry generation.

Phase 1

cube benchmark, April Novak

Phase 2

cylinder benchmark, April Novak

Phase 2

cylinder benchmark, April Novak

Phase 2

pebbles, Novak

Phase 3

tmsr full, Yu fhr full, Berkeley

FHR Coupled, Transient Analysis

  • Collect experimental data
  • Conduct algebraic, static, and benchmark simulations
  • Develop few group parameters, steady state results
  • Develop 0D coupled neutronics/TH model (PyRK)
  • Develop 3D neutronics/TH model
  • Compare 0D and 3D simulations
  • Couple additional physics (e.g. fuel performance)
pyrk
PyRK: Python for Reactor Kinetics

Review of Nuclear Reactor Kinetics

Fission.

\[\sigma(E,\vec{r},\hat{\Omega},T,x,i)\]

Chain reaction

\[k=1\]

Feedback
Delayed Neutrons

\[\beta_i, \lambda_{d,i}\]

PyRK

  • 6-precursor-group,
  • Point and Multi-Point Reactor Kinetics model
  • Lumped Parameter thermal hydraulics model
  • With finite volume pebble conduction model
  • Object-oriented, geometry and material agnostic framework

Point Reactor Kinetics

\[ \begin{align} p &= \mbox{ reactor power }\\ \rho(t,&T_{fuel},T_{cool},T_{mod}, T_{refl}) = \mbox{ reactivity}\\ \beta &= \mbox{ fraction of neutrons that are delayed}\\ \beta_j &= \mbox{ fraction of delayed neutrons from precursor group j}\\ \zeta_j &= \mbox{ concentration of precursors of group j}\\ \lambda_{d,j} &= \mbox{ decay constant of precursor group j}\\ \Lambda &= \mbox{ mean generation time }\\ \omega_k &= \mbox{ decay heat from FP group k}\\ \kappa_k &= \mbox{ heat per fission for decay FP group k}\\ \lambda_{FP,k} &= \mbox{ decay constant for decay FP group k}\\ T_i &= \mbox{ temperature of component i} \end{align} \]
\[ \frac{d}{dt}\left[ \begin{array}{c} p\\ \zeta_1\\ .\\ \zeta_j\\ .\\ \zeta_J\\ \omega_1\\ .\\ \omega_k\\ .\\ \omega_K\\ T_{i}\\ .\\ T_{I}\\ \end{array} \right] = \left[ \begin{array}{ c } \frac{\rho(t,T_{i},\cdots)-\beta}{\Lambda}p + \displaystyle\sum^{j=J}_{j=1}\lambda_{d,j}\zeta_j\\ \frac{\beta_1}{\Lambda} p - \lambda_{d,1}\zeta_1\\ .\\ \frac{\beta_j}{\Lambda}p-\lambda_{d,j}\zeta_j\\ .\\ \frac{\beta_J}{\Lambda}p-\lambda_{d,J}\zeta_J\\ \kappa_1p - \lambda_{FP,1}\omega_1\\ .\\ \kappa_kp - \lambda_{FP,k}\omega_k\\ .\\ \kappa_{k p} - \lambda_{FP,k}\omega_{k}\\ f_{i}(p, C_{p,i}, T_{i}, \cdots)\\ .\\ f_{I}(p, C_{p,I}, T_{I}, \cdots)\\ \end{array} \right] \]

Lumped Parameter Heat Transfer

The heat flow out of body $i$ is the sum of surface heat flow by conduction, convection, radiation, and other mechanisms to each adjacent body, $j$: \[ \begin{align} Q &= Q_i + \sum_j Q_{ij}\\ &=Q_i + \sum_j\frac{T_{i} - T_{j}}{R_{th,ij}}\\ \dot{Q} &= \mbox{total heat flow out of body i }[J\cdot s^{-1}]\\ Q_i &= \mbox{other heat transfer, a constant }[J\cdot s^{-1}]\\ T_i &= \mbox{temperature of body i }[K]\\ T_j &= \mbox{temperature of body j }[K]\\ j &= \mbox{adjacent bodies }[-]\\ R_{th} &= \mbox{thermal resistence of the component }[K \cdot s \cdot J^{-1}]. \end{align} \]

Quality Control

Unit Checking

Pint
In PyRK, the Pint package (pint.readthedocs.org/en/0.6/) is used keeping track of units, converting between them, and throwing errors when unit conversions are not sane.

Version Control

Docs
Keeping track of versions of the code makes it possible to experiment without fear and placing the code online encourages use and collaboration.

Automated Documentation

Docs
Automated documentation creates a browsable website explaining the most recent version of the code.

Test Suite

Docs
The classes and functions that make up the code are tested individually for robustness using nose.

Continuous Integration

Docs
The tests are run every time a change is made to the repository online. The results are public. If a main branch has a failed test, I get an email.

PB-FHR Reactivity Insertion


Pebble-Bed, Fluoride Salt Cooled, High-Temperature Reactor
  • Molten FLiBe Coolant
  • Annular Core
  • Annular Pebble Fuel
  • Steady Inlet Temperature
  • Ramp Reactivity Insertion, 600pcm over 10s

Components



fuel = th.THComponent(name="fuel",
                      mat=TRISO(),
                      vol=vol_fuel,
                      T0=t_fuel,
                      alpha_temp=alpha_fuel,
                      timer=ti,
                      heatgen=True,
                      power_tot=power_tot/n_pebbles,
                      sph=True,
                      ri=r_mod,
                      ro=r_fuel
                      )

mod = th.THComponent(name="mod",
                     mat=Graphite(),
                     vol=vol_mod,
                     T0=t_mod,
                     alpha_temp=alpha_mod,
                     timer=ti,
                     sph=True,
                     ri=0.0,
                     ro=r_mod)

cool = th.THComponent(name="cool",
                      mat=Flibe(),
                      vol=vol_cool,
                      T0=t_cool,
                      alpha_temp=alpha_cool,
                      timer=ti)

shell = th.THComponent(name="shell",
                       mat=Graphite(),
                       vol=vol_shell,
                       T0=t_shell,
                       alpha_temp=alpha_shell,
                       timer=ti,
                       sph=True,
                       ri=r_fuel,
                       ro=r_shell)
                                                

Heat Transfer


# The coolant convects to the pebbles
cool.add_convection('pebble', h=h_cool, area=a_pb)
cool.add_advection('cool', m_flow/n_pebbles, t_inlet, cp=cool.cp)
                                                

Ramp Reactivity Insertion

reactivity insertion

Ramp Reactivity Insertion


# External Reactivity
from reactivity_insertion import RampReactivityInsertion
rho_ext = RampReactivityInsertion(timer=ti,
                                  t_start=t_feedback + 10.0*units.seconds,
                                  t_end=t_feedback + 20.0*units.seconds,
                                  rho_init=0.0*units.delta_k,
                                  rho_rise=600.0*units.pcm,
                                  rho_final=600.0*units.pcm)
                                                

Fuel Layer Temperature

power Fuel Temperatures

Coolant Temperature

Fuel Temperatures Coolant Temperatures

Ramp Duration Variation

Reactivity pulses Power pulses

Ramp Duration Variation

Reactivity pulses Power pulses
Umeda \[66J/gUO2 << 1400J/gUO2 \]

MOOSE-Based Application Development

moose

MOOSE Framework

  • Finite Element Framework
  • Jacobian-Free Newton Krylov
  • Adaptively meshed geometry handling
  • Scalability

PRONGHORN Capabilities

  • Diffusion Neutronics
  • Conjugate Heat Transfer
  • Pebble Bed Darcy Flow (gaseous)

PRONGHORN PBMR-400 Benchmark

pbmr benchmark

Single-Phase, Incompressible, Thermally-Expandable Flow

Continuity

\[ \begin{align} \frac{\partial \epsilon \rho_f}{\partial t} + \nabla(\epsilon \rho_f \vec{u}) &= 0\\ \end{align} \]

Momentum

\[ \begin{align} \frac{\partial \epsilon \rho_f}{\partial t} + \nabla(\epsilon \rho_f \vec{u}\times\vec{u}) + \nabla \epsilon P - \epsilon \rho_f \vec{g} + W\rho_f\vec{u} =0\\ \end{align} \]

Energy

\[ \begin{align} \frac{\partial\epsilon\rho_fH}{\partial t} + \nabla(\epsilon\rho_f\vec{u}H) &= q''' \end{align} \]
This form of the energy equation can be simplified with the introduction of the specific heat capacity, $C_p = \frac{\partial H}{\partial T}$. This nonconservative assumption results in a form of the energy equation appropriate for incompressible or nearly incompressible flows. \[ \begin{align} \rho C_p\frac{\partial T}{\partial t} + \rho C_p \vec{u} \nabla T &= q''' \end{align} \]
These equations are closed by the equation of state. This can be either of the form $P=P(\rho, \rho\vec{u}, \rho\vec{E})$ or $\rho=\rho(P, T)$. To ensure incompressible, thermally expandable flow, as in Hu, we use a relation between density and temperature of the form: \[ \begin{align} \frac{\partial \rho}{\partial t} &= \xi \frac{\partial T}{\partial t}\\ \nabla \rho &= \xi \nabla T \end{align} \]

Single-Phase, Incompressible, Thermally-Expandable Flow


Stabilization (SUPG/PSPG)


\[ \left\langle f_{continuity},\psi\right\rangle+\left\langle f_{mom,non},\tau_{pspg}\times\nabla\psi\right\rangle\\ \left\langle f_{mom},\psi\right\rangle+\left\langle f_{mom,non},\tau_{supg}\times\nabla\psi\right\rangle\\ \left\langle f_{energy},\psi\right\rangle+\left\langle f_{energy,non},\tau_{supg}\times\nabla\psi\right\rangle \]

Single-Phase, Incompressible, Thermally-Expandable Flow

Implementation testing underway.

Future work

  • 3D Steady State Neutronics, Fixed Cross Sections
  • 3D Steady State Thermal Hydraulics, Fixed Power, Compare to COMSOL
  • Coupled 3D Steady State N&TH
  • Transients - LOFC, LOHS, LOLA, RIA
  • Startup Modeling
  • Randomly Packed Bed Hot Spot Analyses
  • Xenon Stability

Links

Acknowledgements

  • Massimiliano Fratoni
  • Per Peterson
  • Manuele Aufiero
  • Xin Wang
  • Lance Maul
  • Dan Chen
  • April Novak
  • Jasmina Vujic
  • and many more...

BIDS Logo FHR Logo

THE END

Katy Huff

katyhuff.github.io/2016-03-03-ornl
Creative Commons License
Progress on Coupled Physics Modeling in Fluoride Salt Cooled High Temperature Reactors by Kathryn Huff is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at http://katyhuff.github.io/2016-03-03-ornl.