diff --git a/rugnux/Rugnux.cpp b/rugnux/Rugnux.cpp index 805a7369b..6289bfda4 100644 --- a/rugnux/Rugnux.cpp +++ b/rugnux/Rugnux.cpp @@ -5023,8 +5023,11 @@ ProcessResult Rugnux::RunPipeline(RugnuxObserver *observer, bool write_output, b // centring implies, and the pass then merges in P1 (measured on a C-centred monoclinic // crystal). Only this direction - a centring pass 2 finds where pass 1 had none is the // refined geometry doing its job, and the intensity test in the search confirms it. + // Same primitive metric only: a pass 2 that lands on a primitive cell several times + // smaller is a different lattice - pass 1's supercell corrected - not a dropped centring. const bool lost_centring = prepass_result_->search_result.centering != 'P' - && best.result->search_result.centering == 'P'; + && best.result->search_result.centering == 'P' + && v1 > 1.0 && std::abs(v2 / v1 - 1.0) < 0.1; if (supercell || lost_centring) { logger.Info("Two-pass: that lattice ({}-centred, volume {:.0f} A^3) disagrees with " "pass 1 ({}-centred, {:.0f} A^3) - integrating with pass-1's lattice instead",