Implement "meta" pull-coordinates
We would like to extend the library of pull coordinates with some of the most used ones. So we should implement:
- A non-linear transformation of an existing pull coordinate using some sigmoidal function. Todo: decide which functional forms, likely a subset of what Plumed supports. Todo: decide on a name
- A linear combination of existing pull coordinates. Parameters N pull groups and N coefficients. These "meta" coordinates can be mostly treated as normal pull coordinates. But the, obviously, take pull coordinates as input instead of normal coordinates and output forces that should be passed to other pull groups. The implementation should loop sequentially over pull coordinates to compute the coordinates and sequentially backwards to distribute the forces. That way everything will work when these new meta coordinates only take pull coordinates with lower index then their own index (this requirement should be checked).
For using these meta pull coordinates the user should normally set the force constant of the underlying pull coordinates to zero. That way only the meta pull coordinate acts and the user can still get observables for the underlying pull coordinates. This should be added to the documentation.
Oliver Fleetwood volunteered to implement this, but as of now it is unclear if he will have sufficient time to finish this before the 2021 deadline.