Skip to content

Conversation

@fabsugar
Copy link
Contributor

Dear All,
the branch meta_reflection includes important modifications of the metadynamics code (colvarbias_meta.*) which allow to correct known artifacts of metadynamics at the boundaries of the collective variables (either natural boundaries or added through flat bottom potentials).
Namely, I implemented the reflection of the metadynamics Gaussians through the boundaries and an additional feature that removes the biasing forces beyond the boundaries (so that those forces smoothly go to zero beyond the boundaries). The implementation is specifically designed to be general and applicable to any dimensionality. The output pmf and bias energy includes those corrections (e.g. it remains flat beyond the border of a given collective variable while keeping the same shape across the others).
This feature also solves the need to add explicit Gaussians beyond the boundaries, which is computationally inefficient (and currently might need some fix).
The new feature is simple to use, it only requires the keyword "hills_reflection on" and automatically works on the default boundaries. Upon activating it the users will be able to run long metadynamics simulations of any dimensionality without developing the large errors at the boundaries that are currently present and that become larger and larger as the simulation goes on.
The new feature is fully tested on different systems up to a dimensionality of four.
The meta_reflection branch was merging fine with the master branch up to mid January, right now there is some minor conflict.
All the best,
Fabrizio

@giacomofiorin
Copy link
Member

Looking at the state of the history a squash-merge (i.e. merging all commits into one commit) may be appropriate when this PR is ready.

The conflict is near the function where the hills are added in the multiple walkers case. Have you been able to test that combination of features before the conflicts became worse?

@giacomofiorin
Copy link
Member

P.S. I tried resolving the conflicts in the meta_reflection_squash branch.

@fabsugar
Copy link
Contributor Author

fabsugar commented Apr 18, 2023 via email

@giacomofiorin
Copy link
Member

Sounds good. You could also start from meta_reflection_squash

@fabsugar
Copy link
Contributor Author

fabsugar commented Apr 18, 2023 via email

@giacomofiorin giacomofiorin force-pushed the meta_reflection branch 2 times, most recently from ffb677b to 6e7559f Compare May 3, 2023 13:37
@giacomofiorin giacomofiorin changed the title Meta reflection Implement reflecting boundary conditions for metadynamics bias Oct 24, 2024
fabsugar and others added 23 commits May 5, 2025 14:30
checkval-getsum>=0 required to make things work
must be put back at the border when coordinates go out of the reflection border
…mit of reflection is in the boundary

before correction was handling most of cases but now should be fine in every case
by using get_colvar_index_bound to treat vaules out of the boundary (which are projected inside the closest boundary).
Additionally curr_values are now defined as a general variable to avoid define a new variable every time
functions are called
…xes the seg fault when using

multiple replicas
…r non scalar variables as reflection is focused on scalae CVs and has not been tested for a mix of scalar and vetor variables (but might work).
…should be set on automatically when using grids
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants