Periodic Collapser
- class PeriodicCollapser(step_size=0.1, distance_threshold=1.5, scale_steps=False)[source]
Bases:
Optimizer
Performs rigid-body collapse of molecules [1].
This
Optimizer
will also update the .PeriodicInfo.Examples
Structure Optimization
Using
PeriodicCollapser
will lead toConstructedMolecule
structures without long bonds and match the unit-cell to the new structure.import stk bb1 = stk.BuildingBlock('BrCCBr', [stk.BromoFactory()]) bb2 = stk.BuildingBlock('BrCC(CBr)CBr', [stk.BromoFactory()]) topology_graph = stk.cof.PeriodicHoneycomb( building_blocks=(bb1, bb2), lattice_size=(1, 2, 3), optimizer=stk.PeriodicCollapser(), ) cof = stk.ConstructedMolecule(topology_graph)
Optimisation with
stk
simply collects the final position matrix and periodic info. The optimisation’s trajectory can be output using theMCHammer
implementation if required by the user [1].The open-source optimization code
MCHammer
specializes in the collapsing of molecules with long bonds like those constructed bystk
. This code is entirely nonphysical and is, therefore, completely general to any chemistry.References
Methods
optimize
(state)Optimize the structure of a molecule under construction.
- __init__(step_size=0.1, distance_threshold=1.5, scale_steps=False)[source]
Initialize an instance of
PeriodicCollapser
.- Parameters:
step_size (
float
, optional) – The relative size of the step to take during collapse in Angstrom.distance_threshold (
float
, optional) – Distance between distinct building blocks to use as threshold for halting collapse in Angstrom.scale_steps (
bool
, optional) – Whether to scale the step of each distinct building block by its relative distance from the molecules centroid.
- optimize(state)[source]
Optimize the structure of a molecule under construction.
- Parameters:
state (
ConstructionState
) – The molecule being constructed.- Returns:
The optimized construction state.
- Return type: