Skip to content

ACOM: 7 of 200 off-grid recoveries land 36 or 60 degrees away #8

Closed

Description

@Paullo9

Zone axes whose centrosymmetric pattern has a symmetry of its own; not separable on spots alone. A pattern between templates in a sparse corner of the zone is untested. Metal is not faster than all CPU cores up to 1 024 patterns at 600 axes; 16 384 patterns and 2 400 axes are for the nightly.

From docs/open-items.md, 27 Oct 2026.

Activity

  1. added this to the 4 Science milestone on Oct 27, 2026
  2. Paullo9 commented on Oct 31, 2026

    @Paullo9
    ContributorAuthor

    Diagnosis, 31 Oct 2026

    Conclusion: the cause is inherent pseudo-symmetry, not a kit defect. All 7 large failures are coincidence twins of the truth (sigma 3 and sigma 5). Their kinematic patterns at 200 kV are nearly identical, and py4DSTEM shares the ambiguity. No matcher change. Test and docs are in #46.

    Hypotheses and what would refute each

    Hypothesis Refuted if Result
    Pseudo-symmetric twin patterns The truth and the wrong winner have clearly different patterns (overlap well below the winner's score) Confirmed: overlap 0.95 to 1.0000
    Orientation-grid density The cases go away with 4x the zone axes Refuted: 7 left at 2400 axes
    In-plane resolution The cases go away with 512 bins or refinement Refuted: 4 left at 512 bins, 3 at 512 bins with 2400 axes, the same 7 with the parabola refinement
    Correlation tie-breaking The winner and the best correct candidate tie in score Refuted: gaps of 0.0007 to 0.021, no ties
    orix reduce issue (PR #43) The error metric uses reduce Refuted: the test takes the minimum angle over the 24 proper operators itself

    Experiment

    The setup is the 200 seeded plants of ACOMOffGridRecoveryTests: Al, m-3m, 600 axes, 128 bins, the apps' curvature model at 200 kV. For each failure above 10 degrees, I measured four things:

    1. The best correct candidate: the best real-space correlation over every template, both passes and every bin whose orientation is within 3 degrees of the truth.
    2. The exact twin: the truth turned by exactly 60 degrees about a <111> or 36.87 degrees about a <100>, taking the twin nearest the winner.
    3. The overlap of the exact truth pattern with the exact twin pattern in the matcher's own polar image.
    4. The score of a template built at the exact (off-grid) truth beam direction.
    case error (deg) twin beam near winner to exact twin (deg) winner score best correct truth-twin overlap exact-truth template
    8 36.8 36.87 about <100> <013> 1.9 deg 0.5 0.9958 0.9875 0.9988 0.9672
    37 59.2 60 about <111> <112> 4.4 deg 1.6 0.9773 0.9744 0.9987 0.9754
    126 37.3 36.87 about <100> <013> 3.6 deg 1.0 0.9384 0.9306 0.9526 0.9418
    141 59.2 60 about <111> <112> 4.4 deg 0.9 0.9850 0.9843 0.9945 0.9507
    150 59.9 60 about <111> <112> 4.1 deg 0.5 0.9864 0.9650 0.9979 0.9697
    181 59.7 60 about <111> <112> 2.6 deg 0.3 0.9989 0.9932 1.0000 0.9830
    190 59.7 60 about <111> <112> 3.3 deg 1.2 0.9879 0.9830 0.9996 0.9845

    Failures above 10 degrees, on the same plants:

    setting failures
    128 bins, 600 axes 7
    128 bins, 2400 axes 7
    512 bins, 600 axes 4
    512 bins, 2400 axes 3 (all twins, overlap 0.9992 to 1.0000)
    128 bins with refinement 7
    10x wavelength 0

    Mechanism

    60 degrees about <111> and 36.87 degrees about <100> are the sigma 3 and sigma 5 coincidence rotations. The beams of the failing plants lie near <112> and <013>, zones whose plane contains that <111> or <100>. The twin therefore maps the zero-order Laue zone onto itself (with the zone's own mirror), and both orientations excite the same spots.

    The flat-sphere part of the excitation error, g.n, enters the envelope squared, so it cannot tell g from -g. Only the curvature term, lambda |g|^2 / 2 (about 0.003 1/A at 200 kV, further damped by the 0.25 intensity power), separates the twin from the truth. That separation (1 minus the overlap: 0 to 5 %) is smaller than what the grid and bin quantisation costs the correct candidate (1.5 to 5 %), so the twin can win. With 10x the wavelength the curvature term separates them and no case is left.

    py4DSTEM (pinned f050d207)

    I generated py4DSTEM patterns of the 7 truths and their twins with its own model at 200 kV, ran orientation_plan over the m-3m zone at 2 degree steps, then match_single_pattern:

    • On the truth patterns it picks the twin in 3 of 7 (cases 8, 126, 181).
    • On the twin patterns it picks the truth in the other 4 (cases 37, 141, 150, 190).

    That is 7 of 14 matchings on the wrong twin. The detector overlap of truth and twin in its model is 0.78 to 0.999. Its curvature sign is the opposite of the apps' model, which is why its choices flip between the truth and the twin, but the ambiguity is the same.

    Next step

    • Nothing to fix in the matcher. Badges stay validation: "none".
    • A consumer that needs to know can score the sigma 3 or sigma 5 twin of the winner and flag positions where the two are within a few percent.
    • Still open from this issue's body: a pattern between templates in a sparse corner of the zone, and Metal timing at 16 384 patterns and 2 400 axes.
  3. Paullo9 commented on Oct 31, 2026

    @Paullo9
    ContributorAuthor

    Triage 31 Oct 2026 (Paul approved): done. The 31 Oct diagnosis found the large failures are coincidence twins of the truth (sigma 3 and sigma 5) that py4DSTEM shares; the test and docs landed in PR #46. No matcher change.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions