Pycalphad

Latest version: v0.11.0

Safety actively analyzes 701298 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 7

0.3.2

------------------

This is a minor bug fix release.

* ``equilibrium``: Fix a bug causing calculations at multiple temperatures to fail in multi-component systems.
Thanks to Ali for reporting.
* ``equilibrium``: More numerical robustness improvements.
(Global search now satisfies the strong Wolfe conditions on every iteration.)
Further performance improvements will come to this soon.
* pycalphad now depends on pyparsing<2.1.0 pending resolution of :issue:`38`.

0.3.1

------------------

This is a minor bug fix release.

* ``Model``: Make the ``curie_temperature`` attribute work when dealing with the order-disorder model.
* ``equilibrium``: Fix a bug involving the ``output`` keyword argument in multi-phase calculations.

0.3

----------------

This is a major release with new features and fixes. It is very likely that
if you will need to update code to be compatible with this version.

* **Breaking change**: Removed ``residuals`` module and the deprecated ``energy_surf`` routine.
* **Breaking change**: Removed ternary isotherm plotting for now, pending a rewrite.
* **Breaking change**: The ``refstates`` module has been renamed to ``refdata``.
* **Breaking change** in ``Database``: Removed ``typedefs`` member.
* ``binplot``:
Completely rewritten to use the new equilibrium engine. See also the new companion function ``eqplot``.
**Breaking change**: The API for calling ``binplot`` has also been completely changed.
* ``Database``:
``to_file`` learned a ``groupby`` keyword argument for changing how PARAMETERs are sorted.
Loading a TDB will now raise ``ValueError`` if the file contains duplicate FUNCTIONs.
The TDB writer now generates output more conformant with Thermo-Calc.
* ``equilibrium``:
Substantively rewritten for robustness and accuracy. Users will notice a difference, especially for dilute calculations.
Unfortunately it's still a bit slow; fixing that will be a focus of the 0.3.x cycle. See :issue:`37`.
Learned a ``output`` keyword argument for specifying additional equilibrium properties to compute.
* The ``tqdm`` library is now a dependency. It adds progress bar support to ``equilibrium``.
* ``Model``:
Added ``constituents``, ``phase_name`` and ``site_ratios`` attributes, in analogy with ``Phase`` objects.
This makes it easier to interact with the sublattice model without having to keep ``Database`` objects around.
Added a ``degree_of_ordering`` (abbreviation ``DOO``) property. Only has meaning for phases with sublattice ordering.
Added a ``curie_temperature`` (abbreviation ``TC``) property. Only nonzero for phases with magnetic ordering.
* ``calculate``:
Learned a ``broadcast`` boolean keyword argument for turning broadcasting off. This is useful
for computing many different system configurations in a pointwise fashion, when there's no
obvious way of expressing the calculation as a traditional "step" or "map".
* The ``xray`` dependency was renamed to ``xarray``. The change should be transparent to users when updating.

0.2.5

------------------

This is a minor release with new features and bug fixes.

* **Breaking change** in ``Model``: All mixing attributes have been renamed from ``MIX_{attr}`` to ``{attr}_MIX``.
* Early support for reference states has been added to the ``refstates`` module. The reference molar Gibbs energies
of the pure elements according to the 1991 SGTE standard can be found in ``pycalphad.refstates.SGTE91``.
* ``Database`` now has file import/export support with ``to_file``, ``from_file``, ``from_string`` and ``to_string``.
Currently TDB is the only supported format, but more can now easily be added in the future.
The function for extending pycalphad with new formats is ``Database.register_format``.
Loading databases with the default constructor, i.e., ``Database('file.tdb')``, will continue to work.
* Equivalence comparison support for ``Database`` and ``Model``.
For example, if ``dbf`` is a ``Database``, ``dbf == Database.from_string(dbf.to_string(fmt='tdb'), fmt='tdb')``.
Equivalent ``Database`` objects should always produce equivalent ``Model`` objects.
We have tests for this, but if you find a case where this isn't true, it's a bug and can be reported on the issue tracker.
* A new sampling algorithm for equilibrium calculation, based on the scrambled Halton sequence, has been implemented.
It should improve performance for multi-component systems once some other improvements have been finalized.
For now, users will probably not notice a difference.
* ``Model``: Added ``CPM_MIX`` attribute for molar isobaric heat capacity of mixing.
* Many unit tests have been cleaned up and streamlined, with test coverage back up above 80%.

0.2.4

------------------

This is a minor release with bug fixes and performance improvements.

* Optional, experimental support for numba_ has been added to ``calculate``.
If numba>=0.22 is installed and ``calculate`` is directly called without the `mode`
keyword argument, a numba-optimized function will be generated for the calculation.
You can force the old behavior with `mode='numpy'`.
``equilibrium`` does not currently use this code path regardless.
* A performance improvement to how ``lower_convex_hull`` computes driving force
gives a nice speedup when calling ``equilibrium``.
There's still a lot of room for improvement, especially for step/map calculations.
* Piecewise-defined functions are now lazily-evaluated, meaning only the values necessary
for the given conditions will be computed. Before, all values were always computed.
Users will notice the biggest difference when calculating phases with the magnetic model.
* Fix a small but serious bug when running tinydb v3 with pycalphad ( :issue:`30` ).
* Fix a platform-dependent crash bug when using ``binplot`` ( :issue:`31` ).
* Support for numexpr has been removed.
* The documentation on ReadTheDocs should be building properly again ( :issue:`26` ).

.. _numba: http://numba.pydata.org/

0.2.3

------------------

This is a minor release with bug fixes and performance improvements.

* Autograd is now a required dependency. It should be automatically installed on upgrade.
* The magnetic contribution to the energy has been improved in performance.
For some users (mainly Fe or Ni systems), the difference will be dramatic.
* Numerical stability improvements to the energy minimizer ( :issue:`23` ).
The minimizer now solves using exact Hessians and is generally more robust.
`pycalphad.core.equilibrium.MIN_STEP_LENGTH` has been removed.
There are still issues computing dilute compositions; these will continue to be addressed.
Please report these numerical issues if you run into them because they are difficult to find through automated testing.
* Automated testing is now enabled for Mac OSX and Windows, as well as Linux (previously enabled).
This should help to find tricky bugs more quickly. (Note that this runs entirely on separate
infrastructure and is not collecting information from users.)

Page 6 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.