I did some modification to the Benchmark.
After removing a few warnings and adding some const, I added a few options for the "simulated atoms" and changed how existing one, "the line", works.
The options that I added are:
an uniform distributed cube
an uniform distributed sphere
two uniform distributed sphere that should not touch each other
a static "simple cubic" distribution
the distributed ones are randomly generated at each step, so I think that are not suited to test a neigbour list
the simple cubic do not change with advancing steps, but I may add to it a way to make the atoms "oscillate" around their positions
because the first version produces on step 0 all atoms in the same (0,1,2) position, and then a series of atoms each one at distance (s,s,s) from the previous one, where s is the current step number, and this brings some actions, like COORDINATION, to skip the costly part of the calculation.
I think keeping "the line" is important to check that that component in some actions works.
These modifications also add a "contract" with the user: the uniformly distributed configuration are made such that in average each atom has a volume of 1: with nat being the number of atoms, the volume of the cube is nat, the volume of the sphere is nat and the sum of the volumes of the two spheres is again nat.
Similarly the atoms on the line oscillate on a linear grid with step 1 and the a for the grid of the simple cubic is 1.
All the distribution, except from the line now return a box.
Target release
I would like my code to appear in release 2.10
Type of contribution
[ ] 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.
unrelated: Random::RandInt is declared, but not implemented
Description
I did some modification to the Benchmark. After removing a few warnings and adding some
const
, I added a few options for the "simulated atoms" and changed how existing one, "the line", works.The options that I added are:
the distributed ones are randomly generated at each step, so I think that are not suited to test a neigbour list the simple cubic do not change with advancing steps, but I may add to it a way to make the atoms "oscillate" around their positions
The original line was adjusted from
to
because the first version produces on step 0 all atoms in the same
(0,1,2)
position, and then a series of atoms each one at distance(s,s,s)
from the previous one, wheres
is the current step number, and this brings some actions, like COORDINATION, to skip the costly part of the calculation. I think keeping "the line" is important to check that that component in some actions works.These modifications also add a "contract" with the user: the uniformly distributed configuration are made such that in average each atom has a volume of 1: with
nat
being the number of atoms, the volume of the cube isnat
, the volume of the sphere isnat
and the sum of the volumes of the two spheres is againnat
. Similarly the atoms on the line oscillate on a linear grid with step1
and thea
for the grid of the simple cubic is1
.All the distribution, except from the line now return a box.
Target release
I would like my code to appear in release 2.10
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
unrelated:
Random::RandInt
is declared, but not implemented