You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three horizontal-bisecting modes return zero forward solutions for the
trigonal-rhombohedral reflection (1, 1, 0), even though their libhkl-based peers (E4CH, K6C) solve it cleanly with a
finite chi / kappa rotation. Confirmed both on ad_hoc_diffractometer 0.11.0 (the most recent PyPI release) and on 0.10.1, so this is a pre-existing gap rather than a v0.11.0
regression.
Geometry
Mode
Failure
fourch
bisecting
NoForwardSolutions for (1, 1, 0)
psic
bisecting_vertical
NoForwardSolutions for (1, 1, 0)
kappa6c
bisecting_horizontal
NoForwardSolutions for (1, 1, 0)
The libhkl reference solutions for the same setup are:
Both libhkl solutions require a substantial out-of-plane sample
rotation (|chi| ~ 51 deg, |kappa| ~ 97 deg) — the ad_hoc
horizontal-bisecting solvers appear to confine their search to a
smaller angular sub-manifold and miss this branch.
Discovered in downstream cross-validation work prjemian/hklpy2_solvers#69 (expanding the cross-validation
sample set to all seven crystal systems).
The kappa6c bisecting_horizontal failure is structurally
similar to the cubic (1, 0, 0) gap that survived the issue Audit order of rotations used in forward() / inverse() #280
composition-order fix in v0.11.0 — both reflections require an
out-of-plane sample rotation that the bisecting solver currently
declines.
Downstream the three cases are tracked in tests/test_cross_validation.py::KNOWN_FORWARD_GAPS so the new trigonal_rhombohedral sample can land without regressing the
suite; when the upstream fix lands those strict-xfails will surface
as XPASS failures and be removed alongside the fix.
Suggested next step
The libhkl reference angles named above give the target (chi, phi)
and (komega, kappa, kphi) branches the ad_hoc solvers should also
find. Either the bisecting solver"s analytic branch enumeration
needs to admit |chi| > some_threshold solutions, or the search
needs an additional out-of-plane seed for cells with large alpha = beta = gamma deviation from 90 deg.
Environment
ad_hoc_diffractometer 0.11.0 (and 0.10.1, same failures).
Observation
Three horizontal-bisecting modes return zero forward solutions for the
trigonal-rhombohedral reflection
(1, 1, 0), even though theirlibhkl-based peers (E4CH,K6C) solve it cleanly with afinite
chi/kapparotation. Confirmed both onad_hoc_diffractometer 0.11.0(the most recent PyPI release) and on0.10.1, so this is a pre-existing gap rather than a v0.11.0regression.
fourchbisectingNoForwardSolutionsfor(1, 1, 0)psicbisecting_verticalNoForwardSolutionsfor(1, 1, 0)kappa6cbisecting_horizontalNoForwardSolutionsfor(1, 1, 0)The libhkl reference solutions for the same setup are:
Both libhkl solutions require a substantial out-of-plane sample
rotation (
|chi| ~ 51deg,|kappa| ~ 97deg) — the ad_hochorizontal-bisecting solvers appear to confine their search to a
smaller angular sub-manifold and miss this branch.
Reproducer
Self-contained, library-only:
Output on v0.11.0 (and v0.10.1):
Context
prjemian/hklpy2_solvers#69(expanding the cross-validationsample set to all seven crystal systems).
kappa6c bisecting_horizontalfailure is structurallysimilar to the
cubic (1, 0, 0)gap that survived the issue Audit order of rotations used inforward()/inverse()#280composition-order fix in v0.11.0 — both reflections require an
out-of-plane sample rotation that the bisecting solver currently
declines.
tests/test_cross_validation.py::KNOWN_FORWARD_GAPSso the newtrigonal_rhombohedralsample can land without regressing thesuite; when the upstream fix lands those strict-xfails will surface
as
XPASSfailures and be removed alongside the fix.Suggested next step
The libhkl reference angles named above give the target
(chi, phi)and
(komega, kappa, kphi)branches the ad_hoc solvers should alsofind. Either the bisecting solver"s analytic branch enumeration
needs to admit
|chi| > some_thresholdsolutions, or the searchneeds an additional out-of-plane seed for cells with large
alpha = beta = gammadeviation from90 deg.Environment
ad_hoc_diffractometer 0.11.0(and 0.10.1, same failures).numpy 2.4.6.Agent: OpenCode (argo/claudeopus47)