Merge pull request #2946 from RosettaCommons/vmullig/hbnet_energy_options
Add alternative ramping options for the HBNet energy
The HBNet energy currently gives a quadratically-ramping bonus for larger and larger hydrogen bond networks. @basantab observed that this results in giant hydrogen bond networks if there is any way at all to form these, at the expense of bad packing or other undesirable features. A "diminishing returns" ramping function might be better.
This pull request adds options for linear, logarithmic, and square root ramping. It also adds an option for a maximum network size, beyond which there's no bonus.
Tasks:
- [x] Add enum for the new ramping types.
- [x] Add different calculators for the bonus function.
- [x] Add means for setting ramping type from flags.
- [x] Add means for setting ramping type from RosettaScripts.
- [x] Unit tests for different ramping types.
- [x] Add option for max network size.
- [x] Modify calculator for max network size.
- [x] Add means for setting max network size from flags.
- [x] Add means for setting max network size from RosettaScripts.
- [x] Unit tests for max network size.
- [x] Documentation for ramping types.
- [x] Documentation for max network size.
- [x] Beauty.