Skip to content

v3.0a1

Latest

Choose a tag to compare

@bpuchala bpuchala released this 03 Mar 04:41

[3.0a1] - 2026-03-02

Added

  • Added libcasm.mapping.mapsearch.MappingNode.symmetry_preserving_displacement() method to calculate and return the symmetry-preserving component of the atom mapping displacements as a shape=(3, N_supercell_site) array
  • Added libcasm.mapping.mapsearch.MappingNode.symmetry_breaking_displacement() method to calculate and return the symmetry-breaking component of the atom mapping displacements as a shape=(3, N_supercell_site) array
  • Added libcasm.mapping.mapsearch.PrimSearchData.make_symmetry_preserving_displacement(displacement, unitcellcoord_index_converter) method to decompose an arbitrary displacement into its symmetry-preserving component
  • Added libcasm.mapping.mapsearch.PrimSearchData.make_symmetry_breaking_displacement(displacement, unitcellcoord_index_converter) method to decompose an arbitrary displacement into its symmetry-breaking component
  • Added libcasm.mapping.mapsearch.MappingSearch.last_partition() method that returns a tuple (subnodes, inserted) containing the list of sub-nodes generated by the last call to partition() and a list of booleans indicating whether each was inserted into the queue
  • Added unit tests for libcasm.mapping.mapsearch.MappingNode in python/tests/test_MappingNode.py
  • Added libcasm.mapping.methods.direct_structure_mapping to map structures directly without lattice orientation or atom permutation.

Changed

  • Breaking change: Removed atom_to_site_cost_future_f arguments. Custom atom_to_site_cost_f functions passed to libcasm.mapping.mapsearch.MappingSearch or libcasm.mapping.mapsearch.AtomMappingSearchData constructors must now accept libcasm.mapping.mapsearch.LatticeMappingSearchData as the first parameter instead of libcasm.xtal.Lattice. This provides access to the full lattice mapping context including the deformation gradient. The built-in cost function libcasm.mapping.mapsearch.make_atom_to_site_cost has been updated accordingly.
  • Renamed libcasm.mapping.mapsearch.make_atom_to_site_cost_future to replace libcasm.mapping.mapsearch.make_atom_to_site_cost
  • Changed libcasm.mapping.mapsearch.make_atom_to_site_cost so that the displacement cost is calculated using the mean of the parent-to-child and child-to-parent costs, rather than just the parent-to-child cost. This makes the cost function symmetric with respect to swapping the parent and child structures.
  • Thread safety updates in casm/mapping/impl/ to StrainCostCalculator, LatticeMap, MappingNode, and StrucMapper.

Removed

  • Removed deprecatd mapping_impl::LatticeNode constructors. Use standalone methods to calculate LatticeNode members instead.