Proxy-Apps for Thermal Hydraulics

This page hosts proxy/mini-apps for the thermal hydraulics (TH) component of CESAR.

Overview :
The Thermal Hydraulic proxy apps are based on the open source spectral element code, the Nek5000, which is designed for large eddy simulation (LES) and direct numerical simulation (DNS) of turbulence in complex domains.  Many important thermal transport questions are accessible only through detailed simulations that span the full range of scales set by the geometry and the high Reynolds numbers encountered within the reactor.  Such simulations will require extreme-scale computing resources and highly accurate numerical discretizations to capture the scale interactions that govern the TH behavior of the reactor. The spectral element method provides an efficient means of reducing numerical dispersion and dissipation errors while retaining the geometric flexibility needed to represent the complex coolant passageways.

What is Nek5000? :
Nek5000 is an MPI-based code written in Fortran 77 and C.  Nek5000 employs efficient multilevel iterative solvers and has scaled to over a million processes (recent strong-scaling studies on the ALCF Mira machine have demonstrated 60% parallel efficiency with only 2000 points per process). Nek5000 has a broad range of applications including vascular flow, ocean modeling, combustion, heat transfer enhancement, stability analysis and MHD. More information, including publications, and documentation on how to download and run Nek5000 can be found on the Nek5000 website:

What are the Thermal Hydraulics mini-apps? :
Within the TH branch of CESAR, we are currently exploring two mini-apps.

  1. NEKBONE KERNEL : The Nekbone Kernel is a single-core code focused on the matrix-vector product at the heart of the spectral element method.  The code allows for analysis and optimization of the performance of the matrix-vector product kernel, which is recast as a set of computationally intense matrix-matrix products with relatively low operation count and minimal data movement.
  2. NEKBONE : The Nekbone mini-app allows users to study the computationally intense linear solvers that account for a large percentage of the more intricate Nek5000 software, as well as the communication costs required for nearest-neighbor data exchanges and vector reductions. Nekbone embeds the nekbone_kernel in a conjugate gradient iteration to solve the 3D Poisson equation. Preconditioning in the current version is based on diagonal scaling, which allows for simpler code than the full multigrid structure found in Nek5000. Nekbone has been created to be easily adapted and manipulated to different platforms, communication structures, and scalability studies.

The Nekbone_kernel-2.0 mini-app was  released in April 2013 and the Nekbone-3.1 mini-app was released in Oct 2013. Both are currently available for download on this page. Instructions on the working on these mini-apps as well as directions on how to configure, install and test these mini-apps can be found in the downloaded tarball.

Past Releases 
Nekbone-1.0 was released in late 2012, followed by Nekbone-2.0 in April 2013 and Nekbone 2.1 in May 2013. Nekbone 3.0 released in Aug 2013. The Nekbone_kernel-1.0 mini app released in late 2012.

Contact Information
For more information and bug reporting, contact Paul Fischer or Katherine Heisey