Commit d95e723d authored by Rossen Apostolov's avatar Rossen Apostolov
Browse files

Updated the Ewald/PME tests.

parent ed1fb192
......@@ -91,19 +91,21 @@ void testEwaldExact() {
// e : 1.6022 × 10−19 C
// 4*pi*epsilon0 : 1.112 × 10−10 C²/(J m)
// a0 : 0.282 x 10-9 m (perfect cell)
// Therefore
double exactEnergy = -14.3061e-19; // J (per ion pair)
exactEnergy = -7.1531e-19; // J per ion
exactEnergy = -430.820; // kJ/mol per ion
ASSERT_EQUAL_TOL(exactEnergy * numParticles , state.getPotentialEnergy(), 100*TOL);
// Gromacs result
// ASSERT_EQUAL_TOL(-430494.0, state.getPotentialEnergy(), 10*TOL);
//
// E is then the energy per pair of ions, so for our case
// E has to be divided by 2 (per ion), multiplied by N(avogadro), multiplied by number of particles, and divided by 1000 for kJ
double exactEnergy = - (1.7476 * 1.6022e-19 * 1.6022e-19 * 6.02214e+23 * numParticles) / (1.112e-10 * 0.282e-9 * 2 * 1000);
ASSERT_EQUAL_TOL(exactEnergy, state.getPotentialEnergy(), 100*TOL);
// cout << "exactEnergy: " << exactEnergy << endl;
// cout << "PotentialEnergy: " << state.getPotentialEnergy() << endl;
}
void testEwaldPME() {
// Use amorphoush NaCl system
double tol = 1e-5;
// Use amorphous NaCl system
ReferencePlatform platform;
const int numParticles = 216;
......@@ -132,13 +134,17 @@ void testEwaldPME() {
State state1 = context.getState(State::Forces | State::Energy);
const vector<Vec3>& forces1 = state1.getForces();
// (1) CHECK EXACT VALUE OF EWALD ENERGY
// for (int i = 0 ; i < numParticles ; i++)
// cout << "f [" << i << " : ]" << forces1[i] << endl;
// (1) CHECK EXACT VALUE OF EWALD ENERGY (Against Gromacs output)
ASSERT_EQUAL_TOL(-26651.9, state1.getPotentialEnergy(), TOL);
tol = 1e-5;
ASSERT_EQUAL_TOL(-36687.5, state1.getPotentialEnergy(), tol);
// (2) CHECK WHETHER THE EWALD FORCES ARE THE SAME AS THE GROMACS OUTPUT
// Even at tolerance 0.1 the test doesn't pass
// #include "nacl_amorph_GromacsForcesEwald.dat"
tol = 1e-3;
#include "nacl_amorph_GromacsForcesEwald.dat"
// (3) CHECK SELF-CONSISTENCY
......@@ -163,8 +169,9 @@ void testEwaldPME() {
// See whether the potential energy changed by the expected amount.
tol = 1e-4;
State state2 = context.getState(State::Energy);
ASSERT_EQUAL_TOL(norm, (state2.getPotentialEnergy()-state1.getPotentialEnergy())/delta, 0.01)
ASSERT_EQUAL_TOL(norm, (state2.getPotentialEnergy()-state1.getPotentialEnergy())/delta, tol)
// (4) CHECK EXACT VALUE OF PME ENERGY
......@@ -173,12 +180,17 @@ void testEwaldPME() {
#include "nacl_amorph.dat"
context.setPositions(positions);
State state3 = context.getState(State::Forces | State::Energy);
ASSERT_EQUAL_TOL(-26651.9, state3.getPotentialEnergy(), 10*TOL);
tol = 1e-5;
// Gromacs PME energy for the same mesh
ASSERT_EQUAL_TOL(-36688.3, state3.getPotentialEnergy(), tol);
// Gromacs Ewald energy
tol = 1e-4;
ASSERT_EQUAL_TOL(-36687.5, state3.getPotentialEnergy(), tol);
// (5) CHECK WHETHER PME FORCES ARE THE SAME AS THE GROMACS OUTPUT
// Even at tolerance 0.1 the test doesn't pass
// #include "nacl_amorph_GromacsForcesEwald.dat"
tol = 1e-3;
#include "nacl_amorph_GromacsForcesEwald.dat"
// (6) CHECK PME FOR SELF-CONSISTENCY
......@@ -201,7 +213,8 @@ void testEwaldPME() {
// See whether the potential energy changed by the expected amount.
State state4 = context.getState(State::Energy);
ASSERT_EQUAL_TOL(norm, (state4.getPotentialEnergy()-state3.getPotentialEnergy())/delta, 0.01)
tol = 1e-4;
ASSERT_EQUAL_TOL(norm, (state4.getPotentialEnergy()-state3.getPotentialEnergy())/delta, tol)
}
......
positions[0] = Vec3(0.230000,0.628000,0.113000);
positions[1] = Vec3(0.225000,0.275000,-0.866000);
positions[2] = Vec3(0.019000,0.368000,0.647000);
positions[3] = Vec3(0.569000,-0.587000,-0.697000);
positions[4] = Vec3(-0.307000,-0.351000,0.703000);
positions[5] = Vec3(-0.119000,0.618000,0.856000);
positions[6] = Vec3(-0.727000,0.703000,0.717000);
positions[7] = Vec3(-0.107000,0.607000,0.231000);
positions[8] = Vec3(0.768000,-0.718000,-0.839000);
positions[9] = Vec3(0.850000,0.798000,-0.039000);
positions[10] = Vec3(0.685000,-0.850000,0.665000);
positions[11] = Vec3(0.686000,-0.701000,-0.059000);
positions[12] = Vec3(0.335000,-0.427000,-0.801000);
positions[13] = Vec3(-0.402000,-0.357000,-0.523000);
positions[14] = Vec3(0.438000,0.392000,-0.363000);
positions[15] = Vec3(-0.259000,0.447000,0.737000);
positions[16] = Vec3(0.231000,-0.149000,0.483000);
positions[17] = Vec3(-0.735000,-0.521000,-0.172000);
positions[18] = Vec3(0.230000,-0.428000,0.538000);
positions[19] = Vec3(0.240000,-0.771000,0.886000);
positions[20] = Vec3(0.620000,-0.076000,-0.423000);
positions[21] = Vec3(0.606000,-0.898000,0.123000);
positions[22] = Vec3(-0.268000,0.114000,-0.382000);
positions[23] = Vec3(0.122000,0.643000,0.563000);
positions[24] = Vec3(-0.020000,-0.095000,0.359000);
positions[25] = Vec3(0.027000,-0.266000,0.117000);
positions[26] = Vec3(-0.173000,0.922000,0.612000);
positions[27] = Vec3(-0.221000,-0.754000,0.432000);
positions[28] = Vec3(0.113000,0.737000,-0.265000);
positions[29] = Vec3(0.613000,-0.497000,0.726000);
positions[30] = Vec3(-0.569000,-0.634000,-0.439000);
positions[31] = Vec3(0.809000,0.004000,0.502000);
positions[32] = Vec3(0.197000,-0.886000,-0.598000);
positions[33] = Vec3(-0.337000,-0.863000,0.190000);
positions[34] = Vec3(-0.675000,-0.070000,-0.246000);
positions[35] = Vec3(0.317000,0.251000,-0.061000);
positions[36] = Vec3(-0.396000,-0.445000,-0.909000);
positions[37] = Vec3(-0.195000,-0.148000,0.572000);
positions[38] = Vec3(0.598000,0.729000,0.270000);
positions[39] = Vec3(-0.581000,0.345000,-0.918000);
positions[40] = Vec3(-0.286000,-0.200000,0.307000);
positions[41] = Vec3(0.807000,0.605000,-0.397000);
positions[42] = Vec3(-0.468000,0.469000,-0.188000);
positions[43] = Vec3(-0.889000,0.890000,-0.290000);
positions[44] = Vec3(-0.871000,0.410000,-0.620000);
positions[45] = Vec3(-0.821000,0.701000,0.429000);
positions[46] = Vec3(0.076000,0.811000,0.789000);
positions[47] = Vec3(0.130000,-0.041000,-0.291000);
positions[48] = Vec3(0.865000,0.348000,0.195000);
positions[49] = Vec3(-0.143000,0.585000,-0.031000);
positions[50] = Vec3(-0.500000,-0.718000,0.545000);
positions[51] = Vec3(0.550000,0.196000,0.885000);
positions[52] = Vec3(-0.854000,-0.406000,0.477000);
positions[53] = Vec3(0.351000,-0.061000,0.853000);
positions[54] = Vec3(-0.067000,-0.796000,0.873000);
positions[55] = Vec3(-0.635000,-0.312000,-0.356000);
positions[56] = Vec3(0.321000,-0.919000,0.242000);
positions[57] = Vec3(-0.404000,0.735000,0.728000);
positions[58] = Vec3(0.461000,-0.596000,-0.135000);
positions[59] = Vec3(-0.751000,-0.086000,0.237000);
positions[60] = Vec3(0.202000,0.285000,-0.364000);
positions[61] = Vec3(-0.230000,-0.485000,0.081000);
positions[62] = Vec3(0.464000,-0.119000,0.323000);
positions[63] = Vec3(-0.462000,0.107000,0.426000);
positions[64] = Vec3(0.249000,-0.077000,-0.621000);
positions[65] = Vec3(-0.922000,-0.164000,0.904000);
positions[66] = Vec3(0.382000,0.700000,0.480000);
positions[67] = Vec3(-0.315000,0.222000,-0.133000);
positions[68] = Vec3(0.614000,0.122000,0.117000);
positions[69] = Vec3(0.781000,0.264000,-0.113000);
positions[70] = Vec3(0.888000,-0.348000,-0.667000);
positions[71] = Vec3(-0.511000,0.590000,-0.429000);
positions[72] = Vec3(0.803000,-0.460000,0.924000);
positions[73] = Vec3(0.922000,0.503000,0.899000);
positions[74] = Vec3(0.539000,0.064000,0.512000);
positions[75] = Vec3(-0.428000,-0.674000,0.041000);
positions[76] = Vec3(0.297000,0.035000,0.171000);
positions[77] = Vec3(-0.927000,0.236000,0.480000);
positions[78] = Vec3(-0.786000,0.683000,-0.398000);
positions[79] = Vec3(-0.635000,-0.292000,0.793000);
positions[80] = Vec3(0.459000,-0.710000,0.741000);
positions[81] = Vec3(-0.591000,-0.065000,0.591000);
positions[82] = Vec3(-0.830000,0.549000,0.016000);
positions[83] = Vec3(0.078000,0.556000,-0.476000);
positions[84] = Vec3(0.561000,0.222000,-0.715000);
positions[85] = Vec3(0.866000,0.454000,0.642000);
positions[86] = Vec3(-0.845000,0.039000,0.753000);
positions[87] = Vec3(-0.433000,-0.689000,0.867000);
positions[88] = Vec3(-0.396000,0.590000,-0.870000);
positions[89] = Vec3(-0.005000,0.833000,0.377000);
positions[90] = Vec3(0.488000,-0.477000,0.174000);
positions[91] = Vec3(-0.198000,-0.582000,0.657000);
positions[92] = Vec3(-0.472000,0.575000,0.078000);
positions[93] = Vec3(0.527000,0.256000,0.328000);
positions[94] = Vec3(-0.108000,-0.639000,-0.274000);
positions[95] = Vec3(-0.798000,-0.515000,-0.522000);
positions[96] = Vec3(-0.270000,-0.233000,-0.237000);
positions[97] = Vec3(-0.751000,-0.667000,-0.762000);
positions[98] = Vec3(-0.224000,-0.763000,-0.783000);
positions[99] = Vec3(0.915000,0.089000,-0.460000);
positions[100] = Vec3(-0.882000,-0.746000,-0.143000);
positions[101] = Vec3(0.705000,-0.812000,0.368000);
positions[102] = Vec3(0.410000,0.813000,-0.611000);
positions[103] = Vec3(-0.588000,0.386000,-0.600000);
positions[104] = Vec3(0.064000,-0.298000,-0.531000);
positions[105] = Vec3(0.367000,-0.762000,0.501000);
positions[106] = Vec3(0.566000,0.537000,0.865000);
positions[107] = Vec3(-0.610000,-0.514000,0.388000);
positions[108] = Vec3(-0.590000,-0.417000,-0.720000);
positions[109] = Vec3(-0.280000,0.639000,0.472000);
positions[110] = Vec3(0.354000,-0.352000,-0.533000);
positions[111] = Vec3(0.402000,0.751000,-0.264000);
positions[112] = Vec3(-0.275000,0.779000,-0.192000);
positions[113] = Vec3(-0.849000,0.105000,-0.092000);
positions[114] = Vec3(0.504000,0.050000,-0.122000);
positions[115] = Vec3(0.573000,0.870000,-0.833000);
positions[116] = Vec3(-0.502000,0.862000,-0.817000);
positions[117] = Vec3(-0.653000,0.525000,0.275000);
positions[118] = Vec3(0.307000,0.213000,-0.631000);
positions[119] = Vec3(0.037000,-0.552000,-0.580000);
positions[120] = Vec3(0.732000,0.634000,-0.798000);
positions[121] = Vec3(-0.134000,-0.927000,-0.008000);
positions[122] = Vec3(0.307000,0.063000,0.618000);
positions[123] = Vec3(-0.240000,0.367000,0.374000);
positions[124] = Vec3(-0.839000,0.766000,-0.896000);
positions[125] = Vec3(-0.882000,-0.289000,-0.162000);
positions[126] = Vec3(-0.003000,-0.344000,-0.257000);
positions[127] = Vec3(0.350000,0.898000,-0.058000);
positions[128] = Vec3(-0.322000,0.274000,0.125000);
positions[129] = Vec3(-0.559000,0.838000,0.042000);
positions[130] = Vec3(-0.794000,-0.529000,0.849000);
positions[131] = Vec3(0.319000,0.810000,-0.913000);
positions[132] = Vec3(0.339000,0.509000,-0.856000);
positions[133] = Vec3(0.511000,0.415000,-0.054000);
positions[134] = Vec3(-0.724000,0.380000,-0.184000);
positions[135] = Vec3(-0.702000,0.207000,-0.385000);
positions[136] = Vec3(0.008000,-0.536000,0.200000);
positions[137] = Vec3(0.088000,-0.061000,0.927000);
positions[138] = Vec3(0.504000,-0.294000,0.910000);
positions[139] = Vec3(-0.860000,0.796000,-0.624000);
positions[140] = Vec3(0.040000,0.544000,-0.748000);
positions[141] = Vec3(0.189000,0.520000,-0.140000);
positions[142] = Vec3(-0.493000,-0.912000,-0.202000);
positions[143] = Vec3(0.815000,0.572000,0.325000);
positions[144] = Vec3(-0.205000,0.604000,-0.656000);
positions[145] = Vec3(0.252000,-0.298000,-0.118000);
positions[146] = Vec3(0.671000,0.464000,-0.593000);
positions[147] = Vec3(0.930000,-0.184000,-0.397000);
positions[148] = Vec3(0.473000,0.500000,0.191000);
positions[149] = Vec3(0.159000,-0.725000,-0.396000);
positions[150] = Vec3(-0.515000,-0.803000,-0.628000);
positions[151] = Vec3(-0.560000,0.855000,0.309000);
positions[152] = Vec3(-0.103000,-0.115000,-0.708000);
positions[153] = Vec3(-0.610000,-0.131000,-0.734000);
positions[154] = Vec3(0.083000,-0.604000,-0.840000);
positions[155] = Vec3(0.688000,-0.200000,-0.146000);
positions[156] = Vec3(0.903000,0.086000,0.133000);
positions[157] = Vec3(-0.136000,0.135000,0.523000);
positions[158] = Vec3(-0.474000,-0.289000,0.477000);
positions[159] = Vec3(0.130000,-0.068000,-0.011000);
positions[160] = Vec3(-0.582000,0.927000,0.672000);
positions[161] = Vec3(0.830000,-0.589000,-0.440000);
positions[162] = Vec3(0.672000,-0.246000,0.154000);
positions[163] = Vec3(-0.212000,-0.142000,-0.468000);
positions[164] = Vec3(-0.021000,0.175000,-0.899000);
positions[165] = Vec3(0.263000,0.326000,0.720000);
positions[166] = Vec3(-0.668000,-0.250000,0.031000);
positions[167] = Vec3(0.822000,-0.860000,-0.490000);
positions[168] = Vec3(0.916000,0.910000,0.291000);
positions[169] = Vec3(-0.358000,-0.255000,0.044000);
positions[170] = Vec3(0.372000,-0.574000,-0.372000);
positions[171] = Vec3(-0.248000,-0.570000,-0.573000);
positions[172] = Vec3(-0.823000,-0.764000,0.696000);
positions[173] = Vec3(-0.848000,0.236000,-0.891000);
positions[174] = Vec3(0.590000,-0.375000,0.491000);
positions[175] = Vec3(-0.153000,0.385000,-0.481000);
positions[176] = Vec3(0.255000,-0.514000,0.290000);
positions[177] = Vec3(0.105000,-0.849000,-0.136000);
positions[178] = Vec3(0.672000,0.203000,-0.373000);
positions[179] = Vec3(0.075000,0.345000,0.033000);
positions[180] = Vec3(-0.422000,0.856000,-0.464000);
positions[181] = Vec3(0.072000,0.166000,0.318000);
positions[182] = Vec3(-0.679000,-0.527000,0.119000);
positions[183] = Vec3(0.613000,0.842000,-0.431000);
positions[184] = Vec3(-0.369000,-0.095000,-0.903000);
positions[185] = Vec3(0.716000,0.565000,-0.154000);
positions[186] = Vec3(-0.412000,-0.642000,-0.229000);
positions[187] = Vec3(0.390000,-0.121000,-0.302000);
positions[188] = Vec3(-0.188000,0.883000,-0.608000);
positions[189] = Vec3(-0.637000,0.325000,0.449000);
positions[190] = Vec3(0.594000,0.745000,0.652000);
positions[191] = Vec3(-0.085000,0.342000,-0.220000);
positions[192] = Vec3(-0.132000,-0.928000,-0.345000);
positions[193] = Vec3(0.859000,-0.488000,0.016000);
positions[194] = Vec3(0.661000,-0.072000,-0.909000);
positions[195] = Vec3(-0.454000,-0.011000,-0.142000);
positions[196] = Vec3(0.859000,-0.906000,0.861000);
positions[197] = Vec3(-0.779000,-0.878000,0.087000);
positions[198] = Vec3(-0.001000,-0.293000,0.851000);
positions[199] = Vec3(0.221000,-0.548000,-0.018000);
positions[200] = Vec3(0.079000,-0.622000,0.653000);
positions[201] = Vec3(0.672000,-0.471000,-0.238000);
positions[202] = Vec3(-0.038000,0.192000,-0.635000);
positions[203] = Vec3(0.428000,0.424000,0.520000);
positions[204] = Vec3(-0.157000,-0.375000,-0.758000);
positions[205] = Vec3(0.317000,0.547000,-0.582000);
positions[206] = Vec3(0.812000,-0.276000,0.687000);
positions[207] = Vec3(-0.438000,0.214000,-0.750000);
positions[208] = Vec3(-0.861000,0.034000,-0.708000);
positions[209] = Vec3(0.770000,-0.532000,0.301000);
positions[210] = Vec3(0.618000,-0.295000,-0.578000);
positions[211] = Vec3(-0.510000,0.052000,0.168000);
positions[212] = Vec3(-0.562000,0.453000,0.691000);
positions[213] = Vec3(-0.269000,0.221000,0.882000);
positions[214] = Vec3(0.039000,-0.785000,0.300000);
positions[215] = Vec3(0.875000,-0.216000,0.337000);
positions[0] = Vec3(0.232000,0.623000,0.101000);
positions[1] = Vec3(0.217000,0.277000,1.002000);
positions[2] = Vec3(0.021000,0.356000,0.649000);
positions[3] = Vec3(0.565000,1.277000,1.179000);
positions[4] = Vec3(1.557000,1.519000,0.709000);
positions[5] = Vec3(1.745000,0.612000,0.870000);
positions[6] = Vec3(1.135000,0.707000,0.721000);
positions[7] = Vec3(1.749000,0.599000,0.228000);
positions[8] = Vec3(0.772000,1.132000,1.027000);
positions[9] = Vec3(0.850000,0.796000,1.822000);
positions[10] = Vec3(0.695000,1.005000,0.671000);
positions[11] = Vec3(0.688000,1.171000,1.795000);
positions[12] = Vec3(0.331000,1.441000,1.071000);
positions[13] = Vec3(1.470000,1.507000,1.335000);
positions[14] = Vec3(0.440000,0.396000,1.497000);
positions[15] = Vec3(1.599000,0.435000,0.737000);
positions[16] = Vec3(0.231000,1.717000,0.487000);
positions[17] = Vec3(1.123000,1.347000,1.696000);
positions[18] = Vec3(0.228000,1.432000,0.536000);
positions[19] = Vec3(0.238000,1.093000,0.898000);
positions[20] = Vec3(0.618000,1.780000,1.447000);
positions[21] = Vec3(0.606000,0.966000,0.113000);
positions[22] = Vec3(1.598000,0.112000,1.474000);
positions[23] = Vec3(0.124000,0.634000,0.563000);
positions[24] = Vec3(1.842000,1.777000,0.355000);
positions[25] = Vec3(0.033000,1.594000,0.105000);
positions[26] = Vec3(1.685000,0.918000,0.612000);
positions[27] = Vec3(1.645000,1.110000,0.422000);
positions[28] = Vec3(0.113000,0.743000,1.597000);
positions[29] = Vec3(0.615000,1.375000,0.722000);
positions[30] = Vec3(1.303000,1.220000,1.424000);
positions[31] = Vec3(0.811000,1.856000,0.497000);
positions[32] = Vec3(0.193000,0.980000,1.274000);
positions[33] = Vec3(1.523000,0.991000,0.178000);
positions[34] = Vec3(1.185000,1.796000,1.622000);
positions[35] = Vec3(0.317000,0.253000,1.797000);
positions[36] = Vec3(1.470000,1.425000,0.969000);
positions[37] = Vec3(1.669000,1.724000,0.578000);
positions[38] = Vec3(0.602000,0.720000,0.266000);
positions[39] = Vec3(1.285000,0.339000,0.946000);
positions[40] = Vec3(1.570000,1.664000,0.297000);
positions[41] = Vec3(0.797000,0.605000,1.463000);
positions[42] = Vec3(1.394000,0.467000,1.674000);
positions[43] = Vec3(0.971000,0.894000,1.565000);
positions[44] = Vec3(0.987000,0.408000,1.242000);
positions[45] = Vec3(1.045000,0.703000,0.421000);
positions[46] = Vec3(0.082000,0.807000,0.801000);
positions[47] = Vec3(0.132000,1.815000,1.573000);
positions[48] = Vec3(0.869000,0.348000,0.189000);
positions[49] = Vec3(1.720000,0.585000,1.821000);
positions[50] = Vec3(1.352000,1.137000,0.545000);
positions[51] = Vec3(0.546000,0.194000,0.889000);
positions[52] = Vec3(1.000000,1.457000,0.471000);
positions[53] = Vec3(0.345000,1.801000,0.857000);
positions[54] = Vec3(1.799000,1.072000,0.884000);
positions[55] = Vec3(1.225000,1.555000,1.508000);
positions[56] = Vec3(0.315000,0.947000,0.229000);
positions[57] = Vec3(1.450000,0.733000,0.726000);
positions[58] = Vec3(0.453000,1.274000,1.715000);
positions[59] = Vec3(1.109000,1.774000,0.223000);
positions[60] = Vec3(0.197000,0.285000,1.494000);
positions[61] = Vec3(1.636000,1.379000,0.073000);
positions[62] = Vec3(0.470000,1.735000,0.315000);
positions[63] = Vec3(1.403000,0.116000,0.418000);
positions[64] = Vec3(0.246000,1.785000,1.243000);
positions[65] = Vec3(0.936000,1.700000,0.910000);
positions[66] = Vec3(0.388000,0.692000,0.483000);
positions[67] = Vec3(1.549000,0.219000,1.733000);
positions[68] = Vec3(0.618000,0.116000,0.103000);
positions[69] = Vec3(0.781000,0.260000,1.743000);
positions[70] = Vec3(0.884000,1.520000,1.205000);
positions[71] = Vec3(1.361000,0.598000,1.432000);
positions[72] = Vec3(0.805000,1.406000,0.924000);
positions[73] = Vec3(0.922000,0.509000,0.909000);
positions[74] = Vec3(0.533000,0.064000,0.518000);
positions[75] = Vec3(1.430000,1.186000,0.029000);
positions[76] = Vec3(0.290000,0.035000,0.161000);
positions[77] = Vec3(0.943000,0.238000,0.474000);
positions[78] = Vec3(1.078000,0.686000,1.459000);
positions[79] = Vec3(1.227000,1.570000,0.801000);
positions[80] = Vec3(0.459000,1.152000,0.747000);
positions[81] = Vec3(1.275000,1.799000,0.591000);
positions[82] = Vec3(1.036000,0.547000,0.014000);
positions[83] = Vec3(0.074000,0.554000,1.380000);
positions[84] = Vec3(0.557000,0.224000,1.157000);
positions[85] = Vec3(0.866000,0.458000,0.642000);
positions[86] = Vec3(1.019000,0.043000,0.761000);
positions[87] = Vec3(1.423000,1.169000,0.875000);
positions[88] = Vec3(1.468000,0.590000,1.004000);
positions[89] = Vec3(1.855000,0.837000,0.367000);
positions[90] = Vec3(0.488000,1.391000,0.168000);
positions[91] = Vec3(1.672000,1.284000,0.659000);
positions[92] = Vec3(1.388000,0.577000,0.080000);
positions[93] = Vec3(0.521000,0.264000,0.326000);
positions[94] = Vec3(1.760000,1.219000,1.584000);
positions[95] = Vec3(1.058000,1.347000,1.344000);
positions[96] = Vec3(1.596000,1.631000,1.623000);
positions[97] = Vec3(1.114000,1.189000,1.100000);
positions[98] = Vec3(1.638000,1.099000,1.099000);
positions[99] = Vec3(0.917000,0.085000,1.405000);
positions[100] = Vec3(0.980000,1.120000,1.721000);
positions[101] = Vec3(0.715000,1.054000,0.364000);
positions[102] = Vec3(0.414000,0.808000,1.255000);
positions[103] = Vec3(1.280000,0.378000,1.263000);
positions[104] = Vec3(0.061000,1.558000,1.333000);
positions[105] = Vec3(0.363000,1.104000,0.497000);
positions[106] = Vec3(0.562000,0.543000,0.874000);
positions[107] = Vec3(1.248000,1.350000,0.378000);
positions[108] = Vec3(1.270000,1.439000,1.140000);
positions[109] = Vec3(1.590000,0.649000,0.478000);
positions[110] = Vec3(0.352000,1.512000,1.317000);
positions[111] = Vec3(0.402000,0.749000,1.598000);
positions[112] = Vec3(1.585000,0.767000,1.678000);
positions[113] = Vec3(1.011000,0.109000,1.770000);
positions[114] = Vec3(0.502000,0.060000,1.750000);
positions[115] = Vec3(0.571000,0.878000,1.023000);
positions[116] = Vec3(1.364000,0.860000,1.033000);
positions[117] = Vec3(1.205000,0.527000,0.273000);
positions[118] = Vec3(0.313000,0.211000,1.229000);
positions[119] = Vec3(0.039000,1.311000,1.278000);
positions[120] = Vec3(0.734000,0.628000,1.056000);
positions[121] = Vec3(1.726000,0.933000,1.870000);
positions[122] = Vec3(0.315000,0.055000,0.612000);
positions[123] = Vec3(1.624000,0.373000,0.378000);
positions[124] = Vec3(1.027000,0.759000,0.958000);
positions[125] = Vec3(0.990000,1.569000,1.696000);
positions[126] = Vec3(1.851000,1.521000,1.607000);
positions[127] = Vec3(0.356000,0.898000,1.820000);
positions[128] = Vec3(1.540000,0.278000,0.121000);
positions[129] = Vec3(1.305000,0.834000,0.046000);
positions[130] = Vec3(1.068000,1.339000,0.849000);
positions[131] = Vec3(0.312000,0.818000,0.939000);
positions[132] = Vec3(0.343000,0.505000,0.996000);
positions[133] = Vec3(0.511000,0.409000,1.812000);
positions[134] = Vec3(1.140000,0.390000,1.680000);
positions[135] = Vec3(1.160000,0.209000,1.471000);
positions[136] = Vec3(-0.002000,1.331000,0.208000);
positions[137] = Vec3(0.100000,1.799000,0.919000);
positions[138] = Vec3(0.504000,1.562000,0.904000);
positions[139] = Vec3(1.006000,0.792000,1.244000);
positions[140] = Vec3(0.040000,0.548000,1.106000);
positions[141] = Vec3(0.189000,0.522000,1.724000);
positions[142] = Vec3(1.361000,0.952000,1.663000);
positions[143] = Vec3(0.813000,0.570000,0.327000);
positions[144] = Vec3(1.651000,0.604000,1.197000);
positions[145] = Vec3(0.250000,1.566000,1.752000);
positions[146] = Vec3(0.675000,0.460000,1.269000);
positions[147] = Vec3(0.935000,1.680000,1.457000);
positions[148] = Vec3(0.473000,0.504000,0.201000);
positions[149] = Vec3(0.159000,1.131000,1.460000);
positions[150] = Vec3(1.341000,1.069000,1.230000);
positions[151] = Vec3(1.308000,0.859000,0.317000);
positions[152] = Vec3(1.761000,1.745000,1.156000);
positions[153] = Vec3(1.246000,1.727000,1.124000);
positions[154] = Vec3(0.087000,1.248000,1.008000);
positions[155] = Vec3(0.688000,1.666000,1.718000);
positions[156] = Vec3(0.897000,0.094000,0.145000);
positions[157] = Vec3(1.726000,0.129000,0.523000);
positions[158] = Vec3(1.390000,1.571000,0.483000);
positions[159] = Vec3(0.128000,1.796000,1.861000);
positions[160] = Vec3(1.290000,0.927000,0.670000);
positions[161] = Vec3(0.840000,1.273000,1.416000);
positions[162] = Vec3(0.664000,1.620000,0.164000);
positions[163] = Vec3(1.644000,1.719000,1.404000);
positions[164] = Vec3(1.847000,0.181000,0.955000);
positions[165] = Vec3(0.263000,0.330000,0.718000);
positions[166] = Vec3(1.197000,1.612000,0.035000);
positions[167] = Vec3(0.828000,1.002000,1.374000);
positions[168] = Vec3(0.906000,0.908000,0.295000);
positions[169] = Vec3(1.510000,1.601000,0.051000);
positions[170] = Vec3(0.378000,1.284000,1.490000);
positions[171] = Vec3(1.606000,1.292000,1.285000);
positions[172] = Vec3(1.039000,1.102000,0.692000);
positions[173] = Vec3(1.012000,0.240000,0.963000);
positions[174] = Vec3(0.584000,1.485000,0.497000);
positions[175] = Vec3(1.707000,0.385000,1.385000);
positions[176] = Vec3(0.261000,1.348000,0.302000);
positions[177] = Vec3(0.105000,1.009000,1.732000);
positions[178] = Vec3(0.674000,0.205000,1.487000);
positions[179] = Vec3(0.079000,0.347000,0.039000);
positions[180] = Vec3(1.432000,0.850000,1.396000);
positions[181] = Vec3(0.078000,0.160000,0.320000);
positions[182] = Vec3(1.189000,1.331000,0.125000);
positions[183] = Vec3(0.615000,0.840000,1.431000);
positions[184] = Vec3(1.487000,1.760000,0.947000);
positions[185] = Vec3(0.726000,0.567000,1.710000);
positions[186] = Vec3(1.446000,1.228000,1.637000);
positions[187] = Vec3(0.388000,1.749000,1.556000);
positions[188] = Vec3(1.678000,0.886000,1.240000);
positions[189] = Vec3(1.219000,0.319000,0.453000);
positions[190] = Vec3(0.590000,0.747000,0.646000);
positions[191] = Vec3(1.773000,0.340000,1.646000);
positions[192] = Vec3(1.734000,0.934000,1.517000);
positions[193] = Vec3(0.859000,1.362000,0.018000);
positions[194] = Vec3(0.663000,1.794000,0.947000);
positions[195] = Vec3(1.410000,1.851000,1.716000);
positions[196] = Vec3(0.852000,0.964000,0.855000);
positions[197] = Vec3(1.077000,0.985000,0.084000);
positions[198] = Vec3(1.860000,1.561000,0.837000);
positions[199] = Vec3(0.225000,1.312000,1.852000);
positions[200] = Vec3(0.077000,1.234000,0.651000);
positions[201] = Vec3(0.672000,1.381000,1.628000);
positions[202] = Vec3(1.828000,0.192000,1.231000);
positions[203] = Vec3(0.432000,0.426000,0.516000);
positions[204] = Vec3(1.699000,1.481000,1.096000);
positions[205] = Vec3(0.317000,0.549000,1.284000);
positions[206] = Vec3(0.816000,1.586000,0.691000);
positions[207] = Vec3(1.414000,0.223000,1.110000);
positions[208] = Vec3(0.997000,0.034000,1.152000);
positions[209] = Vec3(0.766000,1.322000,0.309000);
positions[210] = Vec3(0.624000,1.567000,1.274000);
positions[211] = Vec3(1.350000,0.050000,0.178000);
positions[212] = Vec3(1.300000,0.457000,0.697000);
positions[213] = Vec3(1.587000,0.231000,0.872000);
positions[214] = Vec3(0.037000,1.067000,0.314000);
positions[215] = Vec3(0.881000,1.652000,0.349000);
ASSERT_EQUAL_VEC(Vec3( 8.20831e+02, -2.39265e+03, -6.09672e+03), forces1[0], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.66890e+03, 6.12680e+02, 3.26391e+03), forces1[1], TOL);
ASSERT_EQUAL_VEC(Vec3( 8.42139e+02, -5.74020e+03, 9.84681e+02), forces1[2], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.69160e+03, 1.01636e+03, 6.75540e+03), forces1[3], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.04482e+03, 3.89997e+03, 2.79360e+03), forces1[4], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.26801e+03, -3.29937e+03, 6.58525e+03), forces1[5], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.93732e+02, 2.25275e+03, 1.91836e+03), forces1[6], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.61305e+03, -3.55422e+03, -1.60219e+03), forces1[7], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.67011e+03, -5.46823e+03, 2.25854e+03), forces1[8], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.62573e+02, -6.23724e+02, -5.13133e+02), forces1[9], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.46776e+03, -3.41003e+03, 2.99350e+03), forces1[10], TOL);
ASSERT_EQUAL_VEC(Vec3( 7.19389e+02, 4.84737e+03, -3.44817e+03), forces1[11], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.37720e+03, 2.57617e+03, 4.45894e+03), forces1[12], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.38896e+03, 6.92339e+02, -2.28233e+03), forces1[13], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.34724e+03, 1.55928e+03, -8.39021e+02), forces1[14], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.87328e+03, -6.05077e+03, -5.52405e+01), forces1[15], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.59340e+02, 2.11984e+03, 1.90096e+03), forces1[16], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.68172e+03, 3.02879e+03, 3.29144e+03), forces1[17], TOL);
ASSERT_EQUAL_VEC(Vec3(-7.66130e+02, -8.30274e+02, -1.03855e+03), forces1[18], TOL);
ASSERT_EQUAL_VEC(Vec3(-9.02251e+02, 7.56454e+02, 5.31355e+03), forces1[19], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.34128e+03, -2.94917e+03, 3.50106e+03), forces1[20], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.77098e+02, 5.38413e+02, -4.41910e+03), forces1[21], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.89246e+03, -5.97683e+02, -3.30100e+03), forces1[22], TOL);
ASSERT_EQUAL_VEC(Vec3( 9.40266e+02, -4.34341e+03, 4.12621e+02), forces1[23], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.27412e+02, 4.81821e+03, -1.68854e+03), forces1[24], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.63257e+03, -1.35266e+03, -6.23284e+03), forces1[25], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.65374e+03, -1.71701e+03, -4.12940e+02), forces1[26], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.63783e+03, 7.89849e+02, -4.70729e+03), forces1[27], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.95083e+02, 2.48159e+03, 3.71529e+02), forces1[28], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.11286e+03, 4.76531e+03, -1.48722e+03), forces1[29], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.90111e+03, -4.15823e+03, 4.91827e+02), forces1[30], TOL);
ASSERT_EQUAL_VEC(Vec3( 5.31981e+02, -4.61129e+03, -2.26205e+03), forces1[31], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.03402e+03, 2.12277e+03, 4.91126e+03), forces1[32], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.44507e+03, -3.49316e+03, -5.49954e+03), forces1[33], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.39561e+03, 2.02390e+03, 2.72189e+03), forces1[34], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.97484e+02, 1.13306e+03, -1.93722e+03), forces1[35], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.45524e+03, 3.98770e+03, 7.60267e+03), forces1[36], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.18423e+03, 4.30156e+03, 3.13845e+03), forces1[37], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.04712e+03, -4.29254e+03, -1.92390e+03), forces1[38], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.99421e+03, -3.21174e+03, 1.17411e+03), forces1[39], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.00560e+03, 1.25694e+03, -4.55931e+03), forces1[40], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.89329e+03, -1.51189e+01, -1.18920e+03), forces1[41], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.03033e+02, -6.94191e+02, -4.34602e+02), forces1[42], TOL);
ASSERT_EQUAL_VEC(Vec3(-6.55058e+02, 1.86989e+03, -3.20756e+03), forces1[43], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.99529e+03, -8.56961e+02, 2.77210e+02), forces1[44], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.55907e+03, 9.98209e+02, -3.44569e+03), forces1[45], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.15199e+03, -1.77071e+03, 5.33110e+03), forces1[46], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.26890e+03, -2.94837e+03, 8.33300e+02), forces1[47], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.51787e+03, -7.54147e+01, -2.54823e+03), forces1[48], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.76665e+02, 5.52051e+01, -4.82452e+03), forces1[49], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.83919e+03, -3.19345e+03, -1.38614e+02), forces1[50], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.64733e+03, -4.85988e+02, 1.58748e+03), forces1[51], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.83833e+03, 4.19049e+02, -3.08232e+03), forces1[52], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.98287e+03, -3.79608e+02, 2.27447e+03), forces1[53], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.78494e+03, 2.53005e+03, 5.27322e+03), forces1[54], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.31841e+03, 2.35268e+03, 1.34939e+03), forces1[55], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.74641e+03, 2.10630e+03, -6.12271e+03), forces1[56], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.88262e+03, -6.78448e+02, -5.86008e+02), forces1[57], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.78310e+03, 3.67569e+03, -5.48426e+03), forces1[58], TOL);
ASSERT_EQUAL_VEC(Vec3(-5.77653e+02, -7.87374e+02, -6.40935e+03), forces1[59], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.37566e+03, 5.52391e+01, -1.70338e+03), forces1[60], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.99837e+03, 1.04005e+03, -3.77353e+03), forces1[61], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.43485e+03, -3.94193e+03, -3.55960e+03), forces1[62], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.55209e+03, 4.32310e+03, -3.81592e+03), forces1[63], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.46103e+03, -2.98437e+01, 1.00764e+03), forces1[64], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.53255e+03, 5.72328e+02, 3.29519e+03), forces1[65], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.82686e+03, -3.71524e+03, 1.39122e+03), forces1[66], TOL);
ASSERT_EQUAL_VEC(Vec3( 9.04332e+02, -1.44800e+03, 1.57545e+03), forces1[67], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.65856e+03, -2.91481e+03, -6.58907e+03), forces1[68], TOL);
ASSERT_EQUAL_VEC(Vec3( 7.91644e+01, -2.15682e+03, -3.07897e+03), forces1[69], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.95388e+03, 2.61355e+03, 4.74935e+03), forces1[70], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.29404e+03, 3.50134e+03, -4.86504e+02), forces1[71], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.14843e+03, 1.61997e+03, 1.29062e+02), forces1[72], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.61669e+02, 2.47980e+03, 4.78886e+03), forces1[73], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.99354e+03, -1.69720e+02, 2.49340e+03), forces1[74], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.08445e+03, -1.01329e+03, -5.61532e+03), forces1[75], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.35395e+03, -1.97243e+01, -5.03609e+03), forces1[76], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.47258e+03, 1.21225e+03, -2.47694e+03), forces1[77], TOL);
ASSERT_EQUAL_VEC(Vec3( 8.53025e+02, 1.39626e+03, -2.30775e+03), forces1[78], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.74282e+02, 2.21205e+01, 3.40311e+03), forces1[79], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.36776e+02, -4.10780e+01, 2.79555e+03), forces1[80], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.69213e+03, 6.43038e+02, -3.89146e+02), forces1[81], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.01650e+03, -1.17165e+03, -6.24864e+02), forces1[82], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.65143e+03, -1.05607e+03, -2.69230e+03), forces1[83], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.54149e+03, 1.23378e+03, 4.47771e+03), forces1[84], TOL);
ASSERT_EQUAL_VEC(Vec3(-8.11638e+01, 2.00025e+03, -1.71647e+02), forces1[85], TOL);
ASSERT_EQUAL_VEC(Vec3( 9.38381e+02, 1.50858e+03, 3.47900e+03), forces1[86], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.28386e+03, -2.22518e+03, 4.11658e+03), forces1[87], TOL);
ASSERT_EQUAL_VEC(Vec3( 6.58540e+02, 6.72073e+00, 5.59222e+03), forces1[88], TOL);
ASSERT_EQUAL_VEC(Vec3(-7.37375e+02, 1.58093e+03, -4.69233e+03), forces1[89], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.31447e+02, 2.70054e+03, -3.14237e+03), forces1[90], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.57743e+03, 2.12445e+03, 1.15150e+03), forces1[91], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.00033e+03, 8.53614e+02, 1.35134e+03), forces1[92], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.46523e+03, 4.12002e+03, -1.15956e+03), forces1[93], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.47726e+03, -2.12844e+03, -2.30722e+03), forces1[94], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.51392e+03, 2.47607e+02, 1.92133e+03), forces1[95], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.91466e+03, 8.10118e+02, -1.02985e+03), forces1[96], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.37128e+03, -2.45940e+03, 3.70728e+02), forces1[97], TOL);
ASSERT_EQUAL_VEC(Vec3(-5.65127e+01, -3.42531e+01, 9.60430e+03), forces1[98], TOL);
ASSERT_EQUAL_VEC(Vec3( 6.15217e+02, -1.68773e+03, 1.42295e+03), forces1[99], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.09417e+02, 2.10263e+03, 1.04784e+03), forces1[100], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.93317e+03, 2.06687e+03, -1.64072e+03), forces1[101], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.36623e+03, -2.43368e+03, 1.57335e+03), forces1[102], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.66360e+03, -3.56116e+03, 4.66828e+02), forces1[103], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.46239e+03, -2.54761e+03, 7.26200e+02), forces1[104], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.48952e+03, 2.17361e+03, -2.35016e+03), forces1[105], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.04960e+03, 2.83274e+03, 4.20052e+03), forces1[106], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.08299e+03, 1.18791e+03, -4.67708e+03), forces1[107], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.42314e+03, -2.95658e+03, -1.31832e+03), forces1[108], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.76388e+03, 4.33363e+03, 3.15347e+03), forces1[109], TOL);
ASSERT_EQUAL_VEC(Vec3(-8.49993e+02, 1.28674e+03, -5.50558e+03), forces1[110], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.77761e+02, -1.41841e+03, 2.92791e+02), forces1[111], TOL);
ASSERT_EQUAL_VEC(Vec3(-7.08175e+02, -5.37887e+03, 3.78340e+03), forces1[112], TOL);
ASSERT_EQUAL_VEC(Vec3(-5.91441e+02, 2.10098e+03, -4.82150e+00), forces1[113], TOL);
ASSERT_EQUAL_VEC(Vec3(-6.92132e+02, 4.62800e+03, 4.45194e+03), forces1[114], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.31335e+03, 3.51626e+03, -2.57372e+03), forces1[115], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.55816e+03, -1.01211e+03, -5.58678e+03), forces1[116], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.24174e+03, 1.25094e+03, -6.95682e+02), forces1[117], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.93053e+03, -1.12989e+03, -1.22677e+03), forces1[118], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.86217e+02, 4.00249e+02, -2.23733e+03), forces1[119], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.26876e+03, -3.20779e+03, -4.08934e+03), forces1[120], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.18596e+03, -7.37298e+02, 7.15904e+03), forces1[121], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.95098e+03, -3.37054e+03, -2.70316e+03), forces1[122], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.35471e+03, 2.40580e+03, 1.84528e+03), forces1[123], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.61347e+03, -3.36020e+03, -3.99614e+03), forces1[124], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.72566e+03, -1.88479e+03, -1.69932e+03), forces1[125], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.62207e+03, 1.43319e+03, 7.47053e+02), forces1[126], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.80955e+03, -4.54150e+02, 7.21597e+03), forces1[127], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.56885e+01, 1.48364e+03, -1.62205e+03), forces1[128], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.47403e+02, -2.07399e+03, 1.49903e+03), forces1[129], TOL);
ASSERT_EQUAL_VEC(Vec3( 9.86979e+01, 2.60134e+03, 2.12407e+02), forces1[130], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.27811e+03, 3.71499e+03, -4.95036e+03), forces1[131], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.80783e+03, -1.54371e+03, -4.77208e+03), forces1[132], TOL);
ASSERT_EQUAL_VEC(Vec3(-9.61648e+01, -2.59415e+03, 1.96258e+03), forces1[133], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.89381e+02, 4.81189e+03, 9.17885e+02), forces1[134], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.93800e+02, 1.38919e+03, -2.46053e+03), forces1[135], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.62694e+03, 2.35155e+03, 3.91729e+03), forces1[136], TOL);
ASSERT_EQUAL_VEC(Vec3( 5.31966e+03, -8.44013e+02, -3.54397e+03), forces1[137], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.35304e+02, -3.23988e+03, -2.69527e+03), forces1[138], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.44149e+03, -2.15586e+03, 3.15946e+03), forces1[139], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.23043e+02, 2.28842e+03, -3.86313e+03), forces1[140], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.70608e+02, 7.17360e+02, 1.22594e+03), forces1[141], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.21938e+03, 8.98142e+02, 1.48998e+03), forces1[142], TOL);
ASSERT_EQUAL_VEC(Vec3(-6.45287e+02, -9.68214e+02, 1.22919e+03), forces1[143], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.76443e+03, 2.83867e+02, -4.18068e+03), forces1[144], TOL);
ASSERT_EQUAL_VEC(Vec3(-6.06308e+02, 1.35580e+03, 3.57015e+03), forces1[145], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.13396e+03, -2.12738e+03, 4.47039e+00), forces1[146], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.45064e+03, 7.41311e+02, -4.13913e+03), forces1[147], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.08512e+02, 1.56784e+03, 4.52361e+03), forces1[148], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.01824e+02, -2.64844e+03, -2.53109e+03), forces1[149], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.89630e+03, 4.60390e+03, -2.34064e+03), forces1[150], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.39723e+03, 1.74535e+03, 3.47741e+03), forces1[151], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.18808e+03, -1.14056e+03, 5.07060e+02), forces1[152], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.47101e+03, -2.10613e+03, -1.86346e+03), forces1[153], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.73424e+03, -4.59311e+03, -6.97340e+03), forces1[154], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.25831e+02, 2.12782e+03, 6.03112e+02), forces1[155], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.55032e+03, 3.85747e+03, 5.93351e+03), forces1[156], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.28816e+02, -3.00207e+03, 2.10094e+02), forces1[157], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.23671e+03, -1.00832e+03, 2.76637e+03), forces1[158], TOL);
ASSERT_EQUAL_VEC(Vec3(-6.46593e+02, 1.33324e+03, 4.52795e+03), forces1[159], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.37177e+03, 2.53533e+02, -7.78677e+02), forces1[160], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.47620e+03, -1.99006e+02, -3.16482e+03), forces1[161], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.00679e+03, 1.70898e+03, 4.88103e+03), forces1[162], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.52761e+03, -5.32723e+02, 4.40420e+03), forces1[163], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.92570e+03, 3.00581e+03, -4.10543e+03), forces1[164], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.62169e+02, 1.69864e+03, -8.35330e+02), forces1[165], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.40942e+03, -5.87402e+01, 2.05229e+03), forces1[166], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.77206e+03, 2.68955e+02, 9.28640e+02), forces1[167], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.56436e+03, -8.49851e+02, 2.03495e+03), forces1[168], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.17554e+03, -2.75544e+03, 3.21077e+03), forces1[169], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.85777e+03, -1.86570e+03, 1.68128e+02), forces1[170], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.03897e+03, 1.61130e+02, -1.77268e+03), forces1[171], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.72766e+02, 1.73951e+03, -1.87733e+03), forces1[172], TOL);
ASSERT_EQUAL_VEC(Vec3(-6.55527e+02, 2.24951e+03, -4.12361e+03), forces1[173], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.02507e+03, -1.03114e+03, 3.14422e+03), forces1[174], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.43834e+03, 3.75451e+02, 2.19531e+03), forces1[175], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.78662e+03, 3.61832e+02, 6.06302e+03), forces1[176], TOL);
ASSERT_EQUAL_VEC(Vec3( 3.01198e+02, -1.53666e+03, 2.85060e+03), forces1[177], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.07398e+03, 6.61994e+02, -8.61972e+02), forces1[178], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.54259e+03, 9.35531e+02, 2.58246e+03), forces1[179], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.22576e+03, -3.02376e+03, -7.71072e+02), forces1[180], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.76413e+03, -2.59918e+03, 9.81425e+02), forces1[181], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.99912e+03, -2.08518e+03, 2.96759e+03), forces1[182], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.05925e+03, -7.79905e+02, -6.83796e+01), forces1[183], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.17328e+03, -3.35387e+03, -5.62594e+03), forces1[184], TOL);
ASSERT_EQUAL_VEC(Vec3( 4.34398e+03, 1.27413e+03, 1.09523e+03), forces1[185], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.38740e+03, 3.55672e+03, 1.53500e+03), forces1[186], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.14439e+03, 3.47927e+03, -2.29435e+03), forces1[187], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.52579e+03, 1.41487e+03, -6.37862e+03), forces1[188], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.17319e+03, -3.07753e+03, 2.16801e+03), forces1[189], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.61247e+03, 1.39162e+03, -3.30074e+03), forces1[190], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.53680e+03, -5.26042e+02, 1.85855e+03), forces1[191], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.88755e+03, 3.66622e+02, 1.40663e+02), forces1[192], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.97756e+02, -5.48803e+03, 9.38250e+02), forces1[193], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.26511e+03, 1.95703e+03, -3.01994e+03), forces1[194], TOL);
ASSERT_EQUAL_VEC(Vec3( 8.24840e+02, 3.33922e+02, -2.23925e+03), forces1[195], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.16139e+03, 3.33085e+03, -2.67863e+03), forces1[196], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.94535e+03, 4.31827e+02, -1.43010e+03), forces1[197], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.15722e+02, -3.67489e+03, -6.60062e+03), forces1[198], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.08549e+03, -1.10080e+03, 3.87260e+03), forces1[199], TOL);
ASSERT_EQUAL_VEC(Vec3(-7.34195e+02, -2.62191e+03, -6.68007e+02), forces1[200], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.43085e+02, -4.49257e+03, 1.69265e+03), forces1[201], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.61784e+03, 1.36449e+02, 1.89887e+03), forces1[202], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.77060e+03, 1.21537e+03, -1.61977e+03), forces1[203], TOL);
ASSERT_EQUAL_VEC(Vec3(-3.11482e+03, -3.10409e+03, -3.86688e+03), forces1[204], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.21598e+02, 5.26726e+02, 1.90196e+03), forces1[205], TOL);
ASSERT_EQUAL_VEC(Vec3( 1.86923e+03, 3.90716e+02, 1.66422e+03), forces1[206], TOL);
ASSERT_EQUAL_VEC(Vec3(-4.87140e+03, 4.24474e+03, -6.93148e+02), forces1[207], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.07292e+03, -6.60370e+01, -1.35550e+03), forces1[208], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.62135e+03, -4.27394e+03, 3.63843e+03), forces1[209], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.91469e+03, 1.89371e+02, -4.65934e+03), forces1[210], TOL);
ASSERT_EQUAL_VEC(Vec3(-7.40876e+02, -1.17545e+03, 5.03240e+03), forces1[211], TOL);
ASSERT_EQUAL_VEC(Vec3(-5.36901e+02, 1.95912e+03, 2.90388e+03), forces1[212], TOL);
ASSERT_EQUAL_VEC(Vec3(-2.55522e+03, 4.34339e+03, -5.12296e+03), forces1[213], TOL);
ASSERT_EQUAL_VEC(Vec3(-1.08022e+03, -4.69890e+03, 6.58358e+03), forces1[214], TOL);
ASSERT_EQUAL_VEC(Vec3( 2.42115e+03, 2.85514e+03, 5.90927e+03), forces1[215], TOL);
ASSERT_EQUAL_VEC(Vec3( 7.81395e+02, -2.24376e+03, -5.64296e+03), forces1[0], tol);
ASSERT_EQUAL_VEC(Vec3(-3.41638e+03, 4.75651e+02, 2.88205e+03), forces1[1], tol);
ASSERT_EQUAL_VEC(Vec3( 8.57684e+02, -5.15013e+03, 1.02274e+03), forces1[2], tol);
ASSERT_EQUAL_VEC(Vec3(-1.45223e+03, 1.10251e+03, 6.14825e+03), forces1[3], tol);
ASSERT_EQUAL_VEC(Vec3( 1.02431e+03, 3.50735e+03, 2.77472e+03), forces1[4], tol);
ASSERT_EQUAL_VEC(Vec3( 1.25665e+03, -3.12462e+03, 6.41020e+03), forces1[5], tol);
ASSERT_EQUAL_VEC(Vec3( 2.47138e+02, 2.12204e+03, 2.04009e+03), forces1[6], tol);
ASSERT_EQUAL_VEC(Vec3(-2.39642e+03, -3.40917e+03, -1.12362e+03), forces1[7], tol);
ASSERT_EQUAL_VEC(Vec3( 1.41293e+03, -5.18962e+03, 1.76870e+03), forces1[8], tol);
ASSERT_EQUAL_VEC(Vec3(-1.47922e+02, -6.89865e+02, -4.71945e+02), forces1[9], tol);
ASSERT_EQUAL_VEC(Vec3( 4.20867e+03, -3.23619e+03, 3.06715e+03), forces1[10], tol);
ASSERT_EQUAL_VEC(Vec3( 6.87714e+02, 4.98096e+03, -3.17263e+03), forces1[11], tol);
ASSERT_EQUAL_VEC(Vec3(-2.04390e+03, 2.28425e+03, 4.17975e+03), forces1[12], tol);
ASSERT_EQUAL_VEC(Vec3( 4.05764e+03, 5.22799e+02, -2.04755e+03), forces1[13], tol);
ASSERT_EQUAL_VEC(Vec3( 1.21615e+03, 1.51207e+03, -7.94748e+02), forces1[14], tol);
ASSERT_EQUAL_VEC(Vec3(-1.70190e+03, -5.66227e+03, 2.10683e+02), forces1[15], tol);
ASSERT_EQUAL_VEC(Vec3(-2.96079e+02, 2.22753e+03, 2.01181e+03), forces1[16], tol);
ASSERT_EQUAL_VEC(Vec3(-1.71683e+03, 3.18097e+03, 3.09503e+03), forces1[17], tol);
ASSERT_EQUAL_VEC(Vec3(-6.73971e+02, -9.46527e+02, -1.22747e+03), forces1[18], tol);
ASSERT_EQUAL_VEC(Vec3(-1.04754e+03, 8.74124e+02, 4.96790e+03), forces1[19], tol);
ASSERT_EQUAL_VEC(Vec3(-1.32473e+03, -2.64954e+03, 3.16669e+03), forces1[20], tol);
ASSERT_EQUAL_VEC(Vec3(-5.96586e+02, 4.05254e+02, -3.94705e+03), forces1[21], tol);
ASSERT_EQUAL_VEC(Vec3( 1.78147e+03, -5.47152e+02, -3.06485e+03), forces1[22], tol);
ASSERT_EQUAL_VEC(Vec3( 7.80190e+02, -3.93572e+03, 3.75029e+02), forces1[23], tol);
ASSERT_EQUAL_VEC(Vec3( 1.08125e+02, 4.75027e+03, -1.58796e+03), forces1[24], tol);
ASSERT_EQUAL_VEC(Vec3( 2.61804e+03, -1.11367e+03, -5.66141e+03), forces1[25], tol);
ASSERT_EQUAL_VEC(Vec3(-1.59726e+03, -1.73397e+03, -4.39403e+02), forces1[26], tol);
ASSERT_EQUAL_VEC(Vec3( 1.82318e+03, 7.86310e+02, -4.37817e+03), forces1[27], tol);
ASSERT_EQUAL_VEC(Vec3( 2.88984e+02, 2.39419e+03, 4.31457e+02), forces1[28], tol);
ASSERT_EQUAL_VEC(Vec3( 8.72977e+02, 4.62083e+03, -1.68575e+03), forces1[29], tol);
ASSERT_EQUAL_VEC(Vec3( 4.55867e+03, -3.88425e+03, 2.89053e+02), forces1[30], tol);
ASSERT_EQUAL_VEC(Vec3( 5.91178e+02, -4.54519e+03, -2.39303e+03), forces1[31], tol);
ASSERT_EQUAL_VEC(Vec3(-1.95602e+03, 2.33597e+03, 4.78436e+03), forces1[32], tol);
ASSERT_EQUAL_VEC(Vec3(-1.27560e+03, -3.38721e+03, -5.06182e+03), forces1[33], tol);
ASSERT_EQUAL_VEC(Vec3(-1.19020e+03, 1.83346e+03, 2.51092e+03), forces1[34], tol);
ASSERT_EQUAL_VEC(Vec3(-1.10513e+02, 1.13998e+03, -1.52275e+03), forces1[35], tol);
ASSERT_EQUAL_VEC(Vec3( 1.68671e+03, 3.69999e+03, 7.03787e+03), forces1[36], tol);
ASSERT_EQUAL_VEC(Vec3( 1.22806e+03, 4.12870e+03, 2.90958e+03), forces1[37], tol);
ASSERT_EQUAL_VEC(Vec3( 1.76222e+03, -4.08023e+03, -1.65434e+03), forces1[38], tol);
ASSERT_EQUAL_VEC(Vec3( 2.08072e+03, -3.11977e+03, 1.20319e+03), forces1[39], tol);
ASSERT_EQUAL_VEC(Vec3(-2.80510e+03, 9.75488e+02, -4.40838e+03), forces1[40], tol);
ASSERT_EQUAL_VEC(Vec3(-4.46430e+03, 6.29426e+01, -1.04190e+03), forces1[41], tol);
ASSERT_EQUAL_VEC(Vec3(-5.60547e-01, -6.67179e+02, -3.61628e+02), forces1[42], tol);
ASSERT_EQUAL_VEC(Vec3(-8.47969e+02, 1.84208e+03, -3.29533e+03), forces1[43], tol);
ASSERT_EQUAL_VEC(Vec3(-1.85411e+03, -8.28229e+02, 2.67051e+02), forces1[44], tol);
ASSERT_EQUAL_VEC(Vec3( 1.48125e+03, 9.07866e+02, -3.21570e+03), forces1[45], tol);
ASSERT_EQUAL_VEC(Vec3( 3.23665e+03, -1.66933e+03, 5.08021e+03), forces1[46], tol);
ASSERT_EQUAL_VEC(Vec3( 1.36771e+03, -2.76250e+03, 8.66163e+02), forces1[47], tol);
ASSERT_EQUAL_VEC(Vec3( 1.30067e+03, -4.20410e+02, -2.19970e+03), forces1[48], tol);
ASSERT_EQUAL_VEC(Vec3( 3.84727e+02, 2.75755e+02, -4.50639e+03), forces1[49], tol);
ASSERT_EQUAL_VEC(Vec3(-4.46292e+03, -3.29670e+03, 5.77875e+01), forces1[50], tol);
ASSERT_EQUAL_VEC(Vec3(-1.42909e+03, -4.63751e+02, 1.40658e+03), forces1[51], tol);
ASSERT_EQUAL_VEC(Vec3(-3.67247e+03, 5.77411e+02, -2.84365e+03), forces1[52], tol);
ASSERT_EQUAL_VEC(Vec3(-3.12925e+03, -4.18865e+02, 1.97995e+03), forces1[53], tol);
ASSERT_EQUAL_VEC(Vec3( 1.74545e+03, 2.63271e+03, 4.91593e+03), forces1[54], tol);
ASSERT_EQUAL_VEC(Vec3(-1.34375e+03, 2.10299e+03, 1.17219e+03), forces1[55], tol);
ASSERT_EQUAL_VEC(Vec3(-2.57210e+03, 1.93316e+03, -5.94812e+03), forces1[56], tol);
ASSERT_EQUAL_VEC(Vec3(-3.47040e+03, -4.96811e+02, -6.49288e+02), forces1[57], tol);
ASSERT_EQUAL_VEC(Vec3(-3.40820e+03, 3.19088e+03, -5.09754e+03), forces1[58], tol);
ASSERT_EQUAL_VEC(Vec3(-3.78815e+02, -7.71765e+02, -5.70982e+03), forces1[59], tol);
ASSERT_EQUAL_VEC(Vec3(-2.23245e+03, 5.57425e+01, -1.61691e+03), forces1[60], tol);
ASSERT_EQUAL_VEC(Vec3( 1.76450e+03, 1.03368e+03, -3.13818e+03), forces1[61], tol);
ASSERT_EQUAL_VEC(Vec3( 2.60793e+03, -3.75709e+03, -3.48670e+03), forces1[62], tol);
ASSERT_EQUAL_VEC(Vec3( 1.19627e+03, 3.93696e+03, -3.75609e+03), forces1[63], tol);
ASSERT_EQUAL_VEC(Vec3(-1.26385e+03, 6.29965e+00, 7.85481e+02), forces1[64], tol);
ASSERT_EQUAL_VEC(Vec3(-1.52863e+03, 6.26283e+02, 3.02826e+03), forces1[65], tol);
ASSERT_EQUAL_VEC(Vec3( 2.85996e+03, -3.47431e+03, 1.41214e+03), forces1[66], tol);
ASSERT_EQUAL_VEC(Vec3( 8.96229e+02, -1.28541e+03, 1.57633e+03), forces1[67], tol);
ASSERT_EQUAL_VEC(Vec3( 1.36115e+03, -2.85451e+03, -6.02815e+03), forces1[68], tol);
ASSERT_EQUAL_VEC(Vec3( 9.47616e+01, -1.93253e+03, -2.80355e+03), forces1[69], tol);
ASSERT_EQUAL_VEC(Vec3(-2.06668e+03, 2.50929e+03, 4.48123e+03), forces1[70], tol);
ASSERT_EQUAL_VEC(Vec3( 4.12779e+03, 3.75075e+03, -5.63605e+02), forces1[71], tol);
ASSERT_EQUAL_VEC(Vec3( 1.06694e+03, 1.39962e+03, 1.21526e+01), forces1[72], tol);
ASSERT_EQUAL_VEC(Vec3(-3.26310e+02, 2.55496e+03, 4.42107e+03), forces1[73], tol);
ASSERT_EQUAL_VEC(Vec3(-3.20066e+03, -5.75233e+01, 2.45568e+03), forces1[74], tol);
ASSERT_EQUAL_VEC(Vec3(-1.90153e+03, -9.20955e+02, -5.17481e+03), forces1[75], tol);
ASSERT_EQUAL_VEC(Vec3(-3.24755e+03, -1.22583e+02, -4.65412e+03), forces1[76], tol);
ASSERT_EQUAL_VEC(Vec3( 3.40981e+03, 1.09397e+03, -2.37410e+03), forces1[77], tol);
ASSERT_EQUAL_VEC(Vec3( 7.22031e+02, 1.40698e+03, -2.44089e+03), forces1[78], tol);
ASSERT_EQUAL_VEC(Vec3(-1.86429e+02, -8.41907e+01, 3.28179e+03), forces1[79], tol);
ASSERT_EQUAL_VEC(Vec3( 1.90921e+02, -1.74691e+02, 2.53874e+03), forces1[80], tol);
ASSERT_EQUAL_VEC(Vec3( 1.57370e+03, 5.26282e+02, -3.89222e+02), forces1[81], tol);
ASSERT_EQUAL_VEC(Vec3( 1.95972e+03, -1.14620e+03, -7.15428e+02), forces1[82], tol);
ASSERT_EQUAL_VEC(Vec3(-1.56500e+03, -9.56419e+02, -2.52142e+03), forces1[83], tol);
ASSERT_EQUAL_VEC(Vec3(-1.53748e+03, 1.25065e+03, 4.07024e+03), forces1[84], tol);
ASSERT_EQUAL_VEC(Vec3(-1.36647e+02, 1.83320e+03, -1.41056e+02), forces1[85], tol);
ASSERT_EQUAL_VEC(Vec3( 8.30346e+02, 1.62257e+03, 3.43447e+03), forces1[86], tol);
ASSERT_EQUAL_VEC(Vec3(-2.96945e+03, -2.11519e+03, 3.73979e+03), forces1[87], tol);
ASSERT_EQUAL_VEC(Vec3( 9.30336e+02, 3.08131e+02, 5.22476e+03), forces1[88], tol);
ASSERT_EQUAL_VEC(Vec3(-5.72867e+02, 1.94616e+03, -4.33229e+03), forces1[89], tol);
ASSERT_EQUAL_VEC(Vec3( 3.06499e+02, 2.33050e+03, -2.71202e+03), forces1[90], tol);
ASSERT_EQUAL_VEC(Vec3( 3.52898e+03, 1.89760e+03, 1.07975e+03), forces1[91], tol);
ASSERT_EQUAL_VEC(Vec3(-9.92324e+02, 1.00110e+03, 1.32013e+03), forces1[92], tol);
ASSERT_EQUAL_VEC(Vec3(-2.31307e+03, 3.98242e+03, -1.02506e+03), forces1[93], tol);
ASSERT_EQUAL_VEC(Vec3( 2.30693e+03, -2.01862e+03, -2.03253e+03), forces1[94], tol);
ASSERT_EQUAL_VEC(Vec3(-2.62740e+03, -1.48134e+01, 1.87756e+03), forces1[95], tol);
ASSERT_EQUAL_VEC(Vec3( 1.88913e+03, 8.03596e+02, -1.23434e+03), forces1[96], tol);
ASSERT_EQUAL_VEC(Vec3( 1.45242e+03, -2.21059e+03, 4.78199e+02), forces1[97], tol);
ASSERT_EQUAL_VEC(Vec3(-9.04797e+01, -2.70095e+02, 8.78628e+03), forces1[98], tol);
ASSERT_EQUAL_VEC(Vec3( 6.25127e+02, -1.59620e+03, 1.13396e+03), forces1[99], tol);
ASSERT_EQUAL_VEC(Vec3( 4.23517e+02, 1.85007e+03, 1.20743e+03), forces1[100], tol);
ASSERT_EQUAL_VEC(Vec3( 4.72907e+03, 1.91317e+03, -1.55500e+03), forces1[101], tol);
ASSERT_EQUAL_VEC(Vec3( 2.13080e+03, -2.17459e+03, 1.52665e+03), forces1[102], tol);
ASSERT_EQUAL_VEC(Vec3( 2.50643e+03, -3.60912e+03, 3.39730e+02), forces1[103], tol);
ASSERT_EQUAL_VEC(Vec3(-1.29263e+03, -2.47046e+03, 5.31127e+02), forces1[104], tol);
ASSERT_EQUAL_VEC(Vec3(-1.45864e+03, 2.09072e+03, -2.23999e+03), forces1[105], tol);
ASSERT_EQUAL_VEC(Vec3(-1.95528e+03, 2.55035e+03, 4.09532e+03), forces1[106], tol);
ASSERT_EQUAL_VEC(Vec3(-1.82543e+03, 1.02190e+03, -4.59571e+03), forces1[107], tol);
ASSERT_EQUAL_VEC(Vec3(-1.04587e+03, -2.63092e+03, -1.33628e+03), forces1[108], tol);
ASSERT_EQUAL_VEC(Vec3( 3.50969e+03, 4.03446e+03, 2.88379e+03), forces1[109], tol);
ASSERT_EQUAL_VEC(Vec3(-8.56618e+02, 1.03931e+03, -5.26519e+03), forces1[110], tol);
ASSERT_EQUAL_VEC(Vec3(-3.89379e+02, -1.25441e+03, 2.36325e+02), forces1[111], tol);
ASSERT_EQUAL_VEC(Vec3(-4.87833e+02, -5.14086e+03, 3.46189e+03), forces1[112], tol);
ASSERT_EQUAL_VEC(Vec3(-7.13299e+02, 1.85133e+03, 3.52159e+01), forces1[113], tol);
ASSERT_EQUAL_VEC(Vec3(-5.46036e+02, 4.19172e+03, 4.55994e+03), forces1[114], tol);
ASSERT_EQUAL_VEC(Vec3(-1.10230e+03, 3.31250e+03, -2.26660e+03), forces1[115], tol);
ASSERT_EQUAL_VEC(Vec3( 1.62670e+03, -8.96957e+02, -5.06349e+03), forces1[116], tol);
ASSERT_EQUAL_VEC(Vec3(-2.14847e+03, 1.14056e+03, -7.22707e+02), forces1[117], tol);
ASSERT_EQUAL_VEC(Vec3( 2.78481e+03, -9.98225e+02, -1.22769e+03), forces1[118], tol);
ASSERT_EQUAL_VEC(Vec3( 4.60144e+02, 5.51336e+02, -2.00384e+03), forces1[119], tol);
ASSERT_EQUAL_VEC(Vec3( 1.14038e+03, -3.12814e+03, -4.07199e+03), forces1[120], tol);
ASSERT_EQUAL_VEC(Vec3(-1.39678e+03, -6.51235e+02, 6.69417e+03), forces1[121], tol);
ASSERT_EQUAL_VEC(Vec3( 3.81749e+03, -3.17194e+03, -2.69634e+03), forces1[122], tol);
ASSERT_EQUAL_VEC(Vec3( 1.29922e+03, 2.25811e+03, 1.62147e+03), forces1[123], tol);
ASSERT_EQUAL_VEC(Vec3( 1.35615e+03, -3.33094e+03, -3.91526e+03), forces1[124], tol);
ASSERT_EQUAL_VEC(Vec3( 4.57101e+03, -2.04471e+03, -1.76261e+03), forces1[125], tol);
ASSERT_EQUAL_VEC(Vec3(-3.28688e+03, 1.31803e+03, 6.79559e+02), forces1[126], tol);
ASSERT_EQUAL_VEC(Vec3( 2.76959e+03, -3.43779e+02, 7.12520e+03), forces1[127], tol);
ASSERT_EQUAL_VEC(Vec3(-1.02244e+02, 1.38231e+03, -1.70627e+03), forces1[128], tol);
ASSERT_EQUAL_VEC(Vec3( 5.93156e+02, -2.05012e+03, 1.46838e+03), forces1[129], tol);
ASSERT_EQUAL_VEC(Vec3( 8.23910e+01, 2.42845e+03, 2.65894e+02), forces1[130], tol);
ASSERT_EQUAL_VEC(Vec3(-3.43598e+03, 3.45301e+03, -4.70466e+03), forces1[131], tol);
ASSERT_EQUAL_VEC(Vec3( 1.93691e+03, -1.38659e+03, -4.19688e+03), forces1[132], tol);
ASSERT_EQUAL_VEC(Vec3(-1.56643e+02, -2.44281e+03, 1.74638e+03), forces1[133], tol);
ASSERT_EQUAL_VEC(Vec3( 5.59739e+02, 4.42272e+03, 9.62717e+02), forces1[134], tol);
ASSERT_EQUAL_VEC(Vec3(-3.17879e+02, 1.35088e+03, -2.23636e+03), forces1[135], tol);
ASSERT_EQUAL_VEC(Vec3(-4.25421e+03, 2.14027e+03, 3.29131e+03), forces1[136], tol);
ASSERT_EQUAL_VEC(Vec3( 5.22053e+03, -7.71650e+02, -3.14739e+03), forces1[137], tol);
ASSERT_EQUAL_VEC(Vec3(-1.27241e+02, -3.07926e+03, -2.36903e+03), forces1[138], tol);
ASSERT_EQUAL_VEC(Vec3( 1.34710e+03, -2.23701e+03, 3.20973e+03), forces1[139], tol);
ASSERT_EQUAL_VEC(Vec3( 6.41458e+01, 2.13596e+03, -3.77199e+03), forces1[140], tol);
ASSERT_EQUAL_VEC(Vec3( 1.52212e+02, 7.49535e+02, 1.25961e+03), forces1[141], tol);
ASSERT_EQUAL_VEC(Vec3(-3.72915e+03, 1.02308e+03, 1.17682e+03), forces1[142], tol);
ASSERT_EQUAL_VEC(Vec3(-5.38934e+02, -8.82630e+02, 9.99076e+02), forces1[143], tol);
ASSERT_EQUAL_VEC(Vec3(-2.84710e+03, 1.30676e+02, -4.20211e+03), forces1[144], tol);
ASSERT_EQUAL_VEC(Vec3(-6.35578e+02, 1.28253e+03, 3.27364e+03), forces1[145], tol);
ASSERT_EQUAL_VEC(Vec3( 1.94588e+03, -1.86687e+03, 1.15113e+02), forces1[146], tol);
ASSERT_EQUAL_VEC(Vec3( 2.10742e+03, 6.06698e+02, -3.66025e+03), forces1[147], tol);
ASSERT_EQUAL_VEC(Vec3( 1.94082e+02, 1.65838e+03, 3.92781e+03), forces1[148], tol);
ASSERT_EQUAL_VEC(Vec3( 2.32705e+02, -2.68222e+03, -2.68046e+03), forces1[149], tol);
ASSERT_EQUAL_VEC(Vec3(-2.65594e+03, 4.33679e+03, -1.93380e+03), forces1[150], tol);
ASSERT_EQUAL_VEC(Vec3( 2.26430e+03, 1.76713e+03, 3.08533e+03), forces1[151], tol);
ASSERT_EQUAL_VEC(Vec3( 1.16099e+03, -1.09926e+03, 6.17216e+02), forces1[152], tol);
ASSERT_EQUAL_VEC(Vec3(-2.17747e+03, -1.97080e+03, -1.84794e+03), forces1[153], tol);
ASSERT_EQUAL_VEC(Vec3( 1.59593e+03, -4.81110e+03, -6.32722e+03), forces1[154], tol);
ASSERT_EQUAL_VEC(Vec3(-3.88768e+02, 1.98696e+03, 4.32825e+02), forces1[155], tol);
ASSERT_EQUAL_VEC(Vec3(-2.44197e+03, 3.67512e+03, 5.25602e+03), forces1[156], tol);
ASSERT_EQUAL_VEC(Vec3(-3.76170e+02, -3.15982e+03, 1.02597e+02), forces1[157], tol);
ASSERT_EQUAL_VEC(Vec3( 1.09569e+03, -7.51786e+02, 2.43970e+03), forces1[158], tol);
ASSERT_EQUAL_VEC(Vec3(-3.72921e+02, 9.53473e+02, 4.40497e+03), forces1[159], tol);
ASSERT_EQUAL_VEC(Vec3( 4.08636e+03, 4.18960e+02, -6.66218e+02), forces1[160], tol);
ASSERT_EQUAL_VEC(Vec3( 4.43379e+03, 2.86354e+02, -3.04825e+03), forces1[161], tol);
ASSERT_EQUAL_VEC(Vec3(-3.95999e+03, 1.75539e+03, 4.54665e+03), forces1[162], tol);
ASSERT_EQUAL_VEC(Vec3(-2.44555e+03, -5.70916e+02, 4.14145e+03), forces1[163], tol);
ASSERT_EQUAL_VEC(Vec3( 2.81265e+03, 2.90037e+03, -3.69215e+03), forces1[164], tol);
ASSERT_EQUAL_VEC(Vec3(-4.83222e+02, 1.47615e+03, -9.25771e+02), forces1[165], tol);
ASSERT_EQUAL_VEC(Vec3( 1.03594e+03, 1.66611e+02, 2.03260e+03), forces1[166], tol);
ASSERT_EQUAL_VEC(Vec3( 2.67206e+03, 9.71766e+01, 1.12756e+03), forces1[167], tol);
ASSERT_EQUAL_VEC(Vec3(-4.35292e+03, -6.24507e+02, 1.81877e+03), forces1[168], tol);
ASSERT_EQUAL_VEC(Vec3( 3.11392e+03, -2.51887e+03, 3.26204e+03), forces1[169], tol);
ASSERT_EQUAL_VEC(Vec3( 2.71116e+03, -1.56444e+03, 4.98891e+02), forces1[170], tol);
ASSERT_EQUAL_VEC(Vec3(-3.66859e+03, 1.33676e+02, -1.65944e+03), forces1[171], tol);
ASSERT_EQUAL_VEC(Vec3( 2.77175e+02, 1.49846e+03, -1.73258e+03), forces1[172], tol);
ASSERT_EQUAL_VEC(Vec3(-5.57240e+02, 1.93264e+03, -3.85013e+03), forces1[173], tol);
ASSERT_EQUAL_VEC(Vec3(-2.67904e+03, -1.00603e+03, 3.01635e+03), forces1[174], tol);
ASSERT_EQUAL_VEC(Vec3(-1.30695e+03, 3.95635e+02, 1.97939e+03), forces1[175], tol);
ASSERT_EQUAL_VEC(Vec3( 2.38047e+03, 2.94770e+02, 5.55734e+03), forces1[176], tol);
ASSERT_EQUAL_VEC(Vec3( 2.86336e+02, -1.46241e+03, 2.49958e+03), forces1[177], tol);
ASSERT_EQUAL_VEC(Vec3( 1.00719e+03, 5.37379e+02, -6.39122e+02), forces1[178], tol);
ASSERT_EQUAL_VEC(Vec3( 1.51138e+03, 9.39745e+02, 2.29787e+03), forces1[179], tol);
ASSERT_EQUAL_VEC(Vec3(-3.86035e+03, -3.13388e+03, -6.06746e+02), forces1[180], tol);
ASSERT_EQUAL_VEC(Vec3( 2.47314e+03, -2.81350e+03, 8.53647e+02), forces1[181], tol);
ASSERT_EQUAL_VEC(Vec3( 2.80987e+03, -1.76971e+03, 2.99389e+03), forces1[182], tol);
ASSERT_EQUAL_VEC(Vec3( 9.77135e+02, -8.67649e+02, -1.56420e+02), forces1[183], tol);
ASSERT_EQUAL_VEC(Vec3(-2.82166e+03, -3.30759e+03, -5.40106e+03), forces1[184], tol);
ASSERT_EQUAL_VEC(Vec3( 3.98300e+03, 1.31328e+03, 9.32805e+02), forces1[185], tol);
ASSERT_EQUAL_VEC(Vec3(-2.17633e+03, 2.99864e+03, 1.44485e+03), forces1[186], tol);
ASSERT_EQUAL_VEC(Vec3(-1.10630e+03, 3.12307e+03, -2.21450e+03), forces1[187], tol);
ASSERT_EQUAL_VEC(Vec3( 1.35931e+03, 1.86220e+03, -6.03001e+03), forces1[188], tol);
ASSERT_EQUAL_VEC(Vec3(-3.06827e+03, -3.01552e+03, 1.92082e+03), forces1[189], tol);
ASSERT_EQUAL_VEC(Vec3(-1.55896e+03, 1.35341e+03, -3.04183e+03), forces1[190], tol);
ASSERT_EQUAL_VEC(Vec3(-1.54816e+03, -5.10709e+02, 1.75360e+03), forces1[191], tol);
ASSERT_EQUAL_VEC(Vec3( 1.65345e+03, 3.06947e+02, 1.23709e+02), forces1[192], tol);
ASSERT_EQUAL_VEC(Vec3( 3.37251e+01, -5.15520e+03, 5.42879e+02), forces1[193], tol);
ASSERT_EQUAL_VEC(Vec3( 1.14250e+03, 1.88126e+03, -2.72286e+03), forces1[194], tol);
ASSERT_EQUAL_VEC(Vec3( 6.70728e+02, 3.31811e+02, -2.01814e+03), forces1[195], tol);
ASSERT_EQUAL_VEC(Vec3(-3.28292e+03, 3.22999e+03, -2.37127e+03), forces1[196], tol);
ASSERT_EQUAL_VEC(Vec3(-2.88682e+03, 3.16299e+02, -1.55109e+03), forces1[197], tol);
ASSERT_EQUAL_VEC(Vec3(-7.39708e+02, -3.20527e+03, -6.06953e+03), forces1[198], tol);
ASSERT_EQUAL_VEC(Vec3( 2.11596e+03, -9.47126e+02, 3.39237e+03), forces1[199], tol);
ASSERT_EQUAL_VEC(Vec3(-8.41173e+02, -2.29880e+03, -5.00325e+02), forces1[200], tol);
ASSERT_EQUAL_VEC(Vec3(-4.19410e+02, -4.39738e+03, 1.89578e+03), forces1[201], tol);
ASSERT_EQUAL_VEC(Vec3( 1.62784e+03, 3.42631e+01, 1.79871e+03), forces1[202], tol);
ASSERT_EQUAL_VEC(Vec3( 1.57183e+03, 1.09721e+03, -1.55052e+03), forces1[203], tol);
ASSERT_EQUAL_VEC(Vec3(-3.33453e+03, -2.93489e+03, -3.79478e+03), forces1[204], tol);
ASSERT_EQUAL_VEC(Vec3(-1.70198e+02, 4.63346e+02, 1.77436e+03), forces1[205], tol);
ASSERT_EQUAL_VEC(Vec3( 1.69859e+03, 2.94767e+02, 1.56435e+03), forces1[206], tol);
ASSERT_EQUAL_VEC(Vec3(-4.68838e+03, 4.30794e+03, -7.42153e+02), forces1[207], tol);
ASSERT_EQUAL_VEC(Vec3(-1.93551e+03, -5.66074e+01, -1.27216e+03), forces1[208], tol);
ASSERT_EQUAL_VEC(Vec3(-1.45038e+03, -3.97266e+03, 3.21897e+03), forces1[209], tol);
ASSERT_EQUAL_VEC(Vec3( 2.82585e+03, -1.66734e+02, -4.08088e+03), forces1[210], tol);
ASSERT_EQUAL_VEC(Vec3(-6.55922e+02, -1.14576e+03, 4.90819e+03), forces1[211], tol);
ASSERT_EQUAL_VEC(Vec3(-3.62705e+02, 1.86158e+03, 2.60467e+03), forces1[212], tol);
ASSERT_EQUAL_VEC(Vec3(-2.23857e+03, 4.41602e+03, -4.69378e+03), forces1[213], tol);
ASSERT_EQUAL_VEC(Vec3(-1.14564e+03, -4.61236e+03, 5.80781e+03), forces1[214], tol);
ASSERT_EQUAL_VEC(Vec3( 2.25274e+03, 2.63688e+03, 5.32029e+03), forces1[215], tol);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment