Skip to content

Releases: prisms-center/CASMcode_crystallography

v3.0a1

03 Mar 01:36

Choose a tag to compare

[3.0a1] - 2026-03-02

Changed

  • Changed C++ data structures to avoid mutable private cache members to enable multithreaded use of CASM crystallography methods. In particular, this required changes in LinearIndexConverter, Site, DoFSet, OccupantDoFIsEquivalent, LatticeIsEquivalent, Lattice, SuperlatticeIterator, SuperlatticeEnumerator, StrainCostCalculator, LatticeMap, MappingNode, StrucMapper, and AnisoValTraits.

Removed

  • Removed COORD_MODE/PERIODICITY_MODE, which cannot be used in a multithreaded context.
  • Removed depreacted to_json and from_json methods of libcasm.xtal.Prim, libcasm.xtal.SymInfo, libcasm.xtal.Structure. Use to_dict and from_dict instead.
  • Removed deprecated xtal::make_factor_group(const BasicStructure &struc, double tol). Use xtal::make_factor_group(const BasicStructure &struc) which uses the Lattice's tol instead.
  • Removed deprecated xtal::make_equivalent_superduperlattice. Use xtal::make_minimal_commensurate_superduperlattice instead.

v2.3.0

16 Dec 04:00

Choose a tag to compare

[2.3.0] - 2025-12-15

Fixed

  • Fixed a bug in xtal.make_primitive_structure that resulted in the wrong atom coordinates.

Changed

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

v2.2.0

14 Jul 12:19

Choose a tag to compare

[2.2.0] - 2025-08-14

Changed

  • Removed Cirrus CI testing
  • Set pybind11~=3.0

v2.1.0

08 Jul 01:01

Choose a tag to compare

[2.1.0] - 2025-08-07

Changed

  • Build Linux wheels using manylinux_2_28 (previously manylinux2014)

v2.0.1

16 May 14:55

Choose a tag to compare

[2.0.1] - 2025-05-16

Fixed

  • Fixed a bug in xtal.make_superstructure that overwrote coordinates with properties when properties were present.

v2.0.0

02 May 20:02

Choose a tag to compare

[2.0.0] - 2025-05-02

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.0a12

10 Dec 17:27

Choose a tag to compare

[2.0a12] - 2024-12-10

Fixed

  • Fixed xtal::Lattice::_generate_voronoi_table(). The acute angle test resulted in the FCC lattice missing a row for the normal that lies along a conventional unit cell lattice vector, so voronoi number was 4 instead of 5 for the octahedral interstitial coordinate).

Added

  • Added Lattice.voronoi_table, Lattice.voronoi_number, and Lattice.voronoi_inner_radius.

Changed

  • Build macos x86_64 wheels with macos-13 Github Actions runner

v2.0a11

09 Aug 06:05

Choose a tag to compare

[2.0a11] - 2024-08-09

Added

  • Added Lattice.copy, Lattice.__copy__, Lattice.__deepcopy__, Lattice.__repr__, Lattice.to_dict, and Lattice.from_dict
  • Added AtomComponent.copy, AtomComponent.__copy__, AtomComponent.__deepcopy__, AtomComponent.__repr__, AtomComponent.to_dict, and AtomComponent.from_dict
  • Added Occupant.copy, Occupant.__copy__, Occupant.__deepcopy__, Occupant.__repr__, Occupant.to_dict, and Occupant.from_dict
  • Added DoFSetBasis.copy, DoFSetBasis.__copy__, DoFSetBasis.__deepcopy__, DoFSetBasis.__repr__, DoFSetBasis.to_dict, and DoFSetBasis.from_dict
  • Added Prim.copy, Prim.__copy__, Prim.__deepcopy__, and Prim.__repr__
  • Added SymOp.copy, SymOp.__copy__, SymOp.__deepcopy__, and SymOp.__repr__
  • Added Structure.copy and Structure.__repr__
  • Added IntegralSiteCoordinate.copy, IntegralSiteCoordinate.__copy__, and IntegralSiteCoordinate.__deepcopy__
  • Added IntegralSiteCoordinateRep.copy, IntegralSiteCoordinateRep.__copy__, IntegralSiteCoordinateRep.__deepcopy__, and IntegralSiteCoordinateRep.__repr__
  • Added usage documentation for Structure manipulation and input / output

Changed

  • Changed IntegralSiteCoordinate.__str__ to IntegralSiteCoordinate.__repr__ and changed the output from "b, i j k" to "[b, i, j, k]"
  • Changed xtal::make_point_group to remove the symmetrized_with_fractional step.
  • Changed construction of factor group translations to set components very close to zero (absolute value less than tol * 1e-5) to exactly zero.

Fixed

  • Make a user-defined CASM::xtal::SymInfo copy constructor so that member xtal::Coordinate have the correct "home" lattice

v2.0a10

12 Jul 11:39

Choose a tag to compare

[2.0a10] - 2024-07-12

Changed

  • Clarified documentation for libcasm.xtal.Lattice.is_equivalent_to
  • Wheels compiled with numpy>=2.0.0
  • Run github actions on push, pull_request, and weekly
  • Use ruff NPY201

v2.0a9

13 Mar 22:58
503a1c8

Choose a tag to compare

[2.0a9] - 2024-03-13

Fixed

  • Fix CASM::xtal::make_primitive, which was not copying unique_names. This also fixes the output of libcasm.xtal.make_primitive which was losing the occ_dof list as a result.
  • Fix JSON output of xtal::BasicStructure site label
  • Changed pseudoinverse calculation for basis changes to completeOrthogonalDecomposition().pseudoInverse()

Changed

  • Changed make_primitive to act on either Prim or Structure.
  • Changed default of xtal.Structure.to_dict to output in fractional coordinates
  • Added excluded_species and frac parameters to xtal.Structure.to_dict

Added

  • Add to libcasm.xtal: make_primitive_prim (equivalent to current make_primitive), make_primitive_structure, and make_canonical_structure.
  • Add options to the BCC and FCC structure factory functions in libcasm.xtal.structures to make the conventional cubic unit cells.
  • Add to libcasm.xtal: StructureAtomInfo namedtuple, and methods sort_structure_by_atom_info, sort_structure_by_atom_type, sort_structure_by_atom_coordinate_frac, and sort_structure_by_atom_coordinate_cart
  • Add to libcasm.xtal: substitute_structure_species
  • Add to libcasm.xtal.Prim: method labels, constructor parameter labels
  • Add to libcasm.xtal.Lattice: methods reciprocal, volume, lengths_and_angles, from_lengths_and_angles
  • Added unit_cell, diagonal_only, and fixed_shape parameters to libcasm.xtal.enumerate_superlattices.
  • Add to libcasm.xtal: combine_structures, filter_structure_by_atom_info, make_structure_atom_info, and make_structure_from_atom_info