@@ -854,6 +854,14 @@ init (const string & model, const int & gpu_rank)
854854 if (dfparam < 0 ) dfparam = 0 ;
855855 if (daparam < 0 ) daparam = 0 ;
856856 inited = true ;
857+
858+ init_nbor = false ;
859+ array_int = NULL ;
860+ array_double = NULL ;
861+ array_longlong = NULL ;
862+ ilist = NULL ; jrange = NULL ; jlist = NULL ;
863+ ilist_size = 0 ; jrange_size = 0 ; jlist_size = 0 ;
864+ arr_int_size = 0 ; arr_ll_size = 0 ; arr_dou_size = 0 ;
857865}
858866#else
859867void
@@ -881,6 +889,14 @@ init (const string & model, const int & gpu_rank)
881889 // ntypes = get_ntypes();
882890 // dfparam = get_dfparam();
883891 inited = true ;
892+
893+ init_nbor = false ;
894+ array_int = NULL ;
895+ array_double = NULL ;
896+ array_longlong = NULL ;
897+ ilist = NULL ; jrange = NULL ; jlist = NULL ;
898+ ilist_size = 0 ; jrange_size = 0 ; jlist_size = 0 ;
899+ arr_int_size = 0 ; arr_ll_size = 0 ; arr_dou_size = 0 ;
884900}
885901#endif
886902
@@ -1015,6 +1031,7 @@ compute (ENERGYTYPE & dener,
10151031 int nall = dcoord_.size () / 3 ;
10161032 int nloc = nall - nghost;
10171033 validate_fparam_aparam (nloc, fparam, aparam);
1034+ std::vector<std::pair<string, Tensor>> input_tensors;
10181035
10191036 // agp == 0 means that the LAMMPS nbor list has been updated
10201037 if (ago == 0 ) {
@@ -1024,28 +1041,24 @@ compute (ENERGYTYPE & dener,
10241041 // InternalNeighborList nlist;
10251042 convert_nlist_lmp_internal (nlist, lmp_list);
10261043 shuffle_nlist (nlist, nnpmap);
1027- std::vector<std::pair<string, Tensor>> input_tensors;
10281044 #ifdef USE_CUDA_TOOLKIT
10291045 update_nbor (nlist, nloc);
10301046 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
10311047 #else
10321048 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
10331049 #endif
10341050
1035- assert (nloc == ret);
1036- run_model (dener, dforce_, dvirial, session, input_tensors, nnpmap, nghost);
10371051 }
10381052 else {
1039- std::vector<std::pair<string, Tensor>> input_tensors;
10401053 #ifdef USE_CUDA_TOOLKIT
10411054 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
10421055 #else
10431056 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
10441057 #endif
10451058
1046- assert (nloc == ret);
1047- run_model (dener, dforce_, dvirial, session, input_tensors, nnpmap, nghost);
10481059 }
1060+ assert (nloc == ret);
1061+ run_model (dener, dforce_, dvirial, session, input_tensors, nnpmap, nghost);
10491062}
10501063
10511064
@@ -1092,6 +1105,7 @@ compute (ENERGYTYPE & dener,
10921105 int nall = dcoord_.size () / 3 ;
10931106 int nloc = nall - nghost;
10941107 validate_fparam_aparam (nloc, fparam, aparam);
1108+ std::vector<std::pair<string, Tensor>> input_tensors;
10951109
10961110 if (ago == 0 ) {
10971111 nnpmap = NNPAtomMap<VALUETYPE> (datype_.begin (), datype_.begin () + nloc);
@@ -1100,28 +1114,24 @@ compute (ENERGYTYPE & dener,
11001114 // InternalNeighborList nlist;
11011115 convert_nlist_lmp_internal (nlist, lmp_list);
11021116 shuffle_nlist (nlist, nnpmap);
1103- std::vector<std::pair<string, Tensor>> input_tensors;
11041117 #ifdef USE_CUDA_TOOLKIT
11051118 update_nbor (nlist, nloc);
11061119 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
11071120 #else
11081121 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
11091122 #endif
11101123
1111- assert (nloc == ret);
1112- run_model (dener, dforce_, dvirial, datom_energy_, datom_virial_, session, input_tensors, nnpmap, nghost);
11131124 }
11141125 else {
1115- std::vector<std::pair<string, Tensor>> input_tensors;
11161126 #ifdef USE_CUDA_TOOLKIT
11171127 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
11181128 #else
11191129 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
11201130 #endif
11211131
1122- assert (nloc == ret);
1123- run_model (dener, dforce_, dvirial, datom_energy_, datom_virial_, session, input_tensors, nnpmap, nghost);
11241132 }
1133+ assert (nloc == ret);
1134+ run_model (dener, dforce_, dvirial, datom_energy_, datom_virial_, session, input_tensors, nnpmap, nghost);
11251135}
11261136
11271137
@@ -1203,6 +1213,14 @@ init (const vector<string> & models, const int & gpu_rank)
12031213 // cell_size = rcut;
12041214 // ntypes = get_ntypes();
12051215 inited = true ;
1216+
1217+ init_nbor = false ;
1218+ array_int = NULL ;
1219+ array_double = NULL ;
1220+ array_longlong = NULL ;
1221+ ilist = NULL ; jrange = NULL ; jlist = NULL ;
1222+ ilist_size = 0 ; jrange_size = 0 ; jlist_size = 0 ;
1223+ arr_int_size = 0 ; arr_ll_size = 0 ; arr_dou_size = 0 ;
12061224}
12071225#else
12081226void
@@ -1232,6 +1250,14 @@ init (const vector<string> & models, const int & gpu_rank)
12321250 // cell_size = rcut;
12331251 // ntypes = get_ntypes();
12341252 inited = true ;
1253+
1254+ init_nbor = false ;
1255+ array_int = NULL ;
1256+ array_double = NULL ;
1257+ array_longlong = NULL ;
1258+ ilist = NULL ; jrange = NULL ; jlist = NULL ;
1259+ ilist_size = 0 ; jrange_size = 0 ; jlist_size = 0 ;
1260+ arr_int_size = 0 ; arr_ll_size = 0 ; arr_dou_size = 0 ;
12351261}
12361262#endif
12371263
@@ -1460,6 +1486,7 @@ compute (vector<ENERGYTYPE> & all_energy,
14601486 int nall = dcoord_.size () / 3 ;
14611487 int nloc = nall - nghost;
14621488 validate_fparam_aparam (nloc, fparam, aparam);
1489+ std::vector<std::pair<string, Tensor>> input_tensors;
14631490
14641491 // agp == 0 means that the LAMMPS nbor list has been updated
14651492 if (ago == 0 ) {
@@ -1469,38 +1496,28 @@ compute (vector<ENERGYTYPE> & all_energy,
14691496 // InternalNeighborList nlist;
14701497 convert_nlist_lmp_internal (nlist, lmp_list);
14711498 shuffle_nlist (nlist, nnpmap);
1472- std::vector<std::pair<string, Tensor>> input_tensors;
14731499 #ifdef USE_CUDA_TOOLKIT
14741500 update_nbor (nlist, nloc);
14751501 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
14761502 #else
14771503 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
14781504 #endif
14791505
1480- all_energy.resize (numb_models);
1481- all_force.resize (numb_models);
1482- all_virial.resize (numb_models);
1483- assert (nloc == ret);
1484- for (unsigned ii = 0 ; ii < numb_models; ++ii) {
1485- run_model (all_energy[ii], all_force[ii], all_virial[ii], sessions[ii], input_tensors, nnpmap, nghost);
1486- }
14871506 }
14881507 else {
1489- std::vector<std::pair<string, Tensor>> input_tensors;
14901508 #ifdef USE_CUDA_TOOLKIT
14911509 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
14921510 #else
14931511 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
14941512 #endif
14951513
1496- all_energy.resize (numb_models);
1497- all_force.resize (numb_models);
1498- all_virial.resize (numb_models);
1499-
1500- assert (nloc == ret);
1501- for (unsigned ii = 0 ; ii < numb_models; ++ii) {
1502- run_model (all_energy[ii], all_force[ii], all_virial[ii], sessions[ii], input_tensors, nnpmap, nghost);
1503- }
1514+ }
1515+ all_energy.resize (numb_models);
1516+ all_force.resize (numb_models);
1517+ all_virial.resize (numb_models)
1518+ assert (nloc == ret);
1519+ for (unsigned ii = 0 ; ii < numb_models; ++ii) {
1520+ run_model (all_energy[ii], all_force[ii], all_virial[ii], sessions[ii], input_tensors, nnpmap, nghost);
15041521 }
15051522}
15061523
@@ -1524,6 +1541,7 @@ compute (vector<ENERGYTYPE> & all_energy,
15241541 int nall = dcoord_.size () / 3 ;
15251542 int nloc = nall - nghost;
15261543 validate_fparam_aparam (nloc, fparam, aparam);
1544+ std::vector<std::pair<string, Tensor>> input_tensors;
15271545
15281546 // agp == 0 means that the LAMMPS nbor list has been updated
15291547 if (ago == 0 ) {
@@ -1533,24 +1551,13 @@ compute (vector<ENERGYTYPE> & all_energy,
15331551 // InternalNeighborList nlist;
15341552 convert_nlist_lmp_internal (nlist, lmp_list);
15351553 shuffle_nlist (nlist, nnpmap);
1536- std::vector<std::pair<string, Tensor>> input_tensors;
15371554 #ifdef USE_CUDA_TOOLKIT
15381555 update_nbor (nlist, nloc);
15391556 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, ilist, jrange, jlist, array_int, array_longlong, array_double, fparam, aparam, nnpmap, nghost);
15401557 #else
15411558 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
15421559 #endif
15431560
1544- all_energy.resize (numb_models);
1545- all_force .resize (numb_models);
1546- all_virial.resize (numb_models);
1547- all_atom_energy.resize (numb_models);
1548- all_atom_virial.resize (numb_models);
1549- assert (nloc == ret);
1550-
1551- for (unsigned ii = 0 ; ii < numb_models; ++ii) {
1552- run_model (all_energy[ii], all_force[ii], all_virial[ii], all_atom_energy[ii], all_atom_virial[ii], sessions[ii], input_tensors, nnpmap, nghost);
1553- }
15541561 }
15551562 else {
15561563 std::vector<std::pair<string, Tensor>> input_tensors;
@@ -1560,15 +1567,15 @@ compute (vector<ENERGYTYPE> & all_energy,
15601567 int ret = make_input_tensors (input_tensors, dcoord_, ntypes, datype_, dbox, nlist, fparam, aparam, nnpmap, nghost);
15611568 #endif
15621569
1563- all_energy. resize (numb_models);
1564- all_force .resize (numb_models);
1565- all_virial .resize (numb_models);
1566- all_atom_energy .resize (numb_models);
1567- all_atom_virial .resize (numb_models);
1568- assert (nloc == ret);
1569- for ( unsigned ii = 0 ; ii < numb_models; ++ii) {
1570- run_model (all_energy[ii], all_force[ii], all_virial[ii], all_atom_energy[ii], all_atom_virial[ii], sessions[ii], input_tensors, nnpmap, nghost);
1571- }
1570+ }
1571+ all_energy .resize (numb_models);
1572+ all_force .resize (numb_models);
1573+ all_virial .resize (numb_models);
1574+ all_atom_energy .resize (numb_models);
1575+ all_atom_virial. resize (numb_models);
1576+ assert (nloc == ret);
1577+ for ( unsigned ii = 0 ; ii < numb_models; ++ii) {
1578+ run_model (all_energy[ii], all_force[ii], all_virial[ii], all_atom_energy[ii], all_atom_virial[ii], sessions[ii], input_tensors, nnpmap, nghost);
15721579 }
15731580}
15741581
0 commit comments