Skip to content
dfieser edited this page Aug 21, 2026 · 2 revisions

Ultrafast Laser TTM Toolbox

MATLAB solvers for ultrafast pulsed-laser heating of metals, built on the two-temperature model (TTM). The toolbox spans single-pulse electron-lattice dynamics on femtosecond timescales, heat accumulation over thousands of pulses, and moving-beam scans.

It implements and generalizes the model published in:

Fieser, D., Dewanjee, U. N., and Hu, A. (2026). A Computationally Efficient Two-Stage Two-Temperature Model for Multi-pulse Femtosecond Laser Heat Accumulation in Tungsten. Journal of Materials Engineering and Performance. doi:10.1007/s11665-026-14738-6

Where to go

Page What it covers
Getting Started Requirements, first run, what output to expect, editing parameters
Solver Reference Every solver entry point with its config fields, defaults, units, and returned results
Model Background The TTM equations, the two-stage solution strategy, the surface temperature inversion, material presets
Batch Workflows Multi-case parameter sweeps with the runners in scripts/batch/
Results and Outputs The shared result contract, output files, and the outputs/ folder
FAQ Common questions and troubleshooting
Citing How to cite the paper and the software

Quick facts

  • Language: MATLAB, base install only. No additional toolboxes are required.
  • Solvers: 0D surface point, 1D depth-resolved, radial profile, single-pulse visualizer, inversion quantifier, scanning beam.
  • Speed: the baseline 50-pulse 0D accumulation run completes in well under a second; the two-stage strategy scales to thousands of pulses.
  • Materials: presets for tungsten, copper, gold, and aluminum, plus a custom mode for any metal.
  • License: MIT.
  • Software archive: Zenodo concept DOI 10.5281/zenodo.20389305.

Thirty-second tour

addpath(genpath('src'))

cfg = struct();
cfg.material    = 'W';            % tungsten preset
cfg.Pavg        = 10;             % average power [W]
cfg.spotRadius  = 100e-6;         % 1/e^2 spot radius [m]
cfg.f_rep       = 5e6;            % repetition rate [Hz]
cfg.tau_FWHM    = 500e-15;        % pulse width, FWHM [s]
cfg.simDuration = 50 / cfg.f_rep; % 50 pulses

results = Surface_Point_Solver(cfg);

This solves 50 pulses of coupled electron-lattice dynamics with inter-pulse thermal diffusion. The run prints a summary, writes a text report under outputs/, and returns the full surface temperature history in results. Continue with Getting Started.

Clone this wiki locally