Replies: 1 comment
-
One solution is to make the reference energy and lattice stabilities proper objects. If the reference data were a class, users would be free to subclass and inherit the existing unary and lattice stability functions to make minor changes/additions without duplication. Using a mechanism like the Some further development is required to decide what the interface ESPEI should expect this class to conform to, but a class would make it very easy for users to provide the Gibbs energy functions any way they like. They could even distribute a TDB file and create the unary functions dynamically from the TDB (this could even be a built-in supported feature). |
Beta Was this translation helpful? Give feedback.
-
Somewhat related to #123 and the repository https://github.com/PhasesResearchLab/ESPEI-unary-refstate-skeleton/
As of ESPEI 0.7.9, custom unary reference states can be added by a skeleton repository and using setup.py entrypoints. In practice, doing this is not very ergonomic for users and does not address simple use cases like overriding a particular unary or lattice stability (while accepting the SGTE Unary 5 expression otherwise).
This discussion topic should track ideas for alternatives to the current system.
The nice aspect of the current approach is that anyone can create and distribute a reference state without changing ESPEI code. Any solutions should support this use case.
Some key issues with the current method are:
pip install
their own package to set up the entry points again.Piecewise
expression, which could lead to translation errors.Beta Was this translation helpful? Give feedback.
All reactions