v0.21.0¶
Release date: 2025-10-15
Early Access
The Luminary Cloud API and Python SDK are Early Access features that are still under development. View the Luminary Cloud Early Access Terms. The interface may change, and you may need to migrate or discard scripts and configuration files multiple times before v1.0.0 is released. In the future, migrations may also be necessary when upgrading to new major versions of the SDK (e.g. v2.0.0).
Release Notes¶
This release includes several new features and enhancements, along with one breaking change.
Breaking Changes¶
PeriodicPair
parameter structure simplified:PeriodicPair
no longer has the fieldperiodic_bc_type
. Instead,translation
,center
, androtation_vector
are now direct members ofPeriodicPair
.AdaptiveMeshRefinement
now usesall_tet=ALL_TET_ON
by default: There’s a newall_tet
mesh adaptation setting and it is turned on by default. This automatically inserts high aspect ratio mesh elements in the boundary layer and ignores all adaptation boundary layer settings. Users can turn this new behavior off explicitly if needed.
Features¶
The all-tet mesh adaptation setting is now avaliable as
AdaptiveMeshRefinement.all_tet
The following new quantities can now be used for surface average quantities:
ENTHALPY
,TOTAL_ENTHALPY
,ISENTROPIC_ENTHALPY
,ISENTROPIC_TOTAL_ENTHALPY
.The
translate()
,rotate()
,scale()
, andtransform()
methods onVolumeSelection
now include akeep: bool
parameter which can be set toTrue
to keep the original volume.New
VolumeSelection.mirror()
method has been added.New top-level functions have been added for dealing with Geometry Versions:
get_geometry_version()
andupdate_geometry_version()
.New method
Geometry.versions()
returns an iterator over versions of the Geometry.GeometryVersion.copy_to_new_geometry()
now has arequest_id
parameter which can be used for idempotent invocations.New function vis.range_query() allows you to get min/max values for various quantities in your simulation results.
Deprecations¶
None.
Bug Fixes / Improvements¶
Parameter wrapper cleanup: Removed periodic boundary condition type from parameter wrappers to align with UI behavior and simplify the parameter structure.
SimulationParam.assign_physics()
used to only allow a physics to be associated with a single volume, and would remove any existing volume association. It no longer does this disassociation, you can now associate any number of volumes with a physics.
Migration Guide¶
PeriodicPair Changes¶
If you have code that uses PeriodicPair
with the old periodic_bc_type
structure, you need to update it to use the new direct field access:
Before:
periodic_pair.periodic_bc_type = RotationalPeriodicity()
periodic_pair.periodic_bc_type.rotation_vector = Vector3(0, 0, 1)
periodic_pair.periodic_bc_type.center = Vector3(0, 0, 0)
After:
periodic_pair.rotation_vector = Vector3(0, 0, 1)
periodic_pair.center = Vector3(0, 0, 0)
All-tet Mesh Adaptation¶
If you use LMA (Luminary Mesh Adaptation) with manual boundary layer settings, the default behavior is now to run with all-tet enabled, which automatically inserts high aspect ratio mesh elements in the boundary layer and ignores all adaptation boundary layer settings. It can be explicitly turned off if you need to keep the old behavior by setting AdaptiveMeshRefinement.all_tet
to the value luminarycloud.params.enum.AllTet.ALL_TET_OFF
.