Closed bocklund closed 2 years ago
Does this have any pathological interactions with potential miscibility gaps? I'm trying to reason about if there are cases where all the entered phases have zero driving force at the __HYPERPLANE__
-specified composition, but mass does not balance. I think that case is impossible as long as the target hyperplane grid and the grids for the null
phases are consistent with each other.
Yes, using __HYPERPLANE__
could be a pathological case for miscibility gaps. Suppose you have near complete immiscibility:
[["__HYPERPLANE__", ["B"], [0.5]], [["BCC_A2", ["B"], [0.01]], [["BCC_A2", ["B"], [0.99]]]
this is going to work fine, probably just as well as the vertex-only case.[["__HYPERPLANE__", ["B"], [0.5]], [["BCC_A2", ["B"], [null]], [["BCC_A2", ["B"], [null]]]
will give always zero driving force regardless of whether there's a gap or not. [["__HYPERPLANE__", ["B"], [0.5]], [["BCC_A2", ["B"], [0.01]], [["BCC_A2", ["B"], [null]]]
will enforce at least the B-poor side of the gap. In practice, I don't think it's an issue (or at least more of an issue than what currently exists). If you know the phase compositions, you're always safe regarding mass balance issues. If you don't know the phase compositions, there's a chance for mass balance issues.
Consider the following schematic example:
You know one of the phase compositions, for β phase, but you don't know the phase composition, for α phase. However, you do know based on the measurement, that the tie-line should be on the A-rich side. In the construction where the driving force of α is estimated, the driving force will come from the wrong side of the α gap.
From a dataset standpoint, this can be described in either the existing or the __HYPERPLANE
notation and give equivalent representation of the target hyperplane and computed driving forces:
[["BETA", ["B"], [0.4]], ["ALPHA", ["B"], [null]]]
[["__HYPERPLANE__", ["B"], [0.4]], ["BETA", ["B"], [0.4]], ["ALPHA", ["B"], [null]]]
With this PR, one can define a phase region in a dataset as follows:
which will result in estimating the target hyperplane at X(CU) = 0.001015 and the driving forces to that hyperplane for HCP_A3 and CUMG2 (in the same way as they are estimated now).
This allows users to more finely control how the target hyperplane is generated and allows the target hyperplane to be specified independently of any phases/phase compositions that are known. Multiple vertices with the
__HYPERPLANE__
phase can be entered. If a__HYPERPLANE__
vertex is not present (i.e. all existing datasets), the current rules apply: each phase with a fully specified composition (nonull
entries) contributes to the target hyperplane at that composition.Technical background
The likelihood function for phase boundary data based on computing the driving force of known phase compositions to a "target hyperplane" that represents the current chemical potentials in the measured phase region. It is often the case that one or more phases are known to be stable, but the compositions of those phases are not known. In these cases, we can estimate the driving force to the target hyperplane.
Currently, ESPEI computes the target hyperplane using the arithmetic mean of global minimum hyperplanes at each known phase composition. As a consequence, any particular phase equilibrium needed to have at least one known phase composition to be able to generate a target hyperplane. There are several types of experiments that produce phase boundary data, but none of the phase compositions can be determined by the measurement. This PR allows the overall compositions to be entered and used to determine the target hyperplane, and the driving forces can be computed as usual.
Example use cases of this feature
The typical use case of this feature corresponds to an experiment where the overall composition is known and the phases in equilibrium are known, but the phase compositions are not known. Some examples:
[["__HYPERPLANE__", ["SI"], [0.01]], ["HCP_A3", ["SI"], [null]], ["MG2SI", ["SI"], [null]]]
.[["__HYPERPLANE__", ["SI"], [0.05]], ["HCP_A3", ["SI"], [null]], ["MG2SI", ["SI"], [null]], ["LIQUID", ["SI"], [null]]]
.__HYPERPLANE__
and the driving forces to the hyperplane at the known composition may be estimated for the phases in equilibrium.TODO before merging: