Hardcoded BOND-CUBIC and BOND-QUARTIC - any option to provide individual parameters? #155
Replies: 1 comment 1 reply
-
Hi Jacek, If all you want to do is change the BOND-CUBIC and BOND-QUARTIC values, those can both be set via keywords of the same name, ie, "bond-cubic -2.0" put into the keyfile would set the cubic value to -2.0. However whatever values are used are "global", meaning the same value will be used for all bonds in the system. Without code changes, TInker cannot use different cubic and quartic values for specific bonds in the same system. If you want to set value for each bond, then new code will be required. I would suggest the easiest way to do that is to read, store and use individual values with each bond parameter. That is not a huge project, but it's not something I want to put into the regular Tinker distribution. Alternatively, if you just want to do this for a small number of particular systems as part of some project, you could modify the "ebond*" routines to hardcode whatever values you want for specific bonds during the energy/force calculations. |
Beta Was this translation helpful? Give feedback.
-
Dear all,
I am interested in providing individual k3 and k4 parameters for bond potentials (page 6, 3.1.1 in [https://tinkerdoc.readthedocs.io/_/downloads/en/latest/pdf/]) in order to have a better description of specific bonds. Since
bond-cubic -2.55
bond-quartic 3.793125
are hardcoded into Tinker, there seems to be no direct option to define bonding potentials more accurately. I was thinking about "simple" workarounds to be able to do so and was wondering if you could give me some advice which of those would be worth a try.
Option:
I suppose adding completely new bonding potentials is not that simple, otherwise this option would already exist?
Option:
If you provide parameters for a certain bond several times, then only the last or first (I'm not sure which one) will be used and the others ignored. Would there be an easy way to prevent this overwrite/ignoring of certain parameters? In this way I could just provide two k_bond parameters and thus modulate the potential curvature. It's not the most elegant approach, and I suppose there might be some issues with proteins or so.
Alternative to Option 1:
Adding the option to provide a second (third) set of bond parameters, which are defined the same as "bond". For instance, having just carbonmonoxide with
bond 1 2 k b0
I would define a second bond potential which is treated exactly the same way as the original. E.g.:
bond_a 1 2 k_a b0_a.
It seem like in this case the bond potential energy script needs to be duplicated and accounted for in other functions.
Another alternative:
Define such a new bond potential "bond_a", and duplicate the function. However, the force constant would be now a factor multiplied with "bond-cubic" and/or "bond-quadric" and where the equilibrium distance is ignored (even if provided). This seems a bit too simple, and too close to Option 0.
I appreciate any advice if any of these ideas make sense.
Thanks in advance,
Jacek
Beta Was this translation helpful? Give feedback.
All reactions