In the case of running isicle.md.XTBWrapper() to optimize structures then passing this geom to isicle.mdXTBWrapper() to generate conformers, an uncaught error occurs.
isicle.md.XTBWrapper.set_geometry() sets an isicle.md.XTBWrapper to self.geom
then isicle.md.XTBWrapper.save_geometry() is executed inside set_geometry()
save_geometry() calls isicle.io.save(,), which calls isicle.io.save_xyz() since filetype is .xyz
isicle.io.save_xyz checks: if not isinstance(geom, (isicle.geometry.Geometry, isicle.geometry.XYZGeometry)) then raise TypeError
isicle.md.XTBWrapper is sub-class of isicle.geometry.XYZGeometry and therefore passes check
error at isicle.io.save_xyz, line 508 since isicle.md.XTBWrapper object does not have .xyz attribute
min. ex:
geom=isicle.load('CCO')
geom = geom.initial_optimize(embed=True, forcefield="UFF", ff_iter=200)
opts=geom.md(task='optimize')
confs=opts.md(task='conformers')
In the case of running isicle.md.XTBWrapper() to optimize structures then passing this geom to isicle.mdXTBWrapper() to generate conformers, an uncaught error occurs.
min. ex: geom=isicle.load('CCO') geom = geom.initial_optimize(embed=True, forcefield="UFF", ff_iter=200) opts=geom.md(task='optimize') confs=opts.md(task='conformers')