Please download the Axom-v0.13.0.tar.gz tarball below, which includes all of the
submodules needed to build Axom. The AxomData-v0.13.0.tar.gz tarball contains
extra files to put in the data directory only if you want to run certain
Axom tests.
Added
- Adds the
AXOM_ENABLE_TUTORIALSconfiguration variable (ONby default) - Adds a tutorial on shaping in Axom and associated infrastructure in
quest,klee,inletandsidre. - Sina: User can control curve ordering in Sina output file
setDefaultCurveOrder() - Sina:
appendDocument()will create the document if not present or append if document exists.
It can also auto detects the protocol based on file's name, removing the need to call
the append function that matches your protocol. - Adds Sina fortran functions
sina_set_curves_orderandsina_set_record_curves_order - Sidre: Added iterators and Attribute class to the Python interface.
- Adds new optimization hint macros
AXOM_LIKELYandAXOM_UNLIKELYto mark likely/unlikely
paths in if-statements. - The
axom::bump::extraction::CutFieldclass was added to cut Blueprint geometry using a
field (isosurface). The output contains polygons for 3D inputs and lines for 2D inputs.
resulting in geometry with reduced topological dimension. - The
axom::bump::extraction::PlaneSliceclass was added to cut Blueprint geometry using a
plane given using "origin" and "normal" values in the algorithm's options. The planar slice
results in polygons for 3D inputs and lines for 2D inputs. - Adds a reader for STEP files to
quest/io. The geometry can either be returned
as an array ofNURBSPatchwith trimming curves or it can be triangulated into triangle mesh. - Adds a
componentsvariant to Axom's spack package. Users can now provide an explicit list
of desired components, e.g.components=sidreand Spack adds any missing dependencies,
e.g. thesliccomponent and theconduitdependency. By default (whencomponentsis not provided,
or whencomponents="all"), all components are enabled. All components can be disabled viacomponents=none. - Adds a
conduitspack variant. Conduit was previously a required dependency in our spack package, and is now enabled by default. - Adds spack variants for
adiakandcaliper. These replace the previousprofilingvariant which enabled both at the same time. - Adds the
AXOM_TEST_NUM_OMP_THREADSconfiguration variable to control the default OpenMP thread count for tests. - Slic: Adds
slic::getAbortFunction()to return a function pointer to the abort handler called during logging functions - Quest: Adds a 3D winding number example and improves WN performance in 2D and 3D
- Sidre: Added
AXOM_SIDRE_IO_USE_SCALAR_STATE_STRING(defaultON) to optionally serialize scalar views
with state"SCALAR"instead of"TUPLE"for compatibility with downstream readers (e.g. VisIt)
that don't yet support"TUPLE". We expect to remove this in the future as readers adopt the"TUPLE"type.
Changed
- Version of
quest::discretizethat approximates a surface-of-revolution from a polyline
now respects the allocator ID of the outputArray. It no longer resets the ID to the
execution space default. - Updates to RAJA version 2025.12.1
- Updates to camp version 2025.12.0
- Updates to Umpire version 2025.12.0
- Updates to Caliper version 2.14.0
- Evaluation methods for line integrals in
axom::primalhave been generalized, and
evaluate_scalar_line_integralhas been renamed toevaluate_line_integral. - Treatment of materials on strided-structured Blueprint meshes has changed in
axom::mir.
Materials are now expected to be defined only on the valid subset of zones in the mesh.
This more closely matches VisIt behavior. - Views and functions for creating views in
axom::bumphave been enhanced to better validate
Blueprint meshes to guard against malformed input. Likewise, runtime input checks have been
promoted to useSLIC_ERROR_IFinstead ofSLIC_ASSERTso the checks will remain in
optimized Axom builds. - The maximum number of vertices allowed in polygon primitives can now be passed as a template
argument toaxom::bump::TopologyMapper,axom::bump::PrimalAdaptor, and
axom::mir::ElviraAlgorithm. - Material views in
axom::bump::viewswere enhanced withconst_iteratorclasses that
enable traversal of material data for zones so kernels do not need to use large fixed size
buffers to gather that data inside kernels. - Material views in
axom::bump::viewswere enhanced with an overloadedzoneMaterials()
method that allows data to be gathered intoaxom::ArrayViewobjects. - A new
heavily_mixedexample program was added inaxom::mirto demonstrate running MIR on
meshes with heavily mixed zones. saveDocument()now has aAUTODETECTprotocol for the file type- Sina fortran can now handle multiple records rather than a single record per application
- Most Sina Fortran call can now pass the record for which the call is desired (
sina_add,sina_add_file,sina_add_curveset,sina_add_curve) - Sina fortran
create_document_and_recordis nowsina_create_record - Sina fortran
sina_write_documentnow accepts a third argument that preserves records in memory so they can be written to another file (otherwise they're released from memory as soon as they're written) - Primal: In Bezier and NURBS classes, accessors for arrays of control points, weights and knots
are now returned by (const) reference instead of returning a copy by value. - The
axom::bump::clipping::ClipFieldandaxom::mir::EquiZAlgorithmclasses were enhanced so they can clip polygons up to 8 sides. - De-virtualized
axom::Arraymethods to improve performance. This change may break code which
utilizesaxom::Arrayorsidre::Array/MCArrayin a polymorphic manner, for example by overriding
Array::updateNumElements()orArray::dynamicRealloc().
Refer to the newStoragePolicyinterface for substitute functionality. - The
axom::bump::clippingnamespace was renamed toaxom::bump::extractionsince it now
contains additional algorithms. - Updates to mfem version 4.9.
Also updates mfem's hypre dependency to hypre version 2.27. - Quest:
MFEMReadercan now read in multispan 1D NURBS meshes - fmt: Axom's built-in version of the fmt formatting library was updated to fmt version 12.1.0.
- Primal: Improves robustness of
linear_winding_numberby usingatan2instead ofacos - Core: Allows users to set the minimum size for Axom's shared memory allocator in
getSharedMemoryAllocatorID() - Core: Allows users to set the name of the shared memory allocation in
allocate() - Quest: Adds a function to the signed distance API to set the shared memory size:
signed_distance_set_shared_memory_size() - Sidre: Shroud-generated C/Fortran interfaces for
Group::createViewScalar()andGroup::createViewString()
now include overloads that accept an allocator ID.
Fixed
- Sina's Fortran tests are now running (instead of silently failing)
- Optimized
Array::push_back()andArray::emplace_back()operations. - Quest: In Shaping applications, we now check return code after attempting to load a mesh
and throw an error for unsuccessful loads. - Core: Bugfix for batched insertion into a FlatMap with deleted entries
- Quest: Sets the allocation name for shared memory in the signed distance query
Removed
- Removes the
AXOM_ENABLE_MFEM_SIDRE_DATACOLLECTIONCMake config variable.
It is no longer needed -- we now always use MFEMSidreDataCollection in configurations withmfemandsidre.