12. Reference

12.1. Command-line interface

PhonoMC [input.toml]

With no argument, the executable searches for input.toml in the current directory and near the executable. Only sectioned TOML input is supported.

12.2. Boundary codes

T

Thermal reservoir. boundary_values is temperature in K. Particles that reach the facet are absorbed, and reservoir particles are injected using the one-to-one refill bookkeeping.

P

Periodic boundary. The value must be 0. The paired facet determines the translation applied to the particle position.

R

Rough boundary. The value is RMS roughness in nm. Reflection uses the precomputed mode-selection data and specularity model.

12.3. Output files

convergence.txt

Space-separated time history. Columns include timestep, time_ps, grid temperatures, heatflux, kappa_int, kappa_eff, absorbed, injected, recovered, and net.

summary.txt

Normalized input, geometry bounds, volume, facet counts, boundary counts, grid information, runtime, OpenMP settings, and optional profiling data.

grid_centers.csv

x_nm,y_nm,z_nm,volume_nm3 for every retained control-volume center.

rough_boundary_mode_map.csv

Written when rough-facet preprocessing data is available. Contains incoming and reflected mode mapping diagnostics.

12.4. Plotting commands

python3 tools/plot_convergence.py RESULT_DIRECTORY
python3 tools/plot_temperature_3d.py \
  --input INPUT.toml --results RESULT_DIRECTORY

12.5. Developer modules

  • src/SimulationConfig.cpp: strict TOML parsing and validation

  • src/SurfaceMesh.cpp: geometry topology and spatial queries

  • src/SimulationDomain.cpp: boundary and grid construction

  • src/PhononMaterial.cpp: POSCAR/HDF5 material loading

  • src/MonteCarloSolver.cpp: particle transport and observables

12.6. Tests

ctest --test-dir build --output-on-failure

The CTest targets cover configuration, domain/boundary behavior, the provided geometry examples, and strict material loading.