Skip to content

glotzerlab/spatula

Repository files navigation

SPATULA

Overview

SPATULA (Symmetry Pattern Analysis Toolkit for Understanding Local Arrangements) is a Python package for computing the continuous symmetry ordering of the neighbors of a point in space. In general, this is to compute the local ordering of particles (molecules) in simulations or experiments over time. The package serves as an extension of freud with a new order parameter.

spatula currently supports all point groups of finite order:

  • All crystallographic point groups
  • Cyclical groups C_n
  • Cyclical groups with vertical reflection C_{nv}
  • Cyclical groups with horizontal reflection C_{nh}
  • Dihedral groups D_n
  • Dihedral groups with horizontal reflection D_{nh}
  • Dihedral groups with diagonal reflections D_{nd}
  • Polyhedral groups T, T_h, T_d, O, O_h, I, I_h
  • Rotoreflection groups S_n
  • Inversion group: C_i
  • Reflection group: C_s

Resources

Related Tools

  • HOOMD-blue: Perform MD / MC simulations that can be analyzed with spatula.
  • freud: Analyze particle simulations.
  • signac: Manage your workflow with signac.

Citation

When using spatula to process data for publication, please refer to the documentation instructions.

Installation

Spatula is available on PyPI and conda-forge. See the Installation Guide for more information.

Example

import freud
import spatula

system = freud.data.UnitCell.fcc().generate_system(3)
optimizer = spatula.optimize.Union.with_step_gradient_descent(
    optimizer=spatula.optimize.Mesh.from_grid()
)
PGOP_Oh_Ih = spatula.PGOP(["Oh","Ih"], optimizer)
PGOP_Oh_Ih.compute(system, sigmas=None, neighbors={"r_max": 1.2, "exclude_ii": True})
print(PGOP_Oh_Ih.order)

About

Python package for calculation of symmetry based order parameters in molecular simulation systems.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 6