Hello,
I would like to recognize when a molecule is “integer” or if it went through dissociation after relaxation.
I am trying this script to determine whether these two H2 molecules are the same:
from pymatgen.core.structure import Molecule
mol_0 = Molecule(
['H', 'H'], [[ 0, 0, 0],[ 0, 0, 0.7]])
mol_1 = Molecule(
['H', 'H'], [[ 0, 0, 0], [ 0, 0, 5]])
from pymatgen.analysis.graphs import MoleculeGraph
from pymatgen.analysis.local_env import MinimumDistanceNN
from pymatgen.analysis.local_env import CovalentBondNN
strategy = CovalentBondNN()
mg_0 = MoleculeGraph.with_local_env_strategy(mol_0, strategy=strategy)
mg_0.get_connected_sites(0)
mg_1 = MoleculeGraph.with_local_env_strategy(mol_1, strategy=strategy)
mg_1.get_connected_sites(0)
mg_0.isomorphic_to(mg_1)
The CovalentBondNN
works fine for the H2 molecule as in the example, but it fails for more complicated systems (ValueError: No bond data for elements Mn - Mn
).
Many strategies are not allowed for molecules and MinimumDistanceNN
finds always an isomorphic result. Which strategy would you advise?
Thank you
Marco