assyst.filters¶
Classes that filter structures according to some criteria.
The code in the other modules that uses them is set up such that simple functions can always be passed as well and that the classes here are just for convenience.
- class assyst.filters.AndFilter(l: Callable[[Atoms], bool] | FilterBase, r: Callable[[Atoms], bool] | FilterBase)[source]¶
Bases:
FilterBaseConjunction of two filters.
- l: Callable[[Atoms], bool] | FilterBase¶
- r: Callable[[Atoms], bool] | FilterBase¶
- class assyst.filters.AspectFilter(maximum_aspect_ratio: float = 6)[source]¶
Bases:
FilterBaseFilters structures with high aspect ratios.
- class assyst.filters.CalculatorFilter(*, missing: Literal['error', 'ignore'] = 'error')[source]¶
Bases:
FilterBaseFilters that require a single point calculator set on the structure.
- missing: Literal['error', 'ignore'] = 'error'¶
Behaviour when a structure has no
SinglePointCalculatorattached."error"(default): raiseValueError."ignore": silently pass the structure through (returnTrue).
- class assyst.filters.DistanceFilter(radii: dict[str, float])[source]¶
Bases:
FilterBaseFilter structures that contain too close atoms.
Setting a radius to NaN allows all bonds involving this atom.
- to_tol_matrix(prototype: Literal['metallic', 'atomic', 'molecular', 'vdW'] = 'metallic') Tol_matrix[source]¶
Returns equivalent tolerance matrix for pyxtal.
- Parameters:
prototype (metallic, atomic, molecular or vdW) – passed to Tol_matrix as is and used there to initialize radii of elements not explicitly set in this filter
- class assyst.filters.EnergyFilter(min_energy: float = -inf, max_energy: float = inf, *, missing: Literal['error', 'ignore'] = 'error')[source]¶
Bases:
CalculatorFilterFilters structures by energy per atom (eV/atom).
Keeps structures whose energy per atom falls within
[min_energy, max_energy].
- class assyst.filters.FilterBase[source]¶
Bases:
ABCBase class for filter objects that implements conjunction and disjunction operators.
- class assyst.filters.ForceFilter(max_force: float = inf, *, missing: Literal['error', 'ignore'] = 'error')[source]¶
Bases:
CalculatorFilterFilters structures by maximum atomic force magnitude (eV/Å).
Keeps structures where no atom experiences a force larger than
max_force.
- class assyst.filters.OrFilter(l: Callable[[Atoms], bool] | FilterBase, r: Callable[[Atoms], bool] | FilterBase)[source]¶
Bases:
FilterBaseDisjunction of two filters.
- l: Callable[[Atoms], bool] | FilterBase¶
- r: Callable[[Atoms], bool] | FilterBase¶
- class assyst.filters.VolumeFilter(*args: float, minimum_volume_per_atom: float = 0.0, maximum_volume_per_atom: float = inf)[source]¶
Bases:
FilterBaseFilters structures by volume per atom (ų/atom).
Keeps structures whose volume per atom falls within
[minimum_volume_per_atom, maximum_volume_per_atom].Constructor follows
range()-style semantics: a single positional argument is the upper bound, two positional arguments are(minimum, maximum).