Not sure if I am experiencing a bug, or incomplete feature.
Avogadro version: 1.91.0
Operating system and version: Windows 11
I need to take a single monomer and duplicate it with many unit cells to create a “block” of uniform Nylon 6,6 strands. (pictured below)
When I use the “Build Supercell” feature, it creates a proper supercell (example pictured above), but fails to keep the bonds of the original. Going to “Build>Bond>Bond Atoms” would theoretically solve this, but it makes only single bonds, and the oxygen has a double-bond. This is fine to correct manually for a small supercell, but I need to make very large ones. I’m kind of stuck on what to do, because if the double-bond and other bonds were preserved, using “Build>Bond>Bond Atoms” would be okay since it will only need to create single carbon-carbon bonds.
Not sure how to proceed, or if there is a setting/tool/feature I missed?
Any advice is appreciated.
It’s partly an incomplete feature, and partly an old version that you’re using.
With the newer release, you can choose Bond => Perceive Bond Orders, which will fix your C=O and friends.
The incomplete feature is that yes, building a super cell should copy bond orders, but does not yet. There’s an issue: building supercell adds atoms without bonds · Issue #655 · OpenChemistry/avogadrolibs · GitHub but I haven’t had the time to fix it
Incidentally, I’d be curious if you’re willing to share the supercell, since we don’t have many polymer examples.
Oh, and to be clear, if you have the supercell from the figure above, you can just re-open in 1.97 or later and choose the “Perceive Bond Orders” command and it should fix it up.
The bond order perception code isn’t perfect yet, but for C=O bonds it should have no problems.
Thank you so much for your reply. I have attached the polymer strand “crystal” cell I made for generating the supercell.
Nylon_66_Base_Mol_Unit5.cml (5.5 KB)
I’m still a little confused. If I use this to generate a supercell, then, in any order use “Bond Atoms”, “Perceive Bonds”, or save and re-open the generated supercell, all bonds become single by the end.
There seems to be a bug in the Perceive Bond Orders code. I’ll look at it.