Skip to content
This repository was archived by the owner on Sep 4, 2026. It is now read-only.
 
 

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTGR-SCAPC — single-channel analysis coupled with a recuperated Brayton cycle

📦 This repository is archived

The code here now lives in c-finney/MicroHTGR, under ThermalHydraulics/, where it is coupled directly to the OpenMC neutronics model it was written to work with.

For the original, unmodified project, go to bryanhhuynh/HTGR-SCAPC.

This fork is kept read-only so existing links and citations keep resolving. It receives no further updates.


What this is

A fork of bryanhhuynh/HTGR-SCAPC, a steady-state single-channel thermal-hydraulics solver for a prismatic high-temperature gas-cooled reactor coolant channel, coupled to a direct recuperated Brayton cycle.

nc_htgr.py solves, node by node along the channel:

  • coolant enthalpy rise and pressure drop (Churchill friction factor, Gnielinski / laminar Nusselt blending),
  • the convective film temperature drop,
  • conduction through the graphite web to the fuel hole, including the radiative and conductive gap,
  • compact and peak TRISO kernel temperatures,

then closes the power cycle to report thermal efficiency and net electrical output. Helium properties come from CoolProp.

Credit

All original work in this repository is by Bryan Huynh.

It was written as the thermal-hydraulics and power-cycle contribution to CHUDR (Compact Helium-cooled Universal Defense Reactor), a 4 MWe / 10 MWth transportable prismatic HTGR designed by a six-person senior design team in the ENU 4192 course at the University of Florida — Cade Finney, Evan Alder, Bryan Huynh, Colin Frazier, William St. Peter and Daniel Fernandez — under the guidance of Dr. DuWayne Schubring.

This fork exists only to hold the small set of changes listed below, which were made while coupling the solver to the neutronics model. It is not an independent work.

What this fork changed

Three changes, relative to Bryan's original upload:

Change Where Why
Axial heating profile mirrored for downward flow _get_qprime in nc_htgr.py The solver iterates from the physical bottom of the core upward, but with flow_upward false the inlet is at the physical top. Without mirroring the z lookup, the power profile is applied backwards — the inlet node reads the outlet power and vice versa.
eps_recup 0.90 → 0.94 nc_input.csv Recuperator effectiveness selected for the CHUDR design point.
packing_fraction 0.30 → 0.33 nc_input.csv Match the TRISO packing fraction of the calibrated neutronics model.

Nothing else in the solver was modified.

A note on the cycle. The upstream repository is described as using an indirect Brayton cycle, and this fork's description says direct. That is a difference in repository metadata only — Bryan's original source already implements a direct recuperated cycle (# Direct recuperated Brayton cycle). No cycle conversion was performed here.

Running it

pip install numpy pandas CoolProp
python nc_htgr.py --deck nc_input.csv

All inputs are set in nc_input.csv: channel and core geometry, flow conditions, gap and conduction assumptions, and the Brayton cycle parameters.

With axial_shape,neutronics_table the axial power profile is read from the CSV named by the neutronics_file key. neutronics.csv is an example profile exported from the OpenMC model, with one row per axial node:

z_center_cm, hottest_channel_q_W, average_channel_q_W, std_channel_q_W, median_channel_q_W, coldest_channel_q_W

channel_case picks which column to solve — hot, average or cold. Set axial_shape,cosine instead to use an analytic profile with peaking_factor and qprime_max_W_m.

Results are written as htgr_out_*.csv in the working directory: per-node average and hot channel tables, the cycle state points, and a reactor summary.

⚠️ Known issue, fixed only in MicroHTGR. The deck in this archived fork sets neutronics_file,BOLCriticalHeating.csv, a file that is not in the repository, so a default run fails with FileNotFoundError. Change it to neutronics.csv, or use the MicroHTGR copy, where this is corrected and a relative neutronics_file also resolves against the deck's own directory.

Where it went

In MicroHTGR this solver is the thermal-hydraulics half of a converged neutronics ↔ TH coupling. OpenMC solves the eigenvalue problem, the axial heating profile is extracted from a mesh tally, nc_htgr returns coolant, compact and matrix temperatures, those are mapped back onto the OpenMC axial zones, and the loop repeats until both k_eff and the heating profile converge. In a criticality-search depletion run this happens at every depletion timestep.

Attribution for this code is recorded in MicroHTGR's NOTICE.md.

Licence

The upstream project carries no licence file, so the original code remains © Bryan Huynh, all rights reserved. It is included in MicroHTGR with his permission. Anyone wanting to reuse it should ask him.

About

Contains single-channel analysis script coupled with a direct Brayton cycle.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages