Version 0.6#

0.6.4#

Date: 2 October 2025

Bugfix#

  • Fix bug in wulfric.io.dump_poscar: only three atom positions were outputted. Now all positions are written.

0.6.3#

Date: 20 September 2025

Bugfix#

  • mC lattices with HPKOT convention had a programming bug. This bug was leading to the wrong definition of the extended Bravais lattice symbol in some cases, which in turn led to the wrong detection of k-points. This bug is fixed now.

  • Fix issue #16.

New features#

  • wulfric.crystal.hpkot_get_example

  • wulfric.crystal.hpkot_get_extended_bl_symbol

  • wulfric.constants.BRAVAIS_LATTICES

  • wulfric.constants.HPKOT_EXTENDED_BL_SYMBOLS

  • Add with_time_reversal to wulfric.kpoints.get_path_and_points and wulfric.Kpoints.from_crystal.

Renamed#

Renamed objects behave in the same way as before.

Previous name

New name

wulfric.cell.sc_get_example_cell

wulfric.cell.sc_get_example

0.6.2#

Date: 6 September 2025

Bugfix#

  • Fix programming bug in wulfric.crystal.get_conventional.

0.6.1#

Date: 5 September 2025

Bugfix#

0.6.0#

Data: 29 August 2025

Major redesign of wulfric

New features#

  • Now wulfric relies on spglib for the deduction of symmetry.

  • Convention of HPKOT paper [1] was implemented.

  • Major improvement of plotting engine - focus on Plotly as a backend.

Name

Comment

wulfric.cell.get_brillouin_zone

wulfric.cell.get_lattice_points

It was present in wulfric before as a semi-private function. In this release it was improved and made public.

wulfric.cell.get_transformation_matrix

wulfric.cell.get_wigner_seitz_cell

wulfric.constants.ATOM_COLORS

wulfric.constants.ATOMIC_MASS

wulfric.constants.CENTRING_TYPE

wulfric.constants.CRYSTAL_FAMILY

wulfric.constants.INVERSION_SYMMETRY

wulfric.constants.HPKOT_CONVENTIONAL_TO_PRIMITIVE

wulfric.constants.HPKOT_DEFAULT_K_PATHS

wulfric.constants.SC_BRAVAIS_LATTICE_SHORT_NAMES

wulfric.ConventionNotSupported

wulfric.crystal.get_conventional

wulfric.crystal.get_primitive

wulfric.crystal.validate_atoms

wulfric.get_spglib_data

Part of the interface to spglib.

wulfric.get_spglib_types

Part of the interface to spglib.

wulfric.kpoints.get_path_as_list

wulfric.kpoints.get_path_as_string

wulfric.PotentialBugError

wulfric.SyntacticSugar

It was present in wulfric before as a semi-private class.

wulfric.validate_spglib_data

Part of the interface to spglib.

Renamed#

Renamed objects behave in the same way as before.

Previous name

New name

wulfric.cell.CUB

wulfric.cell.SC_CUB

wulfric.cell.FCC

wulfric.cell.SC_FCC

wulfric.cell.BCC

wulfric.cell.SC_BCC

wulfric.cell.TET

wulfric.cell.SC_TET

wulfric.cell.BCT

wulfric.cell.SC_BCT

wulfric.cell.ORC

wulfric.cell.SC_ORC

wulfric.cell.ORCF

wulfric.cell.SC_ORCF

wulfric.cell.ORCI

wulfric.cell.SC_ORCI

wulfric.cell.ORCC

wulfric.cell.SC_ORCC

wulfric.cell.HEX

wulfric.cell.SC_HEX

wulfric.cell.RHL

wulfric.cell.SC_RHL

wulfric.cell.MCL

wulfric.cell.SC_MCL

wulfric.cell.MCLC

wulfric.cell.SC_MCLC

wulfric.cell.TRI

wulfric.cell.SC_TRI

wulfric.cell.lepage

It was separated from the rest of the package but left as legacy code. Superseded by dependency on spglib. Renamed to wulfric.lepage.

wulfric.constants.BRAVAIS_LATTICE_VARIATIONS

wulfric.constants.SC_BRAVAIS_LATTICE_VARIATIONS

wulfric.compare_numerically

wulfric.compare_with_tolerance

wulfric.Kpoints.flatten_points

wulfric.Kpoints.flat_points

Removed#

Name

Comment

wulfric.cell.get_C_matrix

Due to the transition to spglib. Use inverse of wulfric.constants.SC_CONVENTIONAL_TO_PRIMITIVE with the correct lattice type instead.

wulfric.cell.get_centring_type

Due to the transition to spglib. Use spglib_data.centring_type instead.

wulfric.cell.get_conventional

Due to the transition to spglib. Use wulfric.crystal.get_conventional instead.

wulfric.cell.get_crystal_family

Due to the transition to spglib. Use spglib_data.crystal_family instead.

wulfric.cell.get_name

Due to the transition to spglib. Use wulfric.constants.SC_BRAVAIS_LATTICE_LONG_NAMES instead.

wulfric.cell.get_pearson_symbol

Due to the transition to spglib. Use spglib_data.crystal_family and spglib_data.centring_type instead.

wulfric.cell.get_S_matrix

Due to the transition to spglib. Use wulfric.cell.get_transformation_matrix on original cell and wulfric.crystal.get_conventional instead.

wulfric.cell.get_standardized

Due to the transition to spglib. Use wulfric.crystal.get_primitive instead.

wulfric.cell.is_reasonable

It was unused.

wulfric.constants.PEARSON_SYMBOLS

Due to the transition to spglib. Use spglib_data.crystal_family and spglib_data.centring_type instead.

wulfric.constants.STANDARDIZATION_CONVENTIONS

It was unused.

wulfric.crystal.standardize

Due to the transition to spglib. Use wulfric.crystal.get_primitive instead.

wulfric.geometry.absolute_to_relative

Readily accessible with NumPy: r_coords = a_coords @ np.linalg.inv(cell)

wulfric.print_2d_array

It was out of the scope of the project and was not used that much internally.

wulfric.StandardizationTypeMismatch

Due to the transition to spglib.

wulfric.visualization.MatplotlibBackend

Support of two plotting backends was taking too much effort. More plotting backends might be implemented in the future.

Modified#

Those objects may or may not be renamed, but their behavior was changed. They still do roughly the same task, but may have additional or less input/output variables or behave different in some edge cases. If you use them a review is required.

Previous name

New name

wulfric.cell.get_cell_example

wulfric.cell.sc_get_example

wulfric.cell.get_hs_data

wulfric.kpoints.get_path_and_points

wulfric.cell.get_variation

wulfric.crystal.sc_get_variation

wulfric.cell.niggli

wulfric.cell.get_niggli

wulfric.constants.BRAVAIS_LATTICE_NAMES

wulfric.constants.SC_BRAVAIS_LATTICE_LONG_NAMES

wulfric.constants.C_MATRICES

wulfric.constants.SC_CONVENTIONAL_TO_PRIMITIVE

wulfric.constants.DEFAULT_K_PATHS

wulfric.constants.SC_DEFAULT_K_PATHS

wulfric.constants.HS_PLOT_NAMES

same

wulfric.crystal.ensure_unique_names

wulfric.crystal.get_unique_names

wulfric.crystal.populate_atom_species

wulfric.crystal.get_atoms_species

wulfric.visualization.PlotlyBackend

wulfric.PlotlyEngine