In the context of the WALLS, I compacted Uwalls and Lwalls into a single file (without the update of the documentation from #1111, but with the code correction)
The idea is to remove the repetition (there are only 17 different lines in two files of 158 and 157 lines, which should work in a mirrored way) and get to debug\update a single file.
Then I would like to port something similar also for the non-scalar version of the walls since I think it could bring advantages (no jit and compile-time optimizations and less cache misses).
And since the code itself would be the very same maybe compact also the non-scalar variant into a single one.
What do you think?
This is a constexpr solution, so to back-port it will lose some of it "slimness".
Target release
I would like my code to appear in release ???
Type of contribution
[x] changes to code or doc authored by PLUMED developers, or additions of code in the core or within the default modules
[ ] changes to a module not authored by you
[ ] new module contribution or edit of a module authored by you
Copyright
[ ] I agree to transfer the copyright of the code I have written to the PLUMED developers or to the author of the code I am modifying.
[ ] the module I added or modified contains a COPYRIGHT file with the correct license information. Code should be released under an open source license. I also used the command cd src && ./header.sh mymodulename in order to make sure the headers of the module are correct.
Tests
[ ] I added a new regtest or modified an existing regtest to validate my changes.
[ ] I verified that all regtests are passed successfully on GitHub Actions.
Description
In the context of the WALLS, I compacted Uwalls and Lwalls into a single file (without the update of the documentation from #1111, but with the code correction)
The idea is to remove the repetition (there are only 17 different lines in two files of 158 and 157 lines, which should work in a mirrored way) and get to debug\update a single file. Then I would like to port something similar also for the non-scalar version of the walls since I think it could bring advantages (no jit and compile-time optimizations and less cache misses). And since the code itself would be the very same maybe compact also the non-scalar variant into a single one.
What do you think?
This is a
constexpr
solution, so to back-port it will lose some of it "slimness".Target release
I would like my code to appear in release ???
Type of contribution
Copyright
COPYRIGHT
file with the correct license information. Code should be released under an open source license. I also used the commandcd src && ./header.sh mymodulename
in order to make sure the headers of the module are correct.Tests