WIP: pair_pace_extrapolation_kokkos.h/cpp:

- rename idx_rho_max -> idx_ms_combs_max,  d_idx_rho_count ->d_idx_ms_combs_count, d_offsets->d_func_inds
- remove d_ctildes, add d_gen_cgs and d_coeffs
- use ACEBBasisFunction
- update TagPairPACEComputeRho and TagPairPACEComputeWeights
- pair_pace_extrapolation.h/cpp: add chunksize option
This commit is contained in:
Yury Lysogorskiy
2023-01-02 18:29:12 +01:00
parent 6565056424
commit 1b92569187
4 changed files with 164 additions and 125 deletions

View File

@ -98,6 +98,8 @@ PairPACEExtrapolation::PairPACEExtrapolation(LAMMPS *lmp) : Pair(lmp)
scale = nullptr;
flag_compute_extrapolation_grade = 0;
extrapolation_grade_gamma = nullptr;
chunksize = 4096;
}
/* ----------------------------------------------------------------------
@ -133,7 +135,7 @@ void PairPACEExtrapolation::compute(int eflag, int vflag)
double **x = atom->x;
double **f = atom->f;
tagint *tag = atom->tag;
// tagint *tag = atom->tag;
int *type = atom->type;
// number of atoms in cell
int nlocal = atom->nlocal;
@ -141,7 +143,7 @@ void PairPACEExtrapolation::compute(int eflag, int vflag)
int newton_pair = force->newton_pair;
// number of atoms including ghost atoms
int nall = nlocal + atom->nghost;
// int nall = nlocal + atom->nghost;
// inum: length of the neighborlists list
inum = list->inum;
@ -283,7 +285,20 @@ void PairPACEExtrapolation::allocate()
void PairPACEExtrapolation::settings(int narg, char **arg)
{
if (narg > 0) error->all(FLERR, "Pair style pace/extrapolation supports no keywords");
// if (narg > 2) error->all(FLERR, "Pair style pace/extrapolation supports no keywords");
if (narg > 2) utils::missing_cmd_args(FLERR, "pair_style pace/extrapolation", error);
// ACE potentials are parameterized in metal units
if (strcmp("metal", update->unit_style) != 0)
error->all(FLERR, "ACE potentials require 'metal' units");
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg], "chunksize") == 0) {
chunksize = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else
error->all(FLERR, "Unknown pair_style pace keyword: {}", arg[iarg]);
}
if (comm->me == 0)
utils::logmesg(lmp, "ACE/AL version: {}.{}.{}\n", VERSION_YEAR, VERSION_MONTH, VERSION_DAY);
@ -343,7 +358,6 @@ void PairPACEExtrapolation::coeff(int narg, char **arg)
aceimpl->rec_ace->element_type_mapping.init(atom->ntypes + 1);
aceimpl->rec_ace->element_type_mapping.fill(-1); //-1 means atom not included into potential
FILE *species_type_file = nullptr;
const int n = atom->ntypes;
element_names.resize(n);