Repository navigation
Releases: dfieser/ultrafast-laser-ttm-py
Releases · dfieser/ultrafast-laser-ttm-py
Release list
0.4.0
Fixed
- The per-pulse inversion maximum of
depth_profile(invMaxPerPulse_K) no longer spikes to exactly 256 K or 512 K late in a train, and no longer climbs in 0.5 to 2 K steps. The peak refinement fitted its parabola in absolute time, as the MATLAB reference does, and lost the result to floating-point cancellation a millisecond into a run. The fit now runs in time relative to the middle sample (physics.refine_peak). The golden fixtures still pass. - The samples inside the first 100 ns of each inter-pulse coast were under-resolved whenever the coast Fourier number exceeded 0.5, by up to half at 1 MHz.
Ndiffis now a floor insurface_pointanddepth_profile, as it always was inradial_profile; the count used is returned asNdiffUsed. The end-of-period residual is unchanged to a few millikelvin and every fixture passes at its tolerance.scanning_beamkeeps the exact count. laserttm describeno longer fails on a cp1252 Windows console.
Added
nPulsesfires a chosen number of pulses;simDurationthen only ends the last coast and defaults tonPulses / f_rep. Runs shorter than one period are allowed.validate_configwarns whensimDurationis a fractional number of periods.- Depth snapshots are taken at exactly the requested
snapshotDelays, so dense lists stay distinct.profileSnapshotPulseschooses the pulses whose residual depth profile is kept, withprofileSnapshotTimes_salongside. The radial view addscrossSections_C, the radius-by-depth map after every snapshot pulse, andlateralDiffusionRatiowith a configurablelateralDiffusionWarnRatio. scanning_beamreturns Celsius twinsTpeak_map_C,Tsurf_C,peakT_history_C, the beam position per pulse inbeamX_m, and surface maps kept atmapSnapshotPulses.- Every array results key declares its axes (
dims), shown bydescribeand checked by the test suite for every gating combination. - Uniform envelope keys in every solver:
diagnostics(each warning with a code, level, message and suggestion),Tmelt_C,meltDetected,meltPulse,pulseEnergy_J,peakFluence_J_m2,absorbedFluence_J_m2,peakTl_C.surface_pointadds per-pulse peaks. - The tungsten preset carries a single-shot ablation threshold of 0.44 J/cm^2;
above_ablationis raised by runs and byvalidate_config, andablationThresholdoverrides it. - Run controls:
writeReport,reportHistory,verbose;showProgress: Falsealso silences the per-pulse console lines. validate_configreturnsderivedpulse-train quantities and keeps its estimate when an unrelated key is wrong; the estimate scales with the pulse width, includes the history table when written, and reports the first-call kernel warm-up. The CLI prints these numbers.
Changed
enableRadialProfiledefaults to False.- Golden inversion values, cross-solver agreement, and a steady-state regression grep are now tests.