fix recenter/kk works with coords, init, null plus 3 tests
This commit is contained in:
@ -37,9 +37,6 @@ template<class DeviceType>
|
||||
FixRecenterKokkos<DeviceType>::FixRecenterKokkos(LAMMPS *lmp, int narg, char **arg) :
|
||||
FixRecenter(lmp, narg, arg)
|
||||
{
|
||||
|
||||
utils::logmesg(lmp, "************ FixRecenterKokkos constructor ************\n");
|
||||
|
||||
kokkosable = 1;
|
||||
atomKK = (AtomKokkos *)atom;
|
||||
execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
|
||||
@ -57,25 +54,15 @@ void FixRecenterKokkos<DeviceType>::initial_integrate(int /*vflag*/)
|
||||
atomKK->sync(execution_space,datamask_read);
|
||||
atomKK->modified(execution_space,datamask_modify);
|
||||
|
||||
x = atomKK->k_x.view<DeviceType>();
|
||||
mask = atomKK->k_mask.view<DeviceType>();
|
||||
d_x = atomKK->k_x.view<DeviceType>();
|
||||
d_mask = atomKK->k_mask.view<DeviceType>();
|
||||
int nlocal = atomKK->nlocal;
|
||||
if (igroup == atomKK->firstgroup) nlocal = atomKK->nfirst;
|
||||
|
||||
// FIX RECENTER
|
||||
// target COM
|
||||
// bounding box around domain works for both orthogonal and triclinic
|
||||
|
||||
double xtarget = xinit;
|
||||
double ytarget = yinit;
|
||||
double ztarget = zinit;
|
||||
|
||||
xflag=yflag=zflag=1;
|
||||
|
||||
// FIXME: only supported in KOKKOS...
|
||||
// fix ID group-ID recenter INIT INIT INIT shift all
|
||||
|
||||
/*
|
||||
double xtarget,ytarget,ztarget;
|
||||
double *bboxlo,*bboxhi;
|
||||
|
||||
if (scaleflag == FRACTION) {
|
||||
@ -103,8 +90,6 @@ void FixRecenterKokkos<DeviceType>::initial_integrate(int /*vflag*/)
|
||||
ztarget = bboxlo[2] + zcom*(bboxhi[2] - bboxlo[2]);
|
||||
else ztarget = zcom;
|
||||
|
||||
*/
|
||||
|
||||
// current COM
|
||||
|
||||
// FIXME: make Group kokkos-aware
|
||||
@ -127,18 +112,14 @@ void FixRecenterKokkos<DeviceType>::initial_integrate(int /*vflag*/)
|
||||
shift[2] = zflag ? (ztarget - xcm[2]) : 0.0;
|
||||
distance = sqrt(shift[0]*shift[0] + shift[1]*shift[1] + shift[2]*shift[2]);
|
||||
|
||||
// ----
|
||||
|
||||
copymode = 1;
|
||||
|
||||
//auto group2bit_copy = group2bit;
|
||||
|
||||
Kokkos::parallel_for(Kokkos::RangePolicy<DeviceType>(0,nlocal),
|
||||
LAMMPS_LAMBDA(int i) {
|
||||
if (mask[i] & group2bit) {
|
||||
x(i,0) += shift[0];
|
||||
x(i,1) += shift[1];
|
||||
x(i,2) += shift[2];
|
||||
if (d_mask[i] & group2bit) {
|
||||
d_x(i,0) += shift[0];
|
||||
d_x(i,1) += shift[1];
|
||||
d_x(i,2) += shift[2];
|
||||
}
|
||||
});
|
||||
|
||||
@ -146,7 +127,6 @@ void FixRecenterKokkos<DeviceType>::initial_integrate(int /*vflag*/)
|
||||
}
|
||||
|
||||
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
template class FixRecenterKokkos<LMPDeviceType>;
|
||||
#ifdef LMP_KOKKOS_GPU
|
||||
|
||||
@ -28,8 +28,6 @@ FixStyle(recenter/kk/host,FixRecenterKokkos<LMPHostType>);
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
//struct TagFixRecenter {};
|
||||
|
||||
template<class DeviceType>
|
||||
class FixRecenterKokkos : public FixRecenter {
|
||||
public:
|
||||
@ -38,8 +36,8 @@ class FixRecenterKokkos : public FixRecenter {
|
||||
void initial_integrate(int) override;
|
||||
|
||||
private:
|
||||
typename ArrayTypes<DeviceType>::t_x_array x;
|
||||
typename ArrayTypes<DeviceType>::t_int_1d mask;
|
||||
typename ArrayTypes<DeviceType>::t_x_array d_x;
|
||||
typename ArrayTypes<DeviceType>::t_int_1d d_mask;
|
||||
};
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
@ -191,8 +191,6 @@ void FixRecenter::initial_integrate(int /*vflag*/)
|
||||
|
||||
group->xcm(igroup,masstotal,xcm);
|
||||
|
||||
utils::logmesg(lmp, "ok 2c, xcm={},{},{}\n", xcm[0], xcm[1], xcm[2]);
|
||||
|
||||
// shift coords by difference between actual COM and requested COM
|
||||
|
||||
double **x = atom->x;
|
||||
@ -204,8 +202,6 @@ void FixRecenter::initial_integrate(int /*vflag*/)
|
||||
shift[2] = zflag ? (ztarget - xcm[2]) : 0.0;
|
||||
distance = sqrt(shift[0]*shift[0] + shift[1]*shift[1] + shift[2]*shift[2]);
|
||||
|
||||
utils::logmesg(lmp, "ok 2d, shift={},{},{}\n", shift[0], shift[1], shift[2]);
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & group2bit) {
|
||||
x[i][0] += shift[0];
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
---
|
||||
lammps_version: 27 Jun 2024
|
||||
tags: generated
|
||||
date_generated: Tue Jul 30 04:23:44 2024
|
||||
epsilon: 2e-13
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix nve
|
||||
fix recenter
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix move all nve
|
||||
fix test solute recenter 0.45 0.5 0.55 shift all units fraction
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
global_scalar: 4.868395120178045e-05
|
||||
global_vector: ! |-
|
||||
3 -4.5648814136156624e-05 -3.3198799039568794e-06 1.6591903748613968e-05
|
||||
run_pos: ! |2
|
||||
1 -7.5132769500671226e-01 2.4986248943444171e+00 7.9802680459215103e-01
|
||||
2 -1.7083180151387659e-01 2.9686443668858833e+00 1.1032169213735510e-01
|
||||
3 -1.1848576112607669e+00 1.2379598993595067e+00 3.3721005306300700e-01
|
||||
4 -2.0626880309028004e+00 1.4911496856694382e+00 -2.8888576109863040e-01
|
||||
5 -1.3880697339807648e+00 9.3392994263319751e-01 1.3645274273913177e+00
|
||||
6 -2.3255489200431190e-01 2.9053911875515726e-01 -2.6643801066357575e-01
|
||||
7 -1.3943682083900774e-01 -1.5237647264946797e-02 -1.5642438189827357e+00
|
||||
8 6.9348312565712877e-01 -4.8122338188209490e-01 3.2715099339931453e-01
|
||||
9 8.9918032569715922e-01 -2.4533830652762220e-01 1.2485251813785214e+00
|
||||
10 1.5702044248015166e+00 -1.4529974702538417e+00 -1.8252128309559742e-02
|
||||
11 1.3069310971913839e+00 -1.9847774235184412e+00 -9.2407492225500776e-01
|
||||
12 2.5254286066811331e+00 -4.8272460119318827e-01 -6.5820448823105326e-01
|
||||
13 3.5706681986664290e+00 -8.8461121229009532e-01 -6.7501523048492595e-01
|
||||
14 2.1258242373015102e+00 -4.1048363587869696e-01 -1.6984150383718699e+00
|
||||
15 2.4886566213184191e+00 5.6163503542878490e-01 -2.6921687967144270e-01
|
||||
16 2.1938308722699804e+00 -2.4050030016799853e+00 9.4154957635695380e-01
|
||||
17 1.7344856812755074e+00 -2.0823896149143275e+00 2.1613004019555140e+00
|
||||
18 1.6560980731586978e+00 3.0232596451395048e+00 -2.5529495112139315e+00
|
||||
19 1.0547116163558656e+00 2.6329381393140117e+00 -3.2704134554803344e+00
|
||||
20 2.2918852033150059e+00 3.6997999487374611e+00 -2.9680989234057789e+00
|
||||
21 4.4231407100675586e+00 -4.0678259135193509e+00 -2.6560461484816007e+00
|
||||
22 3.8773634581912133e+00 -4.2052030389522610e+00 -3.4962990971238348e+00
|
||||
23 5.2630661876778886e+00 -3.5747868901510587e+00 -2.9116508070860116e+00
|
||||
24 1.5880522609893917e+00 3.1587435945035454e+00 4.1200242979904500e+00
|
||||
25 8.2366303589634160e-01 3.2739214743607290e+00 3.4761708482509213e+00
|
||||
26 2.1000516430182552e+00 4.0191691643247269e+00 4.1861913754165592e+00
|
||||
27 -2.4420064102885943e+00 -4.3489322893595315e+00 3.0748146340599405e+00
|
||||
28 -3.2282283657042123e+00 -4.0126730894614893e+00 2.5479905388509652e+00
|
||||
29 -1.7934721163888576e+00 -3.5888429001718487e+00 3.2396195693813534e+00
|
||||
run_vel: ! |2
|
||||
1 8.1705744183262520e-03 1.6516406176274312e-02 4.7902264318912926e-03
|
||||
2 5.4501493445687594e-03 5.1791699408496325e-03 -1.4372931530376343e-03
|
||||
3 -8.2298292722385816e-03 -1.2926551614621412e-02 -4.0984181178163994e-03
|
||||
4 -3.7699042590093445e-03 -6.5722892098813860e-03 -1.1184640360133362e-03
|
||||
5 -1.1021961004346569e-02 -9.8906780939336126e-03 -2.8410737829284312e-03
|
||||
6 -3.9676663166400034e-02 4.6817061464710250e-02 3.7148491979475992e-02
|
||||
7 9.1033953013898092e-04 -1.0128524411938771e-02 -5.1568251805019630e-02
|
||||
8 7.9064712058855725e-03 -3.3507254552631849e-03 3.4557098492564643e-02
|
||||
9 1.5644176117320875e-03 3.7365546102722203e-03 1.5047408822037638e-02
|
||||
10 2.9201446820573192e-02 -2.9249578745486140e-02 -1.5018077424322537e-02
|
||||
11 -4.7835961513517603e-03 -3.7481385134185263e-03 -2.3464104142290176e-03
|
||||
12 2.2696451841920920e-03 -3.4774154398130042e-04 -3.0640770327796979e-03
|
||||
13 2.7531740451952145e-03 5.8171061612840866e-03 -7.9467454022159282e-04
|
||||
14 3.5246182371994239e-03 -5.7939995585585425e-03 -3.9478431172750902e-03
|
||||
15 -1.8547943640123080e-03 -5.8554729942777830e-03 6.2938485140538606e-03
|
||||
16 1.8681499973445179e-02 -1.3262466204585288e-02 -4.5638651457003097e-02
|
||||
17 -1.2896269981100333e-02 9.7527665265956121e-03 3.7296535360836651e-02
|
||||
18 -8.0065794848260612e-04 -8.6270473212553646e-04 -1.4483040697508677e-03
|
||||
19 1.2452390836182341e-03 -2.5061097118772879e-03 7.2998631009712671e-03
|
||||
20 3.5930060229596903e-03 3.6938860309252827e-03 3.2322732687893093e-03
|
||||
21 -1.4689220370766394e-03 -2.7352129761527014e-04 7.0581624215243781e-04
|
||||
22 -7.0694199254630772e-03 -4.2577148924878711e-03 2.8079117614247622e-04
|
||||
23 6.0446963117374731e-03 -1.4000131614795503e-03 2.5819754847014498e-03
|
||||
24 3.1926367902286048e-04 -9.9445664749277913e-04 1.4999996959364468e-04
|
||||
25 1.3789754514817134e-04 -4.4335894884532752e-03 -8.1808136725077560e-04
|
||||
26 2.0485904035218057e-03 2.7813358633836725e-03 4.3245727149206822e-03
|
||||
27 4.5604120293371412e-04 -1.0305523026921115e-03 2.1188058381359324e-04
|
||||
28 -6.2544520861855810e-03 1.4127711176147026e-03 -1.8429821884794668e-03
|
||||
29 6.4110631534402326e-04 3.1273432719593694e-03 3.7253671105656788e-03
|
||||
...
|
||||
@ -1,7 +1,7 @@
|
||||
---
|
||||
lammps_version: 27 Jun 2024
|
||||
tags: generated
|
||||
date_generated: Tue Jul 30 03:14:33 2024
|
||||
date_generated: Tue Jul 30 04:14:01 2024
|
||||
epsilon: 2e-13
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
@ -11,7 +11,7 @@ prerequisites: ! |
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix move all nve
|
||||
fix test solute recenter INIT INIT INIT shift all
|
||||
fix test solute recenter INIT INIT INIT shift all units box
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
global_scalar: 4.868395120232176e-05
|
||||
80
unittest/force-styles/tests/fix-timestep-recenter-null.yaml
Normal file
80
unittest/force-styles/tests/fix-timestep-recenter-null.yaml
Normal file
@ -0,0 +1,80 @@
|
||||
---
|
||||
lammps_version: 27 Jun 2024
|
||||
tags: generated
|
||||
date_generated: Tue Jul 30 04:25:52 2024
|
||||
epsilon: 2e-13
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix nve
|
||||
fix recenter
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix move all nve
|
||||
fix test solute recenter NULL NULL NULL shift all units lattice
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
global_scalar: 0
|
||||
global_vector: ! |-
|
||||
3 0 0 0
|
||||
run_pos: ! |2
|
||||
1 -2.7045559775384032e-01 2.4912159905679729e+00 -1.6695851791541888e-01
|
||||
2 3.1004029573899528e-01 2.9612354631094391e+00 -8.5466363037021464e-01
|
||||
3 -7.0398551400789477e-01 1.2305509955830618e+00 -6.2777526944456274e-01
|
||||
4 -1.5818159336499285e+00 1.4837407818929933e+00 -1.2538710836062004e+00
|
||||
5 -9.0719763672789266e-01 9.2652103885675297e-01 3.9954210488374786e-01
|
||||
6 2.4831720524855985e-01 2.8313021497871271e-01 -1.2314233331711453e+00
|
||||
7 3.4143527641386412e-01 -2.2646551041391422e-02 -2.5292291414903052e+00
|
||||
8 1.1743552229100009e+00 -4.8863228565853950e-01 -6.3783432910825522e-01
|
||||
9 1.3800524229500313e+00 -2.5274721030406683e-01 2.8353985887095157e-01
|
||||
10 2.0510765220543883e+00 -1.4604063740302866e+00 -9.8323745081712954e-01
|
||||
11 1.7878031944442556e+00 -1.9921863272948861e+00 -1.8890602447625777e+00
|
||||
12 3.0063007039340053e+00 -4.9013350496963293e-01 -1.6231898107386229e+00
|
||||
13 4.0515402959192999e+00 -8.9202011606653986e-01 -1.6400005529924957e+00
|
||||
14 2.6066963345543819e+00 -4.1789253965514156e-01 -2.6634003608794394e+00
|
||||
15 2.9695287185712913e+00 5.5422613165234036e-01 -1.2342022021790127e+00
|
||||
16 2.6747029695228521e+00 -2.4124119054564295e+00 -2.3435746150616148e-02
|
||||
17 2.2153577785283796e+00 -2.0897985186907717e+00 1.1963150794479436e+00
|
||||
18 2.1369701704115704e+00 3.0158507413630606e+00 -3.5179348337215015e+00
|
||||
19 1.5355837136087378e+00 2.6255292355375675e+00 -4.2353987779879052e+00
|
||||
20 2.7727573005678776e+00 3.6923910449610169e+00 -3.9330842459133493e+00
|
||||
21 4.9040128073204299e+00 -4.0752348172957946e+00 -3.6210314709891711e+00
|
||||
22 4.3582355554440841e+00 -4.2126119427287048e+00 -4.4612844196314052e+00
|
||||
23 5.7439382849307599e+00 -3.5821957939275029e+00 -3.8766361295935821e+00
|
||||
24 2.0689243582422630e+00 3.1513346907271012e+00 3.1550389754828800e+00
|
||||
25 1.3045351331492134e+00 3.2665125705842848e+00 2.5111855257433504e+00
|
||||
26 2.5809237402711274e+00 4.0117602605482832e+00 3.2212060529089896e+00
|
||||
27 -1.9611343130357228e+00 -4.3563411931359752e+00 2.1098293115523705e+00
|
||||
28 -2.7473562684513411e+00 -4.0200819932379330e+00 1.5830052163433954e+00
|
||||
29 -1.3126000191359855e+00 -3.5962518039482929e+00 2.2746342468737835e+00
|
||||
run_vel: ! |2
|
||||
1 8.1705744183262364e-03 1.6516406176274284e-02 4.7902264318912908e-03
|
||||
2 5.4501493445687802e-03 5.1791699408496447e-03 -1.4372931530376594e-03
|
||||
3 -8.2298292722385660e-03 -1.2926551614621379e-02 -4.0984181178163794e-03
|
||||
4 -3.7699042590093549e-03 -6.5722892098813894e-03 -1.1184640360133316e-03
|
||||
5 -1.1021961004346582e-02 -9.8906780939336109e-03 -2.8410737829284421e-03
|
||||
6 -3.9676663166400034e-02 4.6817061464710256e-02 3.7148491979476124e-02
|
||||
7 9.1033953013898601e-04 -1.0128524411938794e-02 -5.1568251805019748e-02
|
||||
8 7.9064712058855690e-03 -3.3507254552631780e-03 3.4557098492564636e-02
|
||||
9 1.5644176117320919e-03 3.7365546102722177e-03 1.5047408822037646e-02
|
||||
10 2.9201446820573178e-02 -2.9249578745486140e-02 -1.5018077424322538e-02
|
||||
11 -4.7835961513517560e-03 -3.7481385134185202e-03 -2.3464104142290089e-03
|
||||
12 2.2696451841920581e-03 -3.4774154398129452e-04 -3.0640770327796884e-03
|
||||
13 2.7531740451953108e-03 5.8171061612840597e-03 -7.9467454022159748e-04
|
||||
14 3.5246182371994170e-03 -5.7939995585585503e-03 -3.9478431172751327e-03
|
||||
15 -1.8547943640122978e-03 -5.8554729942777769e-03 6.2938485140538701e-03
|
||||
16 1.8681499973445235e-02 -1.3262466204585334e-02 -4.5638651457003243e-02
|
||||
17 -1.2896269981100382e-02 9.7527665265956451e-03 3.7296535360836762e-02
|
||||
18 -8.0065794848261610e-04 -8.6270473212554308e-04 -1.4483040697508777e-03
|
||||
19 1.2452390836182583e-03 -2.5061097118772749e-03 7.2998631009713062e-03
|
||||
20 3.5930060229597072e-03 3.6938860309252974e-03 3.2322732687893115e-03
|
||||
21 -1.4689220370766539e-03 -2.7352129761527648e-04 7.0581624215243120e-04
|
||||
22 -7.0694199254630382e-03 -4.2577148924878598e-03 2.8079117614252034e-04
|
||||
23 6.0446963117374939e-03 -1.4000131614795382e-03 2.5819754847014320e-03
|
||||
24 3.1926367902287864e-04 -9.9445664749276113e-04 1.4999996959365281e-04
|
||||
25 1.3789754514814445e-04 -4.4335894884532700e-03 -8.1808136725080140e-04
|
||||
26 2.0485904035217606e-03 2.7813358633835958e-03 4.3245727149206761e-03
|
||||
27 4.5604120293369819e-04 -1.0305523026921102e-03 2.1188058381358391e-04
|
||||
28 -6.2544520861855151e-03 1.4127711176146864e-03 -1.8429821884794260e-03
|
||||
29 6.4110631534402261e-04 3.1273432719593807e-03 3.7253671105656745e-03
|
||||
...
|
||||
Reference in New Issue
Block a user