narupatools.ase.constraints

Code relating to ASE constraints, which can modify an ASE atoms object.

ASE constraints don’t exist as a base class from which all other constraints are a subclass. Instead, it is assumed that they have at a minimum an adjust_positions and adjust_forces method, with optional other methods depending on what they alter.

This module includes protocols that provide these methods as abstract methods, ensuring that if you include them in your class hierarchy then you have to implement them correctly.