hummingbird
Solving the self-adjoint angular flux transport equation using spectral elements on Cartesian geometry
Loading...
Searching...
No Matches
output.h
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
2// Copyright (c) 2026, Liam Pohlmann
3
4#ifndef HUMMINGBIRD_OUTPUT_H_
5#define HUMMINGBIRD_OUTPUT_H_
6
7#include <fmt/core.h>
8#include <fmt/ostream.h>
9
10#include <string>
11
12#include "utils/enums.h"
13
14namespace hummingbird {
15
16/**
17 * @brief Print the program banner, description, and license information
18 *
19 */
20void print_header();
21
22/**
23 * @brief Print the paths of the input and mesh files being used
24 *
25 * @param input Path to the input file
26 * @param mesh Path to the mesh file
27 */
28void print_input_files(const std::string input, const std::string mesh);
29
30/**
31 * @brief Print the column headers for the k-eff/scatter iteration status
32 * table
33 *
34 */
35void print_columns();
36
37/**
38 * @brief Print the k-eff status for the current iteration
39 *
40 * @param k_eff Current k-eff value
41 * @param error Relative error in k-eff from the previous iteration
42 * @param iter Iteration number
43 */
44void print_k_status(const double k_eff, const double error,
45 const unsigned int iter);
46
47/**
48 * @brief Print the scalar flux convergence status for the current source
49 * iteration
50 *
51 * @param flux_l2_error L2 norm of the change in scalar flux from the
52 * previous iteration
53 * @param relative_error Relative L2 error in the scalar flux (flux_l2_error
54 * normalized by the current iteration's flux L2 norm)
55 * @param iter Iteration number
56 */
57void print_scatter_status(const double flux_l2_error,
58 const double relative_error, const unsigned int iter);
59
60/**
61 * @brief Print a message indicating source iterations have completed
62 *
63 * @param final_k_eff Final k-eff value
64 * @param sim_typ Run mode used for the simulation
65 */
66void print_scatter_complete(const double final_k_eff, const RunMode sim_typ);
67
68/**
69 * @brief Print information about the mesh
70 *
71 * @param n_nodes Number of nodes in mesh
72 * @param n_elements Number of elements in mesh
73 * @param dimension Mesh dimension
74 */
75void print_mesh_info(const size_t n_nodes, const size_t n_elements,
76 const unsigned int dimension);
77
78} // namespace hummingbird
79
80#endif // HUMMINGBIRD_OUTPUT_H_
RunMode
Run modes available.
Definition enums.h:90
void print_input_files(const std::string input, const std::string mesh)
Print the paths of the input and mesh files being used.
Definition output.cc:30
void print_scatter_status(const double flux_l2_error, const double relative_error, const unsigned int iter)
Print the scalar flux convergence status for the current source iteration.
Definition output.cc:43
void print_scatter_complete(const double final_k_eff, const RunMode sim_typ)
Print a message indicating source iterations have completed.
Definition output.cc:58
void print_k_status(const double k_eff, const double error, const unsigned int iter)
Print the k-eff status for the current iteration.
Definition output.cc:35
void print_header()
Print the program banner, description, and license information.
Definition output.cc:6
void print_mesh_info(const size_t n_nodes, const size_t n_elements, const unsigned int dimension)
Print information about the mesh.
Definition output.cc:66
void print_columns()
Print the column headers for the k-eff/scatter iteration status table.
Definition output.cc:23