Skip to content

Releases: prisms-center/CASMcode_mapping

v3.0a1

03 Mar 04:41

Choose a tag to compare

[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.

v2.4.1

26 Feb 03:22

Choose a tag to compare

[2.4.1] - 2026-02-25

Changed

  • Restrict libcasm-xtal dependency to major version 2 (>=2.3.0,<3.0.0)

v2.4.0

16 Dec 04:16

Choose a tag to compare

[2.4.0] - 2025-12-15

Changed

  • Build for Python 3.14
  • Stop building for Python 3.9
  • Restrict requires-python to ">=3.10,<3.15"

v2.3.0

07 Aug 19:08

Choose a tag to compare

[2.3.0] - 2025-08-07

Added

  • Added CASM::mapping::DispOnlyAtomToSiteCostFunction, which has the same definition of CASM::mapping::AtomToSiteCostFunction previous to this release.
  • Added libcasm.mapping.mapsearch.make_atom_to_site_cost_future. This method makes the cost infinity for displacements that are on the boundary of the Voronio cell. This addresses an issue where the choice of displacement vector for atoms on the parent superlattice voronoi cell boundary was ambiguous and in practice sensitive to small numerical differences, leading to inconsistent mapping results. With the change, atom mappings with displacements on the Voronoi cell boundary will not be selected, and larger supercells will be necessary to find atom mappings with those assignments.
  • Added an atom_to_site_cost_future_f argument for the MapSearch and AtomMappingSearchData constructors to allow use of make_atom_to_site_cost_future instead of make_atom_to_site_cost.

Changed

  • Changed CASM::mapping::AtomToSiteCostFunction to take the Lattice used to find displacements under periodic boundary conditions.

Deprecated

  • The make_atom_to_site_cost_future and make_atom_to_site_cost methods are marked deprecated because make_atom_to_site_cost_future is planned to replace make_atom_to_site_cost in libcasm-mapping 3.0.0.
  • The atom_to_site_cost_f and atom_to_site_cost_future_f arguments for the MapSearch and AtomMappingSearchData constructors are marked deprecated because atom_to_site_cost_future_f is planned to replace atom_to_site_cost_f in libcasm-mapping 3.0.0.

v2.2.0

14 Jul 13:10

Choose a tag to compare

[2.2.0] - 2025-08-14

Changed

  • Set pybind11~=3.0

v2.1.0

08 Jul 03:59

Choose a tag to compare

[2.1.0] - 2025-08-07

Changed

  • Build Linux wheels using manylinux_2_28 (previously manylinux2014)
  • Removed Cirrus CI testing

v2.0.1

03 Jun 16:19

Choose a tag to compare

[2.0.1] - 2025-06-03

Fixed

  • Fixed StructureMapping.from_dict, ScoredStructureMapping.from_dict, StructureMappingResults.from_dict so that prim and data argument names are no longer mixed up

v2.0.0

02 May 21:00

Choose a tag to compare

[2.0.0] - 2025-05-02

Fixed

  • Fixed a bug in make_mapped_structure which was always returning zero for atom properties

Changed

  • Build for Python 3.13
  • Restrict requires-python to ">=3.9,<3.14"
  • Run CI tests using Python 3.13
  • Build MacOS arm64 wheels using MacOS 15
  • Build Linux wheels using Ubuntu 24.04

v2.0a6

05 Sep 16:53

Choose a tag to compare

[v2.0a6] - 2024-09-05

Fixed

  • Fixed make_mapped_structure to properly handle atom properties (i.e. forces) with implied vacancies.

v2.0a5

19 Aug 04:26

Choose a tag to compare

[v2.0a5] - 2024-08-18

Added

  • Added isotropic_strain_cost and symmetry_breaking_strain_cost to libcasm.mapping.info.
  • Added map_lattices_without_reorientation to libcasm.mapping.methods.

Fixed

  • Fixed the displacement cost descriptions in libcasm.mapping.methods.map_atoms.