stko.TryCatchOptimizer

class stko.TryCatchOptimizer(try_optimizer, catch_optimizer)[source]

Bases: Optimizer

Try to optimize with a Optimizer, use another on failure.

Parameters:
  • try_optimizer (Optimizer) – The optimizer which is used initially to try and optimize a stk.Molecule.

  • catch_optimizer (Optimizer) – If try_optimizer raises an error, this optimizer is run on the stk.Molecule instead.

Examples

import stk
import stko

# Create some molecules to optimize.
mol1 = stk.BuildingBlock('NCCN')
mol2 = stk.BuildingBlock('CCCCC')
mol3 = stk.BuildingBlock('O=CCCN')

# Create an optimizer which may fail.
uff = stko.UFF()

# Create a backup optimizer.
mmff = stko.MMFF()

# Make an optimizer which tries to run raiser and if that
# raises an error, will run mmff on the molecule instead.
try_catch = stko.TryCatchOptimizer(
    try_optimizer=uff,
    catch_optimizer=mmff,
)

# Optimize the molecules. In each case if the optimization with
# UFF fails, MMFF is used to optimize the molecule instead.
mol1 = try_catch.optimize(mol1)
mol2 = try_catch.optimize(mol2)
mol3 = try_catch.optimize(mol3)

Methods

optimize

Optimize mol.

optimize(mol)[source]

Optimize mol.

Parameters:

mol (MoleculeT) – The molecule to be optimized.

Returns:

The molecule to be optimized.

Return type:

MoleculeT