mbuild
mbuild copied to clipboard
Add optional `add_bond` argument to `Pattern.apply_to_compound()`
The Pattern.apply_to_compound() method attaches copies of one Compound to another Compound and adds bonds between them. I think it would be useful to have the addition of bonds be optional (although this could still be the default behavior). For example, the use-case where I'm running into problems is in trying to construct a tethered nanoparticle, where I want to add tethers at locations designated by Ports on the nanoparticle, but do not want to add a bond between them. Currently, if I create a Pattern for how my tethers should be arranged and use apply_to_compound to place the tethers in this arrangement on the nanoparticle, I end up with bonds that I do not want. There are several work-arounds to solve this problem, but I think adding an optional add_bond argument to Pattern.apply_to_compound() would be a nice addition.
Should be easy enough to pass that arg through to force_overlap. Slightly less pretty question is do you allow users to independently control backfill and guest bonding?
Yes, just passing add_bond to force_overlap was what I had in mind. Not sure what the best approach is concerning controlling bonding of guest vs. backfill. Adding two arguments (e.g. add_bonds_guest and add_bonds_backfill) seems sloppy... Maybe just having one add_bonds argument and having the options be True(default), False, guest-only, and backfill-only?