1. Introduction
PhonoMC models heat transport by propagating sampled phonon particles through a three-dimensional domain. Particle states are initialized from material mode data, advanced to surface collisions, scattered or transferred according to boundary rules, and relaxed using temperature-dependent phonon lifetimes.
The program is intended for research workflows where geometry, boundary scattering, and non-equilibrium phonon transport matter. It is not a generic continuum heat-equation solver.
1.1. Simulation pipeline
Each run follows this sequence:
Parse and validate a sectioned TOML input file.
Build a box or load an STL/OBJ surface mesh.
Assign and validate thermal, periodic, and rough boundaries.
Create the control-volume grid.
Load POSCAR and HDF5 phonon material data.
Initialize particles, modes, velocities, temperatures, and collision data.
Advance particles, inject sources, apply scattering, and update observables.
Write convergence, geometry, and runtime results.
1.2. Core components
SimulationConfigStrictly parses supported TOML keys and converts input values to typed C++ configuration objects.
SurfaceMeshStores vertices, faces, merged facets, adjacency, bounding-volume data, ray intersections, containment queries, and volume sampling support.
SimulationDomainBuilds geometry, assigns boundary properties, pairs periodic facets, and constructs the simulation grid.
PhononMaterialLoads lattice volume and phonon-mode properties, then builds the temperature-energy lookup tables used by the solver.
MonteCarloSolverOwns particle state, performs transport and scattering, injects reservoirs and local heat sources, and writes time-dependent observables.
1.3. Units
The external input and output conventions are:
geometry
sizes: nmSTL coordinates: nm
roughness values: nm
temperature: K
time step and output time: ps
heat-source power density: W/m³
heat flux: W/m²
thermal conductivity: W/(m K)
Internally, geometry is represented in angstroms.
1.4. Current scope
Geometry supports model = "box" or a path to an STL/OBJ mesh. The former
cylinder generator has been removed. Material loading is strict: both POSCAR
and the required HDF5 datasets must be valid before a production run starts.