Source code for dials.algorithms.indexing.basis_vector_search.strategy
"""Basis vector search strategies."""
from __future__ import annotations
[docs]
class Strategy:
"""A base class for basis vector search strategies."""
phil_help = None
phil_scope = None
[docs]
def __init__(self, max_cell, params=None, *args, **kwargs):
"""Construct the strategy.
Args:
max_cell (float): An estimate of the maximum cell dimension of the primitive
cell.
"""
self._max_cell = max_cell
self._params = params
if self._params is None and self.phil_scope is not None:
self._params = self.phil_scope.extract()
[docs]
def find_basis_vectors(self, reciprocal_lattice_vectors):
"""Find a list of likely basis vectors.
Args:
reciprocal_lattice_vectors (scitbx.array_family.flex.vec3_double):
The list of reciprocal lattice vectors to search for periodicity.
Returns:
A tuple containing the list of basis vectors and a flex.bool array
identifying which reflections were used in indexing.
"""
raise NotImplementedError()