XTBWrapper does not have attribute .xyz
jessbade opened this issue · 2 comments
jessbade commented
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(<filename.xyz>,<isicle.md.XTBWrapper>), 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')
smcolby commented
XTBWrapper
should not inherit XYZGeometry
or Geometry
.
smcolby commented
NWChemWrapper
also does this, and should not.