diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index dbf175c801..47c475e884 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -706,6 +706,9 @@ TEST(AngleStyle, numdiff) TEST(AngleStyle, single) { if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + + // angle-spica test not compatible with pair zero + if (utils::strmatch(test_config.angle_style, "^spica")) GTEST_SKIP(); LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite"}; diff --git a/unittest/force-styles/tests/angle-spica.yaml b/unittest/force-styles/tests/angle-spica.yaml new file mode 100644 index 0000000000..7654be0345 --- /dev/null +++ b/unittest/force-styles/tests/angle-spica.yaml @@ -0,0 +1,87 @@ +--- +lammps_version: 7 Feb 2024 +tags: generated +date_generated: Wed Jun 5 18:31:11 2024 +epsilon: 1e-12 +skip_tests: +prerequisites: ! | + atom full + angle spica + pair lj/spica +pre_commands: ! | + variable write_data_pair index ij +post_commands: ! | + pair_style lj/spica 8.0 +input_file: in.spica +angle_style: spica +angle_coeff: ! "1 33.5 110.1 \n2 46.1 111.3 \n3 40.0 120.0 \n4 33.0 108.5 \n" +equilibrium: 4 1.9216075064457565 1.9425514574696887 2.0943951023931953 1.8936822384138474 +extract: ! "" +natoms: 29 +init_energy: 38.36438529349082 +init_stress: ! |2- + 6.2288484633192937e+01 -2.4958587357033732e+01 1.5261156310077459e+02 2.7527094178009044e+01 4.2708401447133369e+01 -2.5265950282815652e+01 +init_forces: ! |2 + 1 1.7230431704651284e+01 4.0071311825737794e+01 2.5153895595391262e+01 + 2 1.4681450443715043e+01 9.4049099264163125e+00 -2.0102364558934152e+01 + 3 -1.9308548347980725e+01 -2.8460741684874360e+01 6.4339170989100403e+00 + 4 -5.2290857572683347e+00 -9.4927850504411957e+00 1.8003472602849664e+00 + 5 -1.6382493884699279e+01 -1.4784175400797803e+01 -6.1931262199840624e+00 + 6 -5.4493064751680564e+01 7.5613258287794565e+01 6.9941734306087866e+01 + 7 -4.7395486031142198e+01 3.7640428970968820e+00 -2.4566126298992822e+02 + 8 4.8960191044380039e+01 -4.5712855041323763e+01 1.9415466008820243e+02 + 9 -8.3924213860655783e+00 2.4590103192063562e+01 3.2878160380265854e+01 + 10 6.8038129570966305e+01 -4.6569300903873433e+01 -7.6671701712056688e+01 + 11 -2.1258622382772373e+01 -7.4008599257925383e+00 8.3610564111488799e+00 + 12 5.9901920466154710e+00 -3.0542621446562030e+00 -7.5713636171526382e+00 + 13 1.4189850824692691e+00 1.0835451791895949e+00 4.9993493214959894e-01 + 14 1.1355220599075533e+01 2.4997321466757656e+00 -5.2256561116849181e+00 + 15 1.3933035015335755e+00 -2.0786326583247088e+00 8.7283364302611144e+00 + 16 4.5875574605935235e+01 -2.7754880718666161e+01 -1.0582764215323260e+02 + 17 -4.2451226361036497e+01 2.8306085448648393e+01 1.1928362036932688e+02 + 18 5.2926497658556788e-02 7.0441277800577096e-01 -2.9584690206819020e+00 + 19 -8.6276212064612834e-01 -1.0756990560638664e+00 1.2826229074637665e+00 + 20 7.9148971075772434e-01 3.3735689913016514e-01 1.7102043999486722e+00 + 21 -5.9956840446092086e+00 -6.6440354071373493e+00 1.8013592125677949e+01 + 22 -1.4065918957775763e+01 -4.6031498182035513e+00 -1.5782854315475038e+01 + 23 2.0049558879496164e+01 1.1260925334020174e+01 -2.2177902350101499e+00 + 24 3.2508269160599186e+00 -1.9979416528015960e+01 1.0409971951734974e+01 + 25 -1.6060493526274090e+01 9.4218054960789366e-01 -1.2854339891002313e+01 + 26 1.2797730884335980e+01 1.9024610945429981e+01 2.4201678955447798e+00 + 27 5.3169168679178105e+00 -2.2776165356368182e+01 9.1726846500285717e+00 + 28 -1.9217628865768805e+01 7.5096140408582208e+00 -1.2798872429928149e+01 + 29 1.3910508062151619e+01 1.5274870243863951e+01 3.6205364526432242e+00 +run_energy: 38.176417113761396 +run_stress: ! |2- + 6.1357382915550481e+01 -2.4715660959892247e+01 1.5186466302604836e+02 2.7218614858138846e+01 4.2112515489269541e+01 -2.5607593286714120e+01 +run_forces: ! |2 + 1 1.7145760907927180e+01 4.0174672565571342e+01 2.5205552180237635e+01 + 2 1.4615170171901832e+01 9.2708448155131897e+00 -2.0078351161345097e+01 + 3 -1.9027637897644411e+01 -2.8642960432918144e+01 6.2314807077302952e+00 + 4 -5.2736618463889080e+00 -9.3424901289763778e+00 1.9422015848783882e+00 + 5 -1.6468832074580213e+01 -1.4729606520686309e+01 -6.2023333708615995e+00 + 6 -5.3718294227422540e+01 7.4801671388546964e+01 6.8368190594240389e+01 + 7 -4.7118098933035071e+01 3.8739803262288781e+00 -2.4290995583077535e+02 + 8 4.7876325968669121e+01 -4.4923173742504034e+01 1.9297993934786507e+02 + 9 -8.3824572561250399e+00 2.4542635562122975e+01 3.2839238074098198e+01 + 10 6.8198580866574645e+01 -4.6830380612887495e+01 -7.6629764788623447e+01 + 11 -2.1232237676690062e+01 -7.3683045541850962e+00 8.3643364257797792e+00 + 12 5.6908584692226185e+00 -2.9956405260312478e+00 -7.3282063658600993e+00 + 13 1.3684378256951288e+00 9.7105537426706034e-01 5.7801503997630133e-01 + 14 1.1379285236061559e+01 2.6704814459393837e+00 -5.2142720262734468e+00 + 15 1.5246096380310767e+00 -1.9886210527177606e+00 8.4529064022347313e+00 + 16 4.5766629638536287e+01 -2.7729192853260034e+01 -1.0555847936417963e+02 + 17 -4.2311907917867423e+01 2.8269504758036135e+01 1.1894203420097222e+02 + 18 4.5978604531469895e-02 6.0605282956542328e-01 -2.5489959663795330e+00 + 19 -7.4282409641952973e-01 -9.2821937232343465e-01 1.1099668747784261e+00 + 20 6.7850316938866917e-01 2.8824602749664086e-01 1.4733945401265087e+00 + 21 -6.1707359561298754e+00 -6.7761831890615607e+00 1.8428059527969836e+01 + 22 -1.3998960882672469e+01 -4.5334962854737153e+00 -1.5964259983712697e+01 + 23 2.0157648747423554e+01 1.1323428247127397e+01 -2.4508469770619676e+00 + 24 3.5283602170234043e+00 -2.0588385440875950e+01 1.0846305899711011e+01 + 25 -1.6431076320543696e+01 1.1358029038847810e+00 -1.3239288833419160e+01 + 26 1.2890779580326928e+01 1.9439960296533382e+01 2.3687830191265684e+00 + 27 5.4188347979018312e+00 -2.2961492507008920e+01 9.2221110477962096e+00 + 28 -1.9337322641186159e+01 7.5984768842531718e+00 -1.2868573316667142e+01 + 29 1.3928283887490117e+01 1.5371333793823325e+01 3.6408125176375652e+00 +... diff --git a/unittest/force-styles/tests/data.spica b/unittest/force-styles/tests/data.spica new file mode 100644 index 0000000000..33b8c21ae7 --- /dev/null +++ b/unittest/force-styles/tests/data.spica @@ -0,0 +1,233 @@ +LAMMPS data file via write_data, version 5 May 2020, timestep = 0 + +29 atoms +5 atom types +24 bonds +5 bond types +30 angles +4 angle types +31 dihedrals +5 dihedral types +2 impropers +2 improper types + + -6.024572 8.975428 xlo xhi + -7.692866 7.307134 ylo yhi + -8.086924 6.913076 zlo zhi + +Masses + +1 12.0107 +2 4.00794 +3 14.0067 +4 15.9994 +5 15.9994 + +PairIJ Coeffs # lj/spica + +1 1 lj9_6 0.02 2.5 +1 2 lj9_6 0.01 1.58114 +1 3 lj9_6 0.02 2.82843 +1 4 lj9_6 0.0173205 2.78388 +1 5 lj9_6 0.0173205 2.78388 +2 2 lj12_4 0.005 1.0 +2 3 lj12_4 0.01 1.78885 +2 4 lj12_4 0.005 0.5 +2 5 lj12_4 0.00866025 1.76068 8 +3 3 lj12_6 0.02 3.2 8 +3 4 lj12_6 0.0173205 3.1496 8 +3 5 lj12_6 0.0173205 3.1496 8 +4 4 lj9_6 0.015 3.1 8 +4 5 lj9_6 0.015 3.1 8 +5 5 lj9_6 0.015 3.1 8 + +Bond Coeffs # zero + +1 1.5 +2 1.1 +3 1.3 +4 1.2 +5 1 + +Angle Coeffs # spica + +1 33.5 110.1 +2 46.1 111.3 +3 40 120 +4 33 108.5 + +Dihedral Coeffs # zero + +1 +2 +3 +4 +5 + +Improper Coeffs # zero + +1 +2 + +Atoms # full + +10 2 1 7.0000000000000007e-02 2.0185283555536988e+00 -1.4283966846517357e+00 -9.6733527271133024e-01 0 0 0 +11 2 2 8.9999999999999997e-02 1.7929780509347666e+00 -1.9871047540768743e+00 -1.8840626643185674e+00 0 0 0 +12 2 1 -2.7000000000000002e-01 3.0030247876861225e+00 -4.8923319967572748e-01 -1.6188658531537248e+00 0 0 0 +13 2 2 8.9999999999999997e-02 4.0447273787895934e+00 -9.0131998547446246e-01 -1.6384447268320836e+00 0 0 0 +14 2 2 8.9999999999999997e-02 2.6033152817257075e+00 -4.0789761505963579e-01 -2.6554413538823063e+00 0 0 0 + 2 1 2 3.1000000000000000e-01 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 0 0 0 + 3 1 1 -2.0000000000000000e-02 -6.9435377880558602e-01 1.2440473127136711e+00 -6.2233801468892025e-01 0 0 0 + 4 1 2 8.9999999999999997e-02 -1.5771614164685133e+00 1.4915333140468066e+00 -1.2487126845040522e+00 0 0 0 + 6 1 1 5.1000000000000001e-01 2.9412607937706009e-01 2.2719282656652909e-01 -1.2843094067857870e+00 0 0 0 + 7 1 4 -5.1000000000000001e-01 3.4019871062879609e-01 -9.1277350075786561e-03 -2.4633113224304561e+00 0 0 0 +19 3 2 4.2359999999999998e-01 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 0 0 0 +15 2 2 8.9999999999999997e-02 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 0 0 0 +18 3 4 -8.4719999999999995e-01 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 0 0 0 +20 3 2 4.2359999999999998e-01 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 0 0 0 + 8 2 3 -4.6999999999999997e-01 1.1641187171852805e+00 -4.8375305955385234e-01 -6.7659823767368688e-01 0 0 0 + 9 2 2 3.1000000000000000e-01 1.3777459838125838e+00 -2.5366338669522998e-01 2.6877644730326306e-01 0 0 0 +16 2 1 5.1000000000000001e-01 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 0 0 0 +17 2 4 -5.1000000000000001e-01 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 0 0 0 + 1 1 3 -4.6999999999999997e-01 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 0 0 0 + 5 1 2 8.9999999999999997e-02 -8.9501761359359255e-01 9.3568128743071344e-01 4.0227731871484346e-01 0 0 0 +21 4 5 -8.4719999999999995e-01 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00 0 0 0 +22 4 2 4.2359999999999998e-01 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00 0 0 0 +23 4 2 4.2359999999999998e-01 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00 0 0 0 +24 5 5 -8.4719999999999995e-01 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00 0 0 0 +25 5 2 4.2359999999999998e-01 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00 0 0 0 +26 5 2 4.2359999999999998e-01 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00 0 0 0 +27 6 5 -8.4719999999999995e-01 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 0 0 0 +28 6 2 4.2359999999999998e-01 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 0 0 0 +29 6 2 4.2359999999999998e-01 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 0 0 0 + +Velocities + +1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04 +2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03 +3 -1.2736791029204805e-03 1.6108674226414498e-03 -3.3618185901550799e-04 +4 -9.2828595122009308e-04 -1.2537885319521818e-03 -4.1204974953432108e-03 +5 -1.1800848061603740e-03 7.5424401975844038e-04 6.9023177964912290e-05 +6 -3.0914004879905335e-04 1.2755385764678133e-03 7.9574303350202582e-04 +7 -1.1037894966874103e-04 -7.6764845099077425e-04 -7.7217630460203659e-04 +8 3.9060281273221989e-04 -8.1444231918053418e-04 1.5134641148324972e-04 +9 1.2475530960659720e-03 -2.6608454451432528e-03 1.1117602907112732e-03 +10 4.5008983776042893e-04 4.9530197647538077e-04 -2.3336234361093645e-04 +11 -3.6977669078869707e-04 -1.5289071951960539e-03 -2.9176389881837113e-03 +12 1.0850834530183159e-03 -6.4965897903201833e-04 -1.2971152622619948e-03 +13 4.0754559196230639e-03 3.5043502394946119e-03 -7.8324487687854666e-04 +14 -1.3837220448746613e-04 -4.0656048637594394e-03 -3.9333461173944500e-03 +15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 +16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 +17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 +18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 +19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 +20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 +21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04 +22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03 +23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03 +24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04 +25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03 +26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03 +27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 +28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 +29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 + +Bonds + +1 5 1 2 +2 3 1 3 +3 2 3 4 +4 2 3 5 +5 1 3 6 +6 3 6 8 +7 4 6 7 +8 5 8 9 +9 3 8 10 +10 2 10 11 +11 1 10 12 +12 1 10 16 +13 2 12 13 +14 2 12 14 +15 2 12 15 +16 4 16 17 +17 5 18 19 +18 5 18 20 +19 5 21 22 +20 5 21 23 +21 5 24 25 +22 5 24 26 +23 5 27 28 +24 5 27 29 + +Angles + +1 4 2 1 3 +2 4 1 3 5 +3 4 1 3 4 +4 4 1 3 6 +5 4 4 3 5 +6 2 5 3 6 +7 2 4 3 6 +8 3 3 6 7 +9 3 3 6 8 +10 3 7 6 8 +11 2 6 8 9 +12 2 9 8 10 +13 3 6 8 10 +14 2 8 10 11 +15 3 8 10 16 +16 2 11 10 12 +17 1 12 10 16 +18 1 8 10 12 +19 2 11 10 16 +20 2 10 12 15 +21 2 10 12 14 +22 2 10 12 13 +23 4 13 12 15 +24 4 13 12 14 +25 4 14 12 15 +26 4 10 16 17 +27 1 19 18 20 +28 1 22 21 23 +29 1 25 24 26 +30 1 28 27 29 + +Dihedrals + +1 2 2 1 3 6 +2 2 2 1 3 4 +3 3 2 1 3 5 +4 1 1 3 6 8 +5 1 1 3 6 7 +6 5 4 3 6 8 +7 5 4 3 6 7 +8 5 5 3 6 8 +9 5 5 3 6 7 +10 4 3 6 8 9 +11 3 3 6 8 10 +12 3 7 6 8 9 +13 4 7 6 8 10 +14 2 6 8 10 12 +15 2 6 8 10 16 +16 2 6 8 10 11 +17 2 9 8 10 12 +18 4 9 8 10 16 +19 5 9 8 10 11 +20 5 8 10 12 13 +21 1 8 10 12 14 +22 5 8 10 12 15 +23 4 8 10 16 17 +24 5 11 10 12 13 +25 5 11 10 12 14 +26 5 11 10 12 15 +27 2 11 10 16 17 +28 2 12 10 16 17 +29 5 16 10 12 13 +30 5 16 10 12 14 +31 5 16 10 12 15 + +Impropers + +1 1 6 3 8 7 +2 2 8 6 10 9 diff --git a/unittest/force-styles/tests/in.spica b/unittest/force-styles/tests/in.spica new file mode 100644 index 0000000000..1a80b2aac9 --- /dev/null +++ b/unittest/force-styles/tests/in.spica @@ -0,0 +1,32 @@ +variable newton_pair index on +variable newton_bond index on +variable bond_factor index 0.10 +variable angle_factor index 0.25 +variable dihedral_factor index 0.50 +variable units index real +variable input_dir index . +variable data_file index ${input_dir}/data.spica +variable pair_style index 'lj/spica 8.0' +variable bond_style index zero +variable angle_style index spica +variable dihedral_style index zero +variable improper_style index zero +variable t_target index 100.0 + +echo both + +atom_style full +atom_modify map array +neigh_modify delay 2 every 2 check no +units ${units} +timestep 0.1 +newton ${newton_pair} ${newton_bond} +special_bonds lj/coul ${bond_factor} ${angle_factor} ${dihedral_factor} + +pair_style ${pair_style} +bond_style ${bond_style} +angle_style ${angle_style} +dihedral_style ${dihedral_style} +improper_style ${improper_style} + +read_data ${data_file}