v0.4.0
eagar-tsai v0.4.0 Release Notes
Overview
This release adds full 3-D temperature volume computation and visualization. Where previous releases limited field output to two cross-sectional planes (xy and xz), v0.4.0 evaluates the complete volumetric temperature distribution and exposes it through a new data type, two new API functions, and an interactive PyVista renderer.
New Features
TemperatureVolumeis a new dataclass that holds the computed 3-D temperature array of shape (nx, ny, nz) alongside metre-scale coordinate arrays, the liquidus temperature, and theMeltPoolResultfrom the auto-sizing step. The y-axis covers the half-domain by symmetry; bothexport_vtiandplot_3daccept a mirror_y flag to reconstruct the full symmetric melt pool before rendering or export. Micrometre coordinate properties (x_range_um, y_range_um, z_range_um) mirror the convention established byTemperatureField.compute_temperature_volume()computes the full 3-D temperature volume for a single set of beam and material parameters. It first runs the standardcompute_single_point()call (withfull_field=False) to auto-size the domain, then evaluates the integrand at every (x, y, z) grid point on the converged domain. Computation is parallelised over contiguous x-index slices viaProcessPoolExecutor; theworkersandchunk_sizearguments control the degree of parallelism and the per-task granularity.compute_temperature_volumes()is a DataFrame-level entry point that appliescompute_temperature_volume()to every row, dispatching rows in parallel whenworkers > 1. Each row's internal computation runs serially within its assigned worker to avoid nested process pools. Failed rows returnNonerather than raising, keeping the output list index-aligned with the input DataFrame.TemperatureVolume.export_vti()writes the volume to a VTK ImageData (.vti) file readable by ParaView and other VTK-based tools. Whenmirror_y=Truethe half-domain is reflected before export to produce the full melt pool geometry.TemperatureVolume.plot_3d()and the publicplot_temperature_field_3d()render the volume using PyVista. By default the liquidus isotherm is overlaid as a contour surface. Settingreturn_plotter=Truereturns the live pyvistaPlotterfor interactive inspection; the default path renders off-screen and returns a matplotlibFigurefor embedding in notebooks or saving to disk. PyVista is declared as an optional dependency and is not required for the rest of the package.- Documentation was extended with a dedicated 3-D volume section covering the full usage workflow, a methodology note on the x-slice parallelism strategy, and a C extension performance benchmark figure.
Full Changelog: v0.3.1...v0.4.0