Merge pull request #2582 from ellio167/pair_kim_refactor
Small pair kim refactor to better support multiple run commands with different models
This commit is contained in:
@ -540,6 +540,19 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
kimerror = KIM_Model_ClearThenRefresh(pkim);
|
kimerror = KIM_Model_ClearThenRefresh(pkim);
|
||||||
if (kimerror)
|
if (kimerror)
|
||||||
error->all(FLERR,"KIM KIM_Model_ClearThenRefresh returned error");
|
error->all(FLERR,"KIM KIM_Model_ClearThenRefresh returned error");
|
||||||
|
|
||||||
|
// Update cached quantities that may have changed due to Refresh
|
||||||
|
KIM_Model_GetInfluenceDistance(pkim, &kim_global_influence_distance);
|
||||||
|
KIM_Model_GetNeighborListPointers(
|
||||||
|
pkim,
|
||||||
|
&kim_number_of_neighbor_lists,
|
||||||
|
&kim_cutoff_values,
|
||||||
|
&modelWillNotRequestNeighborsOfNoncontributingParticles);
|
||||||
|
if (neighborLists) {
|
||||||
|
delete [] neighborLists;
|
||||||
|
neighborLists = nullptr;
|
||||||
|
}
|
||||||
|
neighborLists = new NeighList*[kim_number_of_neighbor_lists];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -591,6 +604,9 @@ void PairKIM::init_style()
|
|||||||
neighbor->requests[irequest]->cutoff
|
neighbor->requests[irequest]->cutoff
|
||||||
= kim_cutoff_values[i] + neighbor->skin;
|
= kim_cutoff_values[i] + neighbor->skin;
|
||||||
}
|
}
|
||||||
|
// increment instance_me in case of need to change the neighbor list
|
||||||
|
// request settings
|
||||||
|
instance_me += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
@ -809,6 +825,8 @@ void PairKIM::kim_free()
|
|||||||
error->all(FLERR,"Unable to destroy Compute Arguments Object");
|
error->all(FLERR,"Unable to destroy Compute Arguments Object");
|
||||||
|
|
||||||
KIM_Model_Destroy(&pkim);
|
KIM_Model_Destroy(&pkim);
|
||||||
|
|
||||||
|
lmps_maxalloc = 0; // reinitialize member variable
|
||||||
}
|
}
|
||||||
kim_init_ok = false;
|
kim_init_ok = false;
|
||||||
}
|
}
|
||||||
@ -859,7 +877,7 @@ void PairKIM::kim_init()
|
|||||||
&modelWillNotRequestNeighborsOfNoncontributingParticles);
|
&modelWillNotRequestNeighborsOfNoncontributingParticles);
|
||||||
if (neighborLists) {
|
if (neighborLists) {
|
||||||
delete [] neighborLists;
|
delete [] neighborLists;
|
||||||
neighborLists = 0;
|
neighborLists = nullptr;
|
||||||
}
|
}
|
||||||
neighborLists = new NeighList*[kim_number_of_neighbor_lists];
|
neighborLists = new NeighList*[kim_number_of_neighbor_lists];
|
||||||
|
|
||||||
|
|||||||
@ -219,6 +219,20 @@ TEST_F(KimCommandsTest, kim_interactions)
|
|||||||
|
|
||||||
int ifix = lmp->modify->find_fix("KIM_MODEL_STORE");
|
int ifix = lmp->modify->find_fix("KIM_MODEL_STORE");
|
||||||
ASSERT_GE(ifix, 0);
|
ASSERT_GE(ifix, 0);
|
||||||
|
|
||||||
|
if (!verbose) ::testing::internal::CaptureStdout();
|
||||||
|
lmp->input->one("clear");
|
||||||
|
lmp->input->one("kim_init LennardJones_Ar real");
|
||||||
|
lmp->input->one("lattice fcc 4.4300");
|
||||||
|
lmp->input->one("region box block 0 10 0 10 0 10");
|
||||||
|
lmp->input->one("create_box 1 box");
|
||||||
|
lmp->input->one("create_atoms 1 box");
|
||||||
|
lmp->input->one("kim_interactions Ar");
|
||||||
|
lmp->input->one("mass 1 39.95");
|
||||||
|
lmp->input->one("run 1");
|
||||||
|
lmp->input->one("kim_interactions Ar");
|
||||||
|
lmp->input->one("run 1");
|
||||||
|
if (!verbose) ::testing::internal::GetCapturedStdout();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(KimCommandsTest, kim_param)
|
TEST_F(KimCommandsTest, kim_param)
|
||||||
|
|||||||
Reference in New Issue
Block a user