Skip to content

v0.4.0

Choose a tag to compare

@dogusariturk dogusariturk released this 07 Jun 09:53
· 73 commits to main since this release

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

  • TemperatureVolume is 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 the MeltPoolResult from the auto-sizing step. The y-axis covers the half-domain by symmetry; both export_vti and plot_3d accept 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 by TemperatureField.
  • compute_temperature_volume() computes the full 3-D temperature volume for a single set of beam and material parameters. It first runs the standard compute_single_point() call (with full_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 via ProcessPoolExecutor; the workers and chunk_size arguments control the degree of parallelism and the per-task granularity.
  • compute_temperature_volumes() is a DataFrame-level entry point that applies compute_temperature_volume() to every row, dispatching rows in parallel when workers > 1. Each row's internal computation runs serially within its assigned worker to avoid nested process pools. Failed rows return None rather 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. When mirror_y=True the half-domain is reflected before export to produce the full melt pool geometry.
  • TemperatureVolume.plot_3d() and the public plot_temperature_field_3d() render the volume using PyVista. By default the liquidus isotherm is overlaid as a contour surface. Setting return_plotter=True returns the live pyvista Plotter for interactive inspection; the default path renders off-screen and returns a matplotlib Figure for 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