Skip to content

Releases: prisms-center/CASMcode_configuration

v3.0a1

03 Mar 14:46

Choose a tag to compare

[3.0a1] - 2026-03-03

Added

  • Added libcasm.group package for crystallography-independent group utilities, including GenericGroup, Subset, and subgroup finding tools.
  • Added Frobenius-Schur indicator to IrrepInfo for classifying real, complex, and quaternionic irrep types.
  • Added random commuter method for IrrepDecomposition.
  • Added irrep decomposition by disjoint variable sets and random rotation retry for irrep decomposition.
  • Added class_indices parameter to IrrepDecomposition for character table construction.
  • Added options to select the amount of symmetrization applied after irrep decomposition.
  • Added alive-progress dependency for progress status bars.
  • Added multithreaded construction of group multiplication table, matrix representations, and make_irrep_special_directions.

Changed

  • Refactored Group to move element-type-independent parts into GenericGroup; subgroups now use Subset class; IrrepDecomposition now accepts subgroup orbits as a constructor argument.
  • Changed IrrepDecomposition to find input column spaces that do not mix and decompose irreps within each subspace independently, so the decomposition respects the user's initial choice of axes.
  • Changed output axes sign convention to prefer vectors where the first element is positive.
  • Changed IrrepInfo index and directions attributes to be optional.
  • Updated stylize.sh to use .clang-format file instead of Google style.

Fixed

  • Fixed constructing full_trans_mat from complex irreps.
  • Fixed normalization of real and imaginary parts of complex irrep trans_mat when building the full transformation matrix.

Removed

  • Removed deprecated supercells and motif arguments from ConfigEnumAllOccupations.by_supercell and made max a required argument.
  • Removed deprecated to_json and from_json methods from libcasm.configuration.Prim.

v2.3.1

26 Feb 21:47

Choose a tag to compare

[2.3.1] - 2026-02-26

Fixed

  • Fixed OLD_ERROR_HANDLING warnings from spglib

v2.3.0

26 Feb 15:39

Choose a tag to compare

[2.3.0] - 2026-02-26

Changed

  • Restrict libcasm-xtal dependency to major version 2 (libcasm-xtal>=2.2.0,<3)
  • Drop builds for python3.9, add builds for python3.14; update requires-python to ">=3.10,<3.15"
  • Drop x86_64 macOS wheels

v2.2.0

14 Jul 14:20

Choose a tag to compare

[2.2.0] - 2025-08-14

Changed

  • Set pybind11~=3.0

v2.1.0

08 Jul 14:33

Choose a tag to compare

[2.1.0] - 2025-08-08

Changed

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

v2.0.0

04 May 01:04

Choose a tag to compare

[2.0.0] - 2025-05-03

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

10 Feb 18:51

Choose a tag to compare

[2.0a8] - 2025-02-10

Fixed

  • Removed testing comment from libcasm.local_configuration.OccEventPrimSymInfo constructor.
  • Fixed required_cluster_size comparison in libcasm.occ_events.make_canonical_prim_periodic_occevents.

v2.0a7

12 Dec 20:29

Choose a tag to compare

[2.0a7] - 2024-12-12

Fixed

  • Fixed tests in test_config_space_analysis.py which were overly strict and failed unnecessarily.

v2.0a6

11 Dec 05:46

Choose a tag to compare

[2.0a6] - 2024-12-10

Added

  • Added libcasm.clusterography.make_custom_cluster_specs, which takes a custom site filter function to generate a ClusterSpecs with custom_generators generated with the custom site filter. This approach allows creating a ClusterSpecs that is customized, as with a custom site filter, but still works to save/load without to_dict/from_dict needing the custom filter.
  • Added make_canonical_local_configuration, make_distinct_local_cluster_sites, and make_distinct_local_perturbations to libcasm.enumerate.
  • Added local_symgroup_rep to libcasm.configuration.Supercell.
  • Added distances and phenomenal_distances to libcasm.clusterography.Cluster
  • Added libcasm.local_configuration for local configuration enumeration and comparison.
  • Added libcasm.enumerate.ConfigEnumLocalOccupations for local configuration enumeration.
  • Added make_supercells_for_point_defects, find_optimal_point_defect_supercells, make_required_sites, plot_point_defect_supercell_scores, and print_point_defect_supercell_info to libcasm.enumerate to help find optimal supercells for calculations.

Changed

  • Changed libcasm.clusterography.make_cluster_group documentation to state how the head group of the cluster group is set.
  • Changed libcasm.occ_events.make_occevent_group to set the head group of the occ_event group to the head group of the group used to generate the occ_event group. In typical use this means the head group of the occ_event group is the prim factor group rather than a subgroup, even if a subgroup was used to generate the occ_event group.
  • Changed the sorting order of libcasm.occ_events.OccEvent to sort by (cluster size, site distances, reverse molecule count), instead of by (cluster size, molecule count, site distances).

Fixed

  • Fixed libcasm.occ_events.OccEvent.copy_reverse, which was doing copy_sort instead.

v2.0a5

13 Aug 18:13

Choose a tag to compare

[2.0a5] - 2024-08-13

Fixed

  • Fixed libcasm.clusterography.equivalents_info_from_dict, which was trying to read clusters from the wrong position. This method was not used to read equivalents_info.json for KMC simulations.
  • Fixed libcasm.occ_events.get_occevent_coordinate, which was using the reverse of the appropriate translation to get the unitcell_index.
  • Fixed to_json(to_json(config::Configuration) and read_dof_values to properly support writing and reading DoF values in both the prim and standard basis.

Changed

  • Changed the by_supercell and by_supercell_list methods of libcasm.enumerate.ConfigEnumAllOccupations to only do default continuous DoF.
  • Changed the skip_non_canonical parameter of the by_linear_site_indices, by_integral_site_coordinate, by_sublattice, by_cluster, and by_cluster_list methods of libcasm.enumerate.ConfigEnumAllOccupations to skip_equivalents.
  • Changed ConfigEnumAllOccupations methods that take a background configuration to maintain the orientation of continuous DoF.
  • Changed ClusterSpecs.from_dict to allow reading CASM v1 cluster specs JSON by checking for a "params" attribute and parsing that if it exists.
  • Changed ClusterSpecs.from_dict to warn if the prim has local DoF but no "orbit_branch_specs" attribute is present.
  • Changed occ_events to_json methods for occ_events::OccPosition, occ_events::OccTrajectory, and occ_events::OccEvent to optionally accept occ_events::OccSystem.

Added

  • Added option to include phenomenal site to local-cluster site distances by passing the phenomenal cluster to libcasm.clusterography.Cluster.to_dict.
  • Added libcasm.configuration.Supercell.symgroup_rep.
  • Added copy methods for libcasm.configuration.SupercellSymOp.
  • Added Configuration.copy, ConfigurationWithProperties.copy, SupercellRecord.copy, ConfigurationRecord.copy, Cluster.copy, and OccEvent.copy methods.
  • Added libcasm.configuration.copy_local_dof_values and libcasm.configuration.copy_global_dof_values
  • Added which_dofs parameter to libcasm.configuration.make_invariant_subgroup
  • Added libcasm.enumerate.SuperConfigEnum
  • Added libcasm.ConfigEnumAllOccupations.by_supercell_with_continuous_dof
  • Added __repr__ for Cluster, ClusterOrbitGenerator, and ClusterSpecs.
  • Added to_json methods for config::ConfigSpaceAnalysisResults and config::DoFSpaceAnalysisResults.
  • Added Prim.__repr__, Supercell.__repr__, SupercellRecord.__repr__, Configuration.__repr__, ConfigurationRecord.__repr__, ConfigurationWithProperties.__repr__, DoFSpaceAnalysisResults.__repr__.
  • Added ConfigSpaceAnalysisResults.to_dict and DoFSpaceAnalysisResults.to_dict methods.
  • Added OccSystem.__repr__, OccPosition.copy, OccPosition.__copy__, OccPosition.__deepcopy__, OccPosition.__repr__, OccEventRep.__repr__, OccEventRep.copy, OccEventRep.__copy__, OccEventRep.__deepcopy__, OccEvent.__repr__.