lumol-org / lumol

Universal extensible molecular simulation engine
http://lumol.org/
BSD 3-Clause "New" or "Revised" License
184 stars 18 forks source link

Ewald: use all k-vectors in reciprocal space #237

Closed Luthaf closed 6 years ago

Luthaf commented 6 years ago

This should be good now, and I added tests for all the components of the NIST reference data.

The new implementation takes inspiration from LAMMPS, specially the linearisation of most of the arrays in EwaldFactors. It is way faster (I'll run the benchmarks on the whole PR), except in the energy calculation, which is slower. I'll try to profile and fix this before merging the code.


But there is still an issue somewhere, as these input files (MC NPT 300 K / 30 bar) give me this output (notice how the pressure converges to -6000 bar ...): properties

There might be something wrong in my input files, but I can't see it. Or there might be a bug with MC Resize move, but a simple LJ fluid works (we have a test and I ran a longer simulation). Or there might be a bug in Ewald virial/pressure, but it looks like not given all the unit tests pass. I am really puzzled by this ...

g-bauer commented 6 years ago

Mhm there are no NIST data points for the forces (at least not that I am aware of). I could evaluate the NIST configurations via LAMMPS / GROMACS / Cassandra / our institute code using Ewald and write out the forces so that we have an idea of the magnitude.

I'll have another look at the resize move. If the energy implementation is correct we should at least get the correct density, right?

Edit: Could you give me a hint where to find the force field parameters (Publication)?

Luthaf commented 6 years ago

benchmark output is hard to read because I renamed benchmark. #238 contains only the three first commits of this PR, when it is merged I'll rebase and re-run the benchmarks.

Luthaf commented 6 years ago

Edit: Could you give me a hint where to find the force field parameters (Publication)?

Sorry, I did not see your edit. You mean the NaCl parameters? If so, I used the first set of parameters I could find, which was http://scitation.aip.org/content/aip/journal/jcp/137/6/10.1063/1.4742068.

Concerning running against LAMMPS/GROMACS/Cassandra, this is a good idea! I'll do it with LAMMPS.

Luthaf commented 6 years ago

Comparing to master ()

using --threshold 2, latest commit first

b68f913 Allow to set alpha from the input files

```bash name .txt ns/iter b68f913.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 62,691 (+/- 51092) -6,458 -9.34% x 1.10 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 88,687 (+/- 32831) -160,032 -64.34% x 2.80 nacl::ewald::energy 469,783 (+/- 352283) 829,291 (+/- 475963) 359,508 76.53% x 0.57 nacl::ewald::forces 1,917,956 (+/- 148024) 1,474,763 (+/- 643763) -443,193 -23.11% x 1.30 nacl::ewald::virial 3,834,805 (+/- 478712) 845,187 (+/- 472377) -2,989,618 -77.96% x 4.54 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 73,412 (+/- 12084) 4,385 6.35% x 0.94 nacl::wolf::virial 81,165 (+/- 3491) 83,195 (+/- 3940) 2,030 2.50% x 0.98 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,043,332 (+/- 233080) -38,353 -3.55% x 1.04 propane::cache_move_particles 309,640 (+/- 253933) 317,979 (+/- 286504) 8,339 2.69% x 0.97 propane::energy 332,457 (+/- 18487) 340,690 (+/- 22594) 8,233 2.48% x 0.98 propane::forces 548,230 (+/- 151489) 568,797 (+/- 144124) 20,567 3.75% x 0.96 water::ewald::cache_move_particles 549,693 (+/- 92086) 326,247 (+/- 108472) -223,446 -40.65% x 1.68 water::ewald::energy 555,485 (+/- 189312) 1,018,900 (+/- 309939) 463,415 83.43% x 0.55 water::ewald::forces 2,627,183 (+/- 272543) 1,830,796 (+/- 675827) -796,387 -30.31% x 1.43 water::ewald::virial 5,442,843 (+/- 422783) 1,053,196 (+/- 525775) -4,389,647 -80.65% x 5.17 ```

bda08b5 Change the default value of alpha to PI/rc for Ewald

```bash name .txt ns/iter bda08b5.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 72,609 (+/- 66283) 3,460 5.00% x 0.95 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 98,043 (+/- 33645) -150,676 -60.58% x 2.54 nacl::ewald::energy 469,783 (+/- 352283) 821,459 (+/- 491447) 351,676 74.86% x 0.57 nacl::ewald::forces 1,917,956 (+/- 148024) 1,473,871 (+/- 708242) -444,085 -23.15% x 1.30 nacl::ewald::virial 3,834,805 (+/- 478712) 837,494 (+/- 522853) -2,997,311 -78.16% x 4.58 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 77,633 (+/- 18399) 8,606 12.47% x 0.89 nacl::wolf::forces 178,427 (+/- 8648) 186,325 (+/- 7493) 7,898 4.43% x 0.96 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,210,864 (+/- 628284) 129,179 11.94% x 0.89 propane::cache_move_particles 309,640 (+/- 253933) 274,035 (+/- 216561) -35,605 -11.50% x 1.13 propane::forces 548,230 (+/- 151489) 574,460 (+/- 155753) 26,230 4.78% x 0.95 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,096,382 (+/- 1560560) 185,182 3.13% x 0.97 water::ewald::cache_move_particles 549,693 (+/- 92086) 318,167 (+/- 117337) -231,526 -42.12% x 1.73 water::ewald::energy 555,485 (+/- 189312) 963,784 (+/- 632006) 408,299 73.50% x 0.58 water::ewald::forces 2,627,183 (+/- 272543) 1,586,927 (+/- 733992) -1,040,256 -39.60% x 1.66 water::ewald::virial 5,442,843 (+/- 422783) 1,026,268 (+/- 515939) -4,416,575 -81.14% x 5.30 water::wolf::energy 93,753 (+/- 5026) 91,336 (+/- 4746) -2,417 -2.58% x 1.03 ```

82b2b5d Check forces and virial against LAMMPS for NIST SPC/E reference configuration

```bash name .txt ns/iter 82b2b5d.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 72,581 (+/- 64407) 3,432 4.96% x 0.95 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 82,955 (+/- 31808) -165,764 -66.65% x 3.00 nacl::ewald::energy 469,783 (+/- 352283) 811,772 (+/- 659499) 341,989 72.80% x 0.58 nacl::ewald::forces 1,917,956 (+/- 148024) 1,419,434 (+/- 540561) -498,522 -25.99% x 1.35 nacl::ewald::virial 3,834,805 (+/- 478712) 852,802 (+/- 580018) -2,982,003 -77.76% x 4.50 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 71,331 (+/- 6385) 2,304 3.34% x 0.97 nacl::wolf::forces 178,427 (+/- 8648) 182,893 (+/- 11865) 4,466 2.50% x 0.98 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,127,571 (+/- 858336) 45,886 4.24% x 0.96 propane::cache_move_particles 309,640 (+/- 253933) 277,176 (+/- 170841) -32,464 -10.48% x 1.12 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,236,960 (+/- 1718367) 325,760 5.51% x 0.95 water::ewald::cache_move_particles 549,693 (+/- 92086) 361,432 (+/- 118433) -188,261 -34.25% x 1.52 water::ewald::energy 555,485 (+/- 189312) 970,007 (+/- 372006) 414,522 74.62% x 0.57 water::ewald::forces 2,627,183 (+/- 272543) 1,816,071 (+/- 742505) -811,112 -30.87% x 1.45 water::ewald::virial 5,442,843 (+/- 422783) 1,012,954 (+/- 379924) -4,429,889 -81.39% x 5.37 water::wolf::energy 93,753 (+/- 5026) 91,706 (+/- 5522) -2,047 -2.18% x 1.02 water::wolf::forces 209,992 (+/- 7317) 217,857 (+/- 6119) 7,865 3.75% x 0.96 ```

6efe35d Add a test for W = with Ewald

```bash name .txt ns/iter 6efe35d.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 77,571 (+/- 75964) 8,422 12.18% x 0.89 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 90,282 (+/- 27388) -158,437 -63.70% x 2.75 nacl::ewald::energy 469,783 (+/- 352283) 826,756 (+/- 543429) 356,973 75.99% x 0.57 nacl::ewald::forces 1,917,956 (+/- 148024) 1,472,991 (+/- 577585) -444,965 -23.20% x 1.30 nacl::ewald::virial 3,834,805 (+/- 478712) 831,165 (+/- 620247) -3,003,640 -78.33% x 4.61 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 74,820 (+/- 9361) 5,793 8.39% x 0.92 nacl::wolf::forces 178,427 (+/- 8648) 184,344 (+/- 8293) 5,917 3.32% x 0.97 nacl::wolf::virial 81,165 (+/- 3491) 84,081 (+/- 5194) 2,916 3.59% x 0.97 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,052,044 (+/- 3821) -29,641 -2.74% x 1.03 propane::cache_move_particles 309,640 (+/- 253933) 261,501 (+/- 75848) -48,139 -15.55% x 1.18 propane::forces 548,230 (+/- 151489) 582,958 (+/- 176546) 34,728 6.33% x 0.94 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,175,911 (+/- 1727520) 264,711 4.48% x 0.96 water::ewald::cache_move_particles 549,693 (+/- 92086) 303,538 (+/- 45985) -246,155 -44.78% x 1.81 water::ewald::energy 555,485 (+/- 189312) 958,409 (+/- 231552) 402,924 72.54% x 0.58 water::ewald::forces 2,627,183 (+/- 272543) 1,664,122 (+/- 744246) -963,061 -36.66% x 1.58 water::ewald::virial 5,442,843 (+/- 422783) 1,030,982 (+/- 682846) -4,411,861 -81.06% x 5.28 water::wolf::energy 93,753 (+/- 5026) 91,520 (+/- 4101) -2,233 -2.38% x 1.02 ```

fd1e00c Replace UnitCell::reciprocal_vectors by k_vector

```bash name .txt ns/iter fd1e00c.txt ns/iter diff ns/iter diff % speedup argon::energy 172,989 (+/- 13012) 176,688 (+/- 17094) 3,699 2.14% x 0.98 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 86,996 (+/- 29127) -161,723 -65.02% x 2.86 nacl::ewald::energy 469,783 (+/- 352283) 798,918 (+/- 476357) 329,135 70.06% x 0.59 nacl::ewald::forces 1,917,956 (+/- 148024) 1,125,247 (+/- 347859) -792,709 -41.33% x 1.70 nacl::ewald::virial 3,834,805 (+/- 478712) 831,530 (+/- 610926) -3,003,275 -78.32% x 4.61 nacl::wolf::forces 178,427 (+/- 8648) 184,841 (+/- 8148) 6,414 3.59% x 0.97 nacl::wolf::virial 81,165 (+/- 3491) 83,118 (+/- 3159) 1,953 2.41% x 0.98 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,309,455 (+/- 1033986) 227,770 21.06% x 0.83 propane::cache_move_particles 309,640 (+/- 253933) 259,572 (+/- 125157) -50,068 -16.17% x 1.19 propane::energy 332,457 (+/- 18487) 339,326 (+/- 15559) 6,869 2.07% x 0.98 propane::forces 548,230 (+/- 151489) 572,964 (+/- 125223) 24,734 4.51% x 0.96 water::ewald::cache_move_particles 549,693 (+/- 92086) 316,438 (+/- 39536) -233,255 -42.43% x 1.74 water::ewald::energy 555,485 (+/- 189312) 1,005,189 (+/- 433452) 449,704 80.96% x 0.55 water::ewald::forces 2,627,183 (+/- 272543) 1,794,745 (+/- 704869) -832,438 -31.69% x 1.46 water::ewald::virial 5,442,843 (+/- 422783) 1,035,941 (+/- 243377) -4,406,902 -80.97% x 5.25 water::wolf::energy 93,753 (+/- 5026) 91,787 (+/- 3714) -1,966 -2.10% x 1.02 ```

1739aa3 Added Vector3D min and max helper methods

```bash name .txt ns/iter 1739aa3.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 78,657 (+/- 70559) 9,508 13.75% x 0.88 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 89,485 (+/- 32447) -159,234 -64.02% x 2.78 nacl::ewald::energy 469,783 (+/- 352283) 823,128 (+/- 704818) 353,345 75.21% x 0.57 nacl::ewald::forces 1,917,956 (+/- 148024) 1,122,757 (+/- 467980) -795,199 -41.46% x 1.71 nacl::ewald::virial 3,834,805 (+/- 478712) 838,097 (+/- 577580) -2,996,708 -78.14% x 4.58 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 64,403 (+/- 8635) -4,624 -6.70% x 1.07 nacl::wolf::forces 178,427 (+/- 8648) 186,238 (+/- 5802) 7,811 4.38% x 0.96 propane::cache_move_particles 309,640 (+/- 253933) 286,774 (+/- 211208) -22,866 -7.38% x 1.08 propane::forces 548,230 (+/- 151489) 571,067 (+/- 156061) 22,837 4.17% x 0.96 water::ewald::cache_move_particles 549,693 (+/- 92086) 328,301 (+/- 112237) -221,392 -40.28% x 1.67 water::ewald::energy 555,485 (+/- 189312) 978,843 (+/- 439732) 423,358 76.21% x 0.57 water::ewald::forces 2,627,183 (+/- 272543) 1,362,795 (+/- 692101) -1,264,388 -48.13% x 1.93 water::ewald::virial 5,442,843 (+/- 422783) 1,058,710 (+/- 516113) -4,384,133 -80.55% x 5.14 water::wolf::energy 93,753 (+/- 5026) 91,380 (+/- 3851) -2,373 -2.53% x 1.03 water::wolf::forces 209,992 (+/- 7317) 214,511 (+/- 10473) 4,519 2.15% x 0.98 ```

efc8c82 It is impossible to scale infinite cells

```bash name .txt ns/iter efc8c82.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 57,899 (+/- 14826) -11,250 -16.27% x 1.19 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 83,819 (+/- 31986) -164,900 -66.30% x 2.97 nacl::ewald::energy 469,783 (+/- 352283) 824,403 (+/- 325189) 354,620 75.49% x 0.57 nacl::ewald::forces 1,917,956 (+/- 148024) 1,524,044 (+/- 612614) -393,912 -20.54% x 1.26 nacl::ewald::virial 3,834,805 (+/- 478712) 840,913 (+/- 488294) -2,993,892 -78.07% x 4.56 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 70,853 (+/- 9100) 1,826 2.65% x 0.97 nacl::wolf::forces 178,427 (+/- 8648) 182,368 (+/- 5867) 3,941 2.21% x 0.98 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,027,831 (+/- 774772) -53,854 -4.98% x 1.05 propane::cache_move_particles 309,640 (+/- 253933) 264,488 (+/- 181195) -45,152 -14.58% x 1.17 propane::energy 332,457 (+/- 18487) 339,505 (+/- 25057) 7,048 2.12% x 0.98 propane::forces 548,230 (+/- 151489) 597,985 (+/- 140404) 49,755 9.08% x 0.92 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,279,026 (+/- 1816412) 367,826 6.22% x 0.94 water::ewald::cache_move_particles 549,693 (+/- 92086) 347,155 (+/- 125888) -202,538 -36.85% x 1.58 water::ewald::energy 555,485 (+/- 189312) 1,018,807 (+/- 128195) 463,322 83.41% x 0.55 water::ewald::forces 2,627,183 (+/- 272543) 1,462,384 (+/- 739963) -1,164,799 -44.34% x 1.80 water::ewald::virial 5,442,843 (+/- 422783) 1,031,983 (+/- 378460) -4,410,860 -81.04% x 5.27 water::wolf::cache_move_all_rigid_molecules 5,777,892 (+/- 1454360) 5,607,204 (+/- 1352124) -170,688 -2.95% x 1.03 water::wolf::cache_move_particles 310,513 (+/- 53007) 287,653 (+/- 41331) -22,860 -7.36% x 1.08 water::wolf::forces 209,992 (+/- 7317) 214,802 (+/- 5589) 4,810 2.29% x 0.98 ```

012bd9c Rename UnitCell::new => UnitCell::infinite

```bash name .txt ns/iter 012bd9c.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 77,602 (+/- 87832) 8,453 12.22% x 0.89 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 95,167 (+/- 32499) -153,552 -61.74% x 2.61 nacl::ewald::energy 469,783 (+/- 352283) 805,017 (+/- 318278) 335,234 71.36% x 0.58 nacl::ewald::forces 1,917,956 (+/- 148024) 1,423,630 (+/- 696231) -494,326 -25.77% x 1.35 nacl::ewald::virial 3,834,805 (+/- 478712) 812,001 (+/- 457908) -3,022,804 -78.83% x 4.72 nacl::wolf::forces 178,427 (+/- 8648) 182,604 (+/- 8035) 4,177 2.34% x 0.98 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,150,193 (+/- 1017295) 68,508 6.33% x 0.94 propane::cache_move_particles 309,640 (+/- 253933) 286,909 (+/- 198734) -22,731 -7.34% x 1.08 propane::energy 332,457 (+/- 18487) 339,365 (+/- 24337) 6,908 2.08% x 0.98 propane::forces 548,230 (+/- 151489) 593,898 (+/- 151388) 45,668 8.33% x 0.92 water::ewald::cache_move_particles 549,693 (+/- 92086) 313,014 (+/- 41259) -236,679 -43.06% x 1.76 water::ewald::energy 555,485 (+/- 189312) 981,811 (+/- 260072) 426,326 76.75% x 0.57 water::ewald::forces 2,627,183 (+/- 272543) 1,503,842 (+/- 644464) -1,123,341 -42.76% x 1.75 water::ewald::virial 5,442,843 (+/- 422783) 1,064,833 (+/- 217548) -4,378,010 -80.44% x 5.11 water::wolf::forces 209,992 (+/- 7317) 203,949 (+/- 6154) -6,043 -2.88% x 1.03 ```

45e0c3d Check all components of NIST SPCE reference data

```bash name .txt ns/iter 45e0c3d.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 56,090 (+/- 15375) -13,059 -18.89% x 1.23 argon::forces 340,547 (+/- 9890) 353,607 (+/- 12285) 13,060 3.84% x 0.96 argon::virial 224,034 (+/- 22409) 217,238 (+/- 18961) -6,796 -3.03% x 1.03 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 95,002 (+/- 44970) -153,717 -61.80% x 2.62 nacl::ewald::energy 469,783 (+/- 352283) 782,000 (+/- 566543) 312,217 66.46% x 0.60 nacl::ewald::forces 1,917,956 (+/- 148024) 1,320,923 (+/- 590172) -597,033 -31.13% x 1.45 nacl::ewald::virial 3,834,805 (+/- 478712) 836,989 (+/- 490740) -2,997,816 -78.17% x 4.58 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 71,581 (+/- 10325) 2,554 3.70% x 0.96 nacl::wolf::forces 178,427 (+/- 8648) 183,272 (+/- 7871) 4,845 2.72% x 0.97 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,039,468 (+/- 817001) -42,217 -3.90% x 1.04 propane::cache_move_particles 309,640 (+/- 253933) 280,799 (+/- 40065) -28,841 -9.31% x 1.10 propane::forces 548,230 (+/- 151489) 584,541 (+/- 118006) 36,311 6.62% x 0.94 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,040,493 (+/- 1533356) 129,293 2.19% x 0.98 water::ewald::cache_move_particles 549,693 (+/- 92086) 310,647 (+/- 114252) -239,046 -43.49% x 1.77 water::ewald::energy 555,485 (+/- 189312) 1,002,662 (+/- 651961) 447,177 80.50% x 0.55 water::ewald::forces 2,627,183 (+/- 272543) 1,812,886 (+/- 720630) -814,297 -31.00% x 1.45 water::ewald::virial 5,442,843 (+/- 422783) 1,022,481 (+/- 337457) -4,420,362 -81.21% x 5.32 water::wolf::forces 209,992 (+/- 7317) 216,305 (+/- 37461) 6,313 3.01% x 0.97 ```

4ebb118 Add Ewald missing k-vectors

```bash name .txt ns/iter 4ebb118.txt ns/iter diff ns/iter diff % speedup argon::cache_move_particle 69,149 (+/- 64367) 79,538 (+/- 81445) 10,389 15.02% x 0.87 nacl::ewald::cache_move_particle 248,719 (+/- 2202) 94,548 (+/- 31499) -154,171 -61.99% x 2.63 nacl::ewald::energy 469,783 (+/- 352283) 837,846 (+/- 618868) 368,063 78.35% x 0.56 nacl::ewald::forces 1,917,956 (+/- 148024) 1,438,295 (+/- 673503) -479,661 -25.01% x 1.33 nacl::ewald::virial 3,834,805 (+/- 478712) 848,342 (+/- 434851) -2,986,463 -77.88% x 4.52 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 75,745 (+/- 13000) 6,718 9.73% x 0.91 propane::cache_move_all_rigid_molecules 1,081,685 (+/- 1111948) 1,319,826 (+/- 873583) 238,141 22.02% x 0.82 propane::cache_move_particles 309,640 (+/- 253933) 324,109 (+/- 288299) 14,469 4.67% x 0.96 propane::forces 548,230 (+/- 151489) 565,699 (+/- 124565) 17,469 3.19% x 0.97 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,111,125 (+/- 1434539) 199,925 3.38% x 0.97 water::ewald::cache_move_particles 549,693 (+/- 92086) 309,667 (+/- 38933) -240,026 -43.67% x 1.78 water::ewald::energy 555,485 (+/- 189312) 985,902 (+/- 262247) 430,417 77.48% x 0.56 water::ewald::forces 2,627,183 (+/- 272543) 1,656,015 (+/- 699753) -971,168 -36.97% x 1.59 water::ewald::virial 5,442,843 (+/- 422783) 1,028,429 (+/- 223034) -4,414,414 -81.10% x 5.29 water::wolf::energy 93,753 (+/- 5026) 91,746 (+/- 4211) -2,007 -2.14% x 1.02 ```

b008d18 Update dependencies with little to no breakage

```bash name .txt ns/iter b008d18.txt ns/iter diff ns/iter diff % speedup nacl::ewald::cache_move_particle 248,719 (+/- 2202) 277,556 (+/- 65577) 28,837 11.59% x 0.90 nacl::wolf::cache_move_particle 69,027 (+/- 8643) 72,206 (+/- 12488) 3,179 4.61% x 0.96 propane::cache_move_particles 309,640 (+/- 253933) 261,834 (+/- 164489) -47,806 -15.44% x 1.18 propane::forces 548,230 (+/- 151489) 594,570 (+/- 133374) 46,340 8.45% x 0.92 water::ewald::cache_move_all_rigid_molecules 5,911,200 (+/- 1005892) 6,203,805 (+/- 1077074) 292,605 4.95% x 0.95 water::ewald::cache_move_particles 549,693 (+/- 92086) 519,238 (+/- 87334) -30,455 -5.54% x 1.06 water::ewald::energy 555,485 (+/- 189312) 574,663 (+/- 270854) 19,178 3.45% x 0.97 water::wolf::cache_move_all_rigid_molecules 5,777,892 (+/- 1454360) 5,926,356 (+/- 1315421) 148,464 2.57% x 0.97 ```

Individual benchmarks

b68f913 Allow to set alpha from the input files

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 62,691 ns/iter (+/- 51,092) test argon::energy ... bench: 173,778 ns/iter (+/- 13,518) test argon::forces ... bench: 340,406 ns/iter (+/- 10,405) test argon::virial ... bench: 220,205 ns/iter (+/- 17,111) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 88,687 ns/iter (+/- 32,831) test nacl::ewald::energy ... bench: 829,291 ns/iter (+/- 475,963) test nacl::ewald::forces ... bench: 1,474,763 ns/iter (+/- 643,763) test nacl::ewald::virial ... bench: 845,187 ns/iter (+/- 472,377) test nacl::wolf::cache_move_particle ... bench: 73,412 ns/iter (+/- 12,084) test nacl::wolf::energy ... bench: 73,910 ns/iter (+/- 3,148) test nacl::wolf::forces ... bench: 179,037 ns/iter (+/- 6,793) test nacl::wolf::virial ... bench: 83,195 ns/iter (+/- 3,940) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,043,332 ns/iter (+/- 233,080) test propane::cache_move_particles ... bench: 317,979 ns/iter (+/- 286,504) test propane::energy ... bench: 340,690 ns/iter (+/- 22,594) test propane::forces ... bench: 568,797 ns/iter (+/- 144,124) test propane::virial ... bench: 167,601 ns/iter (+/- 19,734) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 5,941,101 ns/iter (+/- 1,526,472) test water::ewald::cache_move_particles ... bench: 326,247 ns/iter (+/- 108,472) test water::ewald::energy ... bench: 1,018,900 ns/iter (+/- 309,939) test water::ewald::forces ... bench: 1,830,796 ns/iter (+/- 675,827) test water::ewald::virial ... bench: 1,053,196 ns/iter (+/- 525,775) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,777,754 ns/iter (+/- 1,308,659) test water::wolf::cache_move_particles ... bench: 306,359 ns/iter (+/- 59,175) test water::wolf::energy ... bench: 92,746 ns/iter (+/- 4,414) test water::wolf::forces ... bench: 214,142 ns/iter (+/- 5,671) test water::wolf::virial ... bench: 106,394 ns/iter (+/- 5,406) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

bda08b5 Change the default value of alpha to PI/rc for Ewald

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 72,609 ns/iter (+/- 66,283) test argon::energy ... bench: 174,817 ns/iter (+/- 18,265) test argon::forces ... bench: 335,765 ns/iter (+/- 22,324) test argon::virial ... bench: 221,710 ns/iter (+/- 17,551) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 98,043 ns/iter (+/- 33,645) test nacl::ewald::energy ... bench: 821,459 ns/iter (+/- 491,447) test nacl::ewald::forces ... bench: 1,473,871 ns/iter (+/- 708,242) test nacl::ewald::virial ... bench: 837,494 ns/iter (+/- 522,853) test nacl::wolf::cache_move_particle ... bench: 77,633 ns/iter (+/- 18,399) test nacl::wolf::energy ... bench: 73,509 ns/iter (+/- 3,176) test nacl::wolf::forces ... bench: 186,325 ns/iter (+/- 7,493) test nacl::wolf::virial ... bench: 82,554 ns/iter (+/- 3,644) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,210,864 ns/iter (+/- 628,284) test propane::cache_move_particles ... bench: 274,035 ns/iter (+/- 216,561) test propane::energy ... bench: 337,231 ns/iter (+/- 23,511) test propane::forces ... bench: 574,460 ns/iter (+/- 155,753) test propane::virial ... bench: 167,741 ns/iter (+/- 11,563) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,096,382 ns/iter (+/- 1,560,560) test water::ewald::cache_move_particles ... bench: 318,167 ns/iter (+/- 117,337) test water::ewald::energy ... bench: 963,784 ns/iter (+/- 632,006) test water::ewald::forces ... bench: 1,586,927 ns/iter (+/- 733,992) test water::ewald::virial ... bench: 1,026,268 ns/iter (+/- 515,939) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,827,586 ns/iter (+/- 1,107,152) test water::wolf::cache_move_particles ... bench: 309,708 ns/iter (+/- 57,137) test water::wolf::energy ... bench: 91,336 ns/iter (+/- 4,746) test water::wolf::forces ... bench: 211,824 ns/iter (+/- 12,347) test water::wolf::virial ... bench: 104,592 ns/iter (+/- 5,116) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

82b2b5d Check forces and virial against LAMMPS for NIST SPC/E reference configuration

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 72,581 ns/iter (+/- 64,407) test argon::energy ... bench: 174,126 ns/iter (+/- 14,605) test argon::forces ... bench: 344,947 ns/iter (+/- 10,107) test argon::virial ... bench: 223,005 ns/iter (+/- 25,136) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 82,955 ns/iter (+/- 31,808) test nacl::ewald::energy ... bench: 811,772 ns/iter (+/- 659,499) test nacl::ewald::forces ... bench: 1,419,434 ns/iter (+/- 540,561) test nacl::ewald::virial ... bench: 852,802 ns/iter (+/- 580,018) test nacl::wolf::cache_move_particle ... bench: 71,331 ns/iter (+/- 6,385) test nacl::wolf::energy ... bench: 73,172 ns/iter (+/- 2,756) test nacl::wolf::forces ... bench: 182,893 ns/iter (+/- 11,865) test nacl::wolf::virial ... bench: 80,909 ns/iter (+/- 3,189) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,127,571 ns/iter (+/- 858,336) test propane::cache_move_particles ... bench: 277,176 ns/iter (+/- 170,841) test propane::energy ... bench: 336,223 ns/iter (+/- 19,386) test propane::forces ... bench: 547,536 ns/iter (+/- 106,662) test propane::virial ... bench: 169,676 ns/iter (+/- 9,601) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,236,960 ns/iter (+/- 1,718,367) test water::ewald::cache_move_particles ... bench: 361,432 ns/iter (+/- 118,433) test water::ewald::energy ... bench: 970,007 ns/iter (+/- 372,006) test water::ewald::forces ... bench: 1,816,071 ns/iter (+/- 742,505) test water::ewald::virial ... bench: 1,012,954 ns/iter (+/- 379,924) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,887,224 ns/iter (+/- 1,261,630) test water::wolf::cache_move_particles ... bench: 308,311 ns/iter (+/- 59,939) test water::wolf::energy ... bench: 91,706 ns/iter (+/- 5,522) test water::wolf::forces ... bench: 217,857 ns/iter (+/- 6,119) test water::wolf::virial ... bench: 104,376 ns/iter (+/- 5,265) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

6efe35d Add a test for W = with Ewald

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 77,571 ns/iter (+/- 75,964) test argon::energy ... bench: 174,350 ns/iter (+/- 17,721) test argon::forces ... bench: 345,367 ns/iter (+/- 9,848) test argon::virial ... bench: 222,151 ns/iter (+/- 21,655) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 90,282 ns/iter (+/- 27,388) test nacl::ewald::energy ... bench: 826,756 ns/iter (+/- 543,429) test nacl::ewald::forces ... bench: 1,472,991 ns/iter (+/- 577,585) test nacl::ewald::virial ... bench: 831,165 ns/iter (+/- 620,247) test nacl::wolf::cache_move_particle ... bench: 74,820 ns/iter (+/- 9,361) test nacl::wolf::energy ... bench: 74,006 ns/iter (+/- 3,154) test nacl::wolf::forces ... bench: 184,344 ns/iter (+/- 8,293) test nacl::wolf::virial ... bench: 84,081 ns/iter (+/- 5,194) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,052,044 ns/iter (+/- 3,821) test propane::cache_move_particles ... bench: 261,501 ns/iter (+/- 75,848) test propane::energy ... bench: 338,713 ns/iter (+/- 19,868) test propane::forces ... bench: 582,958 ns/iter (+/- 176,546) test propane::virial ... bench: 169,393 ns/iter (+/- 9,191) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,175,911 ns/iter (+/- 1,727,520) test water::ewald::cache_move_particles ... bench: 303,538 ns/iter (+/- 45,985) test water::ewald::energy ... bench: 958,409 ns/iter (+/- 231,552) test water::ewald::forces ... bench: 1,664,122 ns/iter (+/- 744,246) test water::ewald::virial ... bench: 1,030,982 ns/iter (+/- 682,846) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,848,440 ns/iter (+/- 1,247,708) test water::wolf::cache_move_particles ... bench: 309,926 ns/iter (+/- 56,228) test water::wolf::energy ... bench: 91,520 ns/iter (+/- 4,101) test water::wolf::forces ... bench: 213,217 ns/iter (+/- 12,296) test water::wolf::virial ... bench: 105,458 ns/iter (+/- 5,316) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

fd1e00c Replace UnitCell::reciprocal_vectors by k_vector

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 69,799 ns/iter (+/- 74,591) test argon::energy ... bench: 176,688 ns/iter (+/- 17,094) test argon::forces ... bench: 345,571 ns/iter (+/- 11,227) test argon::virial ... bench: 225,179 ns/iter (+/- 17,022) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 86,996 ns/iter (+/- 29,127) test nacl::ewald::energy ... bench: 798,918 ns/iter (+/- 476,357) test nacl::ewald::forces ... bench: 1,125,247 ns/iter (+/- 347,859) test nacl::ewald::virial ... bench: 831,530 ns/iter (+/- 610,926) test nacl::wolf::cache_move_particle ... bench: 69,876 ns/iter (+/- 7,529) test nacl::wolf::energy ... bench: 73,400 ns/iter (+/- 3,120) test nacl::wolf::forces ... bench: 184,841 ns/iter (+/- 8,148) test nacl::wolf::virial ... bench: 83,118 ns/iter (+/- 3,159) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,309,455 ns/iter (+/- 1,033,986) test propane::cache_move_particles ... bench: 259,572 ns/iter (+/- 125,157) test propane::energy ... bench: 339,326 ns/iter (+/- 15,559) test propane::forces ... bench: 572,964 ns/iter (+/- 125,223) test propane::virial ... bench: 168,768 ns/iter (+/- 9,613) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 5,885,408 ns/iter (+/- 1,512,868) test water::ewald::cache_move_particles ... bench: 316,438 ns/iter (+/- 39,536) test water::ewald::energy ... bench: 1,005,189 ns/iter (+/- 433,452) test water::ewald::forces ... bench: 1,794,745 ns/iter (+/- 704,869) test water::ewald::virial ... bench: 1,035,941 ns/iter (+/- 243,377) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,788,550 ns/iter (+/- 1,533,871) test water::wolf::cache_move_particles ... bench: 305,451 ns/iter (+/- 57,845) test water::wolf::energy ... bench: 91,787 ns/iter (+/- 3,714) test water::wolf::forces ... bench: 211,977 ns/iter (+/- 10,861) test water::wolf::virial ... bench: 103,680 ns/iter (+/- 4,619) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

1739aa3 Added Vector3D min and max helper methods

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 78,657 ns/iter (+/- 70,559) test argon::energy ... bench: 176,174 ns/iter (+/- 19,418) test argon::forces ... bench: 342,108 ns/iter (+/- 15,215) test argon::virial ... bench: 224,301 ns/iter (+/- 24,408) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 89,485 ns/iter (+/- 32,447) test nacl::ewald::energy ... bench: 823,128 ns/iter (+/- 704,818) test nacl::ewald::forces ... bench: 1,122,757 ns/iter (+/- 467,980) test nacl::ewald::virial ... bench: 838,097 ns/iter (+/- 577,580) test nacl::wolf::cache_move_particle ... bench: 64,403 ns/iter (+/- 8,635) test nacl::wolf::energy ... bench: 73,256 ns/iter (+/- 3,914) test nacl::wolf::forces ... bench: 186,238 ns/iter (+/- 5,802) test nacl::wolf::virial ... bench: 81,828 ns/iter (+/- 3,469) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,070,896 ns/iter (+/- 708,755) test propane::cache_move_particles ... bench: 286,774 ns/iter (+/- 211,208) test propane::energy ... bench: 336,478 ns/iter (+/- 20,376) test propane::forces ... bench: 571,067 ns/iter (+/- 156,061) test propane::virial ... bench: 166,627 ns/iter (+/- 18,850) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,012,018 ns/iter (+/- 1,675,495) test water::ewald::cache_move_particles ... bench: 328,301 ns/iter (+/- 112,237) test water::ewald::energy ... bench: 978,843 ns/iter (+/- 439,732) test water::ewald::forces ... bench: 1,362,795 ns/iter (+/- 692,101) test water::ewald::virial ... bench: 1,058,710 ns/iter (+/- 516,113) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,669,581 ns/iter (+/- 1,591,621) test water::wolf::cache_move_particles ... bench: 306,059 ns/iter (+/- 55,315) test water::wolf::energy ... bench: 91,380 ns/iter (+/- 3,851) test water::wolf::forces ... bench: 214,511 ns/iter (+/- 10,473) test water::wolf::virial ... bench: 104,451 ns/iter (+/- 5,131) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

efc8c82 It is impossible to scale infinite cells

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 57,899 ns/iter (+/- 14,826) test argon::energy ... bench: 173,686 ns/iter (+/- 16,182) test argon::forces ... bench: 342,228 ns/iter (+/- 25,052) test argon::virial ... bench: 220,338 ns/iter (+/- 17,747) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 83,819 ns/iter (+/- 31,986) test nacl::ewald::energy ... bench: 824,403 ns/iter (+/- 325,189) test nacl::ewald::forces ... bench: 1,524,044 ns/iter (+/- 612,614) test nacl::ewald::virial ... bench: 840,913 ns/iter (+/- 488,294) test nacl::wolf::cache_move_particle ... bench: 70,853 ns/iter (+/- 9,100) test nacl::wolf::energy ... bench: 74,060 ns/iter (+/- 3,941) test nacl::wolf::forces ... bench: 182,368 ns/iter (+/- 5,867) test nacl::wolf::virial ... bench: 81,986 ns/iter (+/- 3,190) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,027,831 ns/iter (+/- 774,772) test propane::cache_move_particles ... bench: 264,488 ns/iter (+/- 181,195) test propane::energy ... bench: 339,505 ns/iter (+/- 25,057) test propane::forces ... bench: 597,985 ns/iter (+/- 140,404) test propane::virial ... bench: 166,771 ns/iter (+/- 8,310) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,279,026 ns/iter (+/- 1,816,412) test water::ewald::cache_move_particles ... bench: 347,155 ns/iter (+/- 125,888) test water::ewald::energy ... bench: 1,018,807 ns/iter (+/- 128,195) test water::ewald::forces ... bench: 1,462,384 ns/iter (+/- 739,963) test water::ewald::virial ... bench: 1,031,983 ns/iter (+/- 378,460) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,607,204 ns/iter (+/- 1,352,124) test water::wolf::cache_move_particles ... bench: 287,653 ns/iter (+/- 41,331) test water::wolf::energy ... bench: 92,347 ns/iter (+/- 4,301) test water::wolf::forces ... bench: 214,802 ns/iter (+/- 5,589) test water::wolf::virial ... bench: 105,975 ns/iter (+/- 4,236) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

012bd9c Rename UnitCell::new => UnitCell::infinite

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 77,602 ns/iter (+/- 87,832) test argon::energy ... bench: 175,216 ns/iter (+/- 22,746) test argon::forces ... bench: 339,540 ns/iter (+/- 8,777) test argon::virial ... bench: 221,260 ns/iter (+/- 20,875) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 95,167 ns/iter (+/- 32,499) test nacl::ewald::energy ... bench: 805,017 ns/iter (+/- 318,278) test nacl::ewald::forces ... bench: 1,423,630 ns/iter (+/- 696,231) test nacl::ewald::virial ... bench: 812,001 ns/iter (+/- 457,908) test nacl::wolf::cache_move_particle ... bench: 70,025 ns/iter (+/- 10,247) test nacl::wolf::energy ... bench: 74,213 ns/iter (+/- 3,797) test nacl::wolf::forces ... bench: 182,604 ns/iter (+/- 8,035) test nacl::wolf::virial ... bench: 81,367 ns/iter (+/- 3,322) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,150,193 ns/iter (+/- 1,017,295) test propane::cache_move_particles ... bench: 286,909 ns/iter (+/- 198,734) test propane::energy ... bench: 339,365 ns/iter (+/- 24,337) test propane::forces ... bench: 593,898 ns/iter (+/- 151,388) test propane::virial ... bench: 166,740 ns/iter (+/- 9,130) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,015,329 ns/iter (+/- 1,743,552) test water::ewald::cache_move_particles ... bench: 313,014 ns/iter (+/- 41,259) test water::ewald::energy ... bench: 981,811 ns/iter (+/- 260,072) test water::ewald::forces ... bench: 1,503,842 ns/iter (+/- 644,464) test water::ewald::virial ... bench: 1,064,833 ns/iter (+/- 217,548) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,854,639 ns/iter (+/- 937,272) test water::wolf::cache_move_particles ... bench: 315,816 ns/iter (+/- 60,853) test water::wolf::energy ... bench: 92,805 ns/iter (+/- 4,892) test water::wolf::forces ... bench: 203,949 ns/iter (+/- 6,154) test water::wolf::virial ... bench: 106,547 ns/iter (+/- 6,208) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

45e0c3d Check all components of NIST SPCE reference data

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 56,090 ns/iter (+/- 15,375) test argon::energy ... bench: 172,759 ns/iter (+/- 12,387) test argon::forces ... bench: 353,607 ns/iter (+/- 12,285) test argon::virial ... bench: 217,238 ns/iter (+/- 18,961) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 95,002 ns/iter (+/- 44,970) test nacl::ewald::energy ... bench: 782,000 ns/iter (+/- 566,543) test nacl::ewald::forces ... bench: 1,320,923 ns/iter (+/- 590,172) test nacl::ewald::virial ... bench: 836,989 ns/iter (+/- 490,740) test nacl::wolf::cache_move_particle ... bench: 71,581 ns/iter (+/- 10,325) test nacl::wolf::energy ... bench: 74,423 ns/iter (+/- 3,111) test nacl::wolf::forces ... bench: 183,272 ns/iter (+/- 7,871) test nacl::wolf::virial ... bench: 80,929 ns/iter (+/- 3,350) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,039,468 ns/iter (+/- 817,001) test propane::cache_move_particles ... bench: 280,799 ns/iter (+/- 40,065) test propane::energy ... bench: 335,729 ns/iter (+/- 23,407) test propane::forces ... bench: 584,541 ns/iter (+/- 118,006) test propane::virial ... bench: 167,070 ns/iter (+/- 9,048) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,040,493 ns/iter (+/- 1,533,356) test water::ewald::cache_move_particles ... bench: 310,647 ns/iter (+/- 114,252) test water::ewald::energy ... bench: 1,002,662 ns/iter (+/- 651,961) test water::ewald::forces ... bench: 1,812,886 ns/iter (+/- 720,630) test water::ewald::virial ... bench: 1,022,481 ns/iter (+/- 337,457) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,821,753 ns/iter (+/- 1,146,850) test water::wolf::cache_move_particles ... bench: 305,246 ns/iter (+/- 61,021) test water::wolf::energy ... bench: 92,877 ns/iter (+/- 4,236) test water::wolf::forces ... bench: 216,305 ns/iter (+/- 37,461) test water::wolf::virial ... bench: 105,429 ns/iter (+/- 5,643) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

4ebb118 Add Ewald missing k-vectors

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 79,538 ns/iter (+/- 81,445) test argon::energy ... bench: 172,668 ns/iter (+/- 15,633) test argon::forces ... bench: 343,396 ns/iter (+/- 9,934) test argon::virial ... bench: 219,914 ns/iter (+/- 19,919) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 94,548 ns/iter (+/- 31,499) test nacl::ewald::energy ... bench: 837,846 ns/iter (+/- 618,868) test nacl::ewald::forces ... bench: 1,438,295 ns/iter (+/- 673,503) test nacl::ewald::virial ... bench: 848,342 ns/iter (+/- 434,851) test nacl::wolf::cache_move_particle ... bench: 75,745 ns/iter (+/- 13,000) test nacl::wolf::energy ... bench: 75,049 ns/iter (+/- 3,748) test nacl::wolf::forces ... bench: 180,850 ns/iter (+/- 7,691) test nacl::wolf::virial ... bench: 81,775 ns/iter (+/- 4,225) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,319,826 ns/iter (+/- 873,583) test propane::cache_move_particles ... bench: 324,109 ns/iter (+/- 288,299) test propane::energy ... bench: 336,704 ns/iter (+/- 21,081) test propane::forces ... bench: 565,699 ns/iter (+/- 124,565) test propane::virial ... bench: 163,933 ns/iter (+/- 10,726) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,111,125 ns/iter (+/- 1,434,539) test water::ewald::cache_move_particles ... bench: 309,667 ns/iter (+/- 38,933) test water::ewald::energy ... bench: 985,902 ns/iter (+/- 262,247) test water::ewald::forces ... bench: 1,656,015 ns/iter (+/- 699,753) test water::ewald::virial ... bench: 1,028,429 ns/iter (+/- 223,034) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,840,171 ns/iter (+/- 1,423,888) test water::wolf::cache_move_particles ... bench: 314,353 ns/iter (+/- 61,608) test water::wolf::energy ... bench: 91,746 ns/iter (+/- 4,211) test water::wolf::forces ... bench: 212,520 ns/iter (+/- 16,294) test water::wolf::virial ... bench: 105,382 ns/iter (+/- 5,149) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

b008d18 Update dependencies with little to no breakage

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 70,349 ns/iter (+/- 36,983) test argon::energy ... bench: 174,623 ns/iter (+/- 16,325) test argon::forces ... bench: 342,090 ns/iter (+/- 21,412) test argon::virial ... bench: 223,627 ns/iter (+/- 16,944) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 277,556 ns/iter (+/- 65,577) test nacl::ewald::energy ... bench: 465,511 ns/iter (+/- 319,658) test nacl::ewald::forces ... bench: 1,927,243 ns/iter (+/- 142,170) test nacl::ewald::virial ... bench: 3,862,214 ns/iter (+/- 365,325) test nacl::wolf::cache_move_particle ... bench: 72,206 ns/iter (+/- 12,488) test nacl::wolf::energy ... bench: 72,877 ns/iter (+/- 3,225) test nacl::wolf::forces ... bench: 180,156 ns/iter (+/- 10,518) test nacl::wolf::virial ... bench: 81,355 ns/iter (+/- 3,346) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,072,474 ns/iter (+/- 848,362) test propane::cache_move_particles ... bench: 261,834 ns/iter (+/- 164,489) test propane::energy ... bench: 338,343 ns/iter (+/- 111,219) test propane::forces ... bench: 594,570 ns/iter (+/- 133,374) test propane::virial ... bench: 168,435 ns/iter (+/- 13,588) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 6,203,805 ns/iter (+/- 1,077,074) test water::ewald::cache_move_particles ... bench: 519,238 ns/iter (+/- 87,334) test water::ewald::energy ... bench: 574,663 ns/iter (+/- 270,854) test water::ewald::forces ... bench: 2,656,220 ns/iter (+/- 290,718) test water::ewald::virial ... bench: 5,417,435 ns/iter (+/- 451,334) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,926,356 ns/iter (+/- 1,315,421) test water::wolf::cache_move_particles ... bench: 315,913 ns/iter (+/- 63,576) test water::wolf::energy ... bench: 92,515 ns/iter (+/- 6,002) test water::wolf::forces ... bench: 213,260 ns/iter (+/- 5,377) test water::wolf::virial ... bench: 104,624 ns/iter (+/- 11,406) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```

```bash running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out running 4 tests test argon::cache_move_particle ... bench: 69,149 ns/iter (+/- 64,367) test argon::energy ... bench: 172,989 ns/iter (+/- 13,012) test argon::forces ... bench: 340,547 ns/iter (+/- 9,890) test argon::virial ... bench: 224,034 ns/iter (+/- 22,409) test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured running 8 tests test nacl::ewald::cache_move_particle ... bench: 248,719 ns/iter (+/- 2,202) test nacl::ewald::energy ... bench: 469,783 ns/iter (+/- 352,283) test nacl::ewald::forces ... bench: 1,917,956 ns/iter (+/- 148,024) test nacl::ewald::virial ... bench: 3,834,805 ns/iter (+/- 478,712) test nacl::wolf::cache_move_particle ... bench: 69,027 ns/iter (+/- 8,643) test nacl::wolf::energy ... bench: 73,946 ns/iter (+/- 3,207) test nacl::wolf::forces ... bench: 178,427 ns/iter (+/- 8,648) test nacl::wolf::virial ... bench: 81,165 ns/iter (+/- 3,491) test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured running 5 tests test propane::cache_move_all_rigid_molecules ... bench: 1,081,685 ns/iter (+/- 1,111,948) test propane::cache_move_particles ... bench: 309,640 ns/iter (+/- 253,933) test propane::energy ... bench: 332,457 ns/iter (+/- 18,487) test propane::forces ... bench: 548,230 ns/iter (+/- 151,489) test propane::virial ... bench: 166,971 ns/iter (+/- 10,107) test result: ok. 0 passed; 0 failed; 0 ignored; 5 measured running 10 tests test water::ewald::cache_move_all_rigid_molecules ... bench: 5,911,200 ns/iter (+/- 1,005,892) test water::ewald::cache_move_particles ... bench: 549,693 ns/iter (+/- 92,086) test water::ewald::energy ... bench: 555,485 ns/iter (+/- 189,312) test water::ewald::forces ... bench: 2,627,183 ns/iter (+/- 272,543) test water::ewald::virial ... bench: 5,442,843 ns/iter (+/- 422,783) test water::wolf::cache_move_all_rigid_molecules ... bench: 5,777,892 ns/iter (+/- 1,454,360) test water::wolf::cache_move_particles ... bench: 310,513 ns/iter (+/- 53,007) test water::wolf::energy ... bench: 93,753 ns/iter (+/- 5,026) test water::wolf::forces ... bench: 209,992 ns/iter (+/- 7,317) test water::wolf::virial ... bench: 104,832 ns/iter (+/- 4,438) test result: ok. 0 passed; 0 failed; 0 ignored; 10 measured ```


CPU: Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz

g-bauer commented 6 years ago

:clinking_glasses: Awesome!