Building a reactant structure for surface dissociation reaction of hydrogen to use as an input for LST/QST

This script builds a reactant structure for the surface dissociation reaction of hydrogen (or other homonuclear diatomic) molecule,

H2 + surface -> 2H on surface, (1)

when both surface and surface dissociative adsorption structures are given.

-Input structures
'Surface.xsd' : Clean surface structure
'Product.xsd' : Surface dissosiative dsorption sturucture, i.e. rhs of eq.(1)

-Output structure
'H2onSurface.xsd' : isolated hydrogen (or other homonuclear diatomic) molecule on clean surfaace, i.e. lhs of eq.(1)

It works by:
Create a centroid on the diatomic molecule Translate the centroid by distance dist_sur
Create a distance monitor between the two atoms and set it to bond_length
Copy the atoms into the clean surface