> such as "FS(F)(F)(F)(F)F": two of the fluorine atoms are superposed,
...
> (as well as a missed opportunity for a warning in avogadro):  the

I think there are a few things going on here. I thought I got all of these 
bugs, but you clearly found a few more. ;-) In Open Babel, the force field 
implementations need a better penalty on superimposed atoms, particularly for 
the angular terms. This is particularly true for UFF, where people are more 
likely to impose strange valences.

> Does it make sense to have new GetHyb() values, and if so, are 4 and 5
> the right choices?

Yes, it does make sense to have new hybridization values above 3. However, I'd 
use "5" for pentavalent (e.g., PF5), and "6" for octahedral, with "4" reserved 
for square planar (i.e., Pt, Pd, Cu, etc.). It gets harder above this, since 
heavy elements like U can take very high valences. My guess is for these cases, 
it's probably OK for GetHyb() to return 0 as "unknown" and position atoms 
randomly. If someone cares about chiral uranium complexes, they probably 
already have the 3D coordinates for it.

I'll admit that hybridization above 3 has long been on my todo list, so I'm a 
bit embarrassed but also happy that you got it first.

>  Are there hypervalent molecules with double bonds
> which are not tetrahedral in shape (my understanding is H3PO4 is
> tetrahedral around the P atom)?  (Again going on wikipedia, sulfur
> trioxide might be planar, but the UFF optimisation disagrees.  This is
> potentially a bug in the UFF implementation).

Xenon isn't tetrahedral and XeOF4 is a semi-common VSEPR example. There are 
probably some octahedral examples (e.g. SOF4 perhaps?).

I'll have to check the SO3 bug you filed. To be honest, classic UFF doesn't do 
well with hypervalent molecules, but I knew teachers would want the basic VSEPR 
rules enforced. So the Open Babel implementation has some heuristics to 
override the UFF typing rules. There's also some code in there which attempts 
to do pentavalent species correctly.

If you're willing to help test out some of the common and less-common VSEPR 
examples using Avogadro and OB, I'm definitely interested in cleaning up any 
remaining bugs.

I guess one other issue is that there's still code in 
atom.cpp:OBAtom::GetNewBondVector that should be switched to use the new 
OBBuilder code. This would improve issues with implicit hydrogen atoms and 
hypervalent molecules.

Thanks very much,
-Geoff
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
OpenBabel-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to