Cleaned up the MLIAPData variable names

This commit is contained in:
Aidan Thompson
2021-03-08 13:31:24 -07:00
parent f1e01274b1
commit 025b18999a
9 changed files with 52 additions and 53 deletions

View File

@ -215,7 +215,7 @@ void ComputeMLIAP::init_list(int /*id*/, NeighList *ptr)
void ComputeMLIAP::compute_array()
{
int ntotal = atom->nlocal + atom->nghost;
int nall = atom->nlocal + atom->nghost;
invoked_array = update->ntimestep;
// clear global array
@ -261,7 +261,7 @@ void ComputeMLIAP::compute_array()
for (int ielem = 0; ielem < data->nelements; ielem++) {
const int elemoffset = data->nparams*ielem;
for (int jparam = 0; jparam < data->nparams; jparam++) {
for (int i = 0; i < ntotal; i++) {
for (int i = 0; i < nall; i++) {
double *gradforcei = data->gradforce[i]+elemoffset;
tagint irow = 3*(atom->tag[i]-1)+1;
mliaparray[irow][jparam+elemoffset] += gradforcei[jparam];
@ -307,7 +307,7 @@ void ComputeMLIAP::compute_array()
// switch to Voigt notation
c_virial->compute_vector();
irow += 3*data->natoms_array;
irow += 3*data->natoms;
mliaparrayall[irow++][lastcol] = c_virial->vector[0];
mliaparrayall[irow++][lastcol] = c_virial->vector[1];
mliaparrayall[irow++][lastcol] = c_virial->vector[2];
@ -325,7 +325,7 @@ void ComputeMLIAP::compute_array()
void ComputeMLIAP::dbdotr_compute()
{
double **x = atom->x;
int irow0 = 1+data->ndims_force*data->natoms_array;
int irow0 = 1+data->ndims_force*data->natoms;
// sum over bispectrum contributions to forces
// on all particles including ghosts

View File

@ -54,12 +54,12 @@ MLIAPData::MLIAPData(LAMMPS *lmp, int gradgradflag_in, int *map_in,
// must check before storing bigint into regular int
if (atom->natoms > MAXSMALLINT)
error->all(FLERR,"Too many atoms for MLIAP package");
natoms_array = atom->natoms;
size_array_rows = 1+ndims_force*natoms_array+ndims_virial;
natoms = atom->natoms;
size_array_rows = 1+ndims_force*natoms+ndims_virial;
size_array_cols = nparams*nelements+1;
size_gradforce = ndims_force*nparams*nelements;
natoms_max = 0;
nlistatoms_max = 0;
natomneigh_max = 0;
nneigh_max = 0;
nmax = 0;
@ -120,38 +120,37 @@ void MLIAPData::generate_neighdata(NeighList* list_in, int eflag_in, int vflag_i
// clear gradforce array
int ntotal = atom->nlocal + atom->nghost;
for (int i = 0; i < ntotal; i++)
int nall = atom->nlocal + atom->nghost;
for (int i = 0; i < nall; i++)
for (int j = 0; j < size_gradforce; j++) {
gradforce[i][j] = 0.0;
}
// grow arrays if necessary
nlistatoms = list->inum;
if (nlistatoms_max < nlistatoms) {
memory->grow(betas,nlistatoms,ndescriptors,"MLIAPData:betas");
memory->grow(descriptors,nlistatoms,ndescriptors,"MLIAPData:descriptors");
memory->grow(eatoms,nlistatoms,"MLIAPData:eatoms");
nlistatoms_max = nlistatoms;
}
// grow gamma arrays if necessary
if (gradgradflag == 1) {
const int natomgamma = list->inum;
if (natomgamma_max < natomgamma) {
memory->grow(gamma_row_index,natomgamma,gamma_nnz,"MLIAPData:gamma_row_index");
memory->grow(gamma_col_index,natomgamma,gamma_nnz,"MLIAPData:gamma_col_index");
memory->grow(gamma,natomgamma,gamma_nnz,"MLIAPData:gamma");
natomgamma_max = natomgamma;
if (natomgamma_max < nlistatoms) {
memory->grow(gamma_row_index,nlistatoms,gamma_nnz,"MLIAPData:gamma_row_index");
memory->grow(gamma_col_index,nlistatoms,gamma_nnz,"MLIAPData:gamma_col_index");
memory->grow(gamma,nlistatoms,gamma_nnz,"MLIAPData:gamma");
natomgamma_max = nlistatoms;
}
}
// grow arrays if necessary
natoms = list->inum;
if (natoms_max < natoms) {
memory->grow(betas,natoms,ndescriptors,"MLIAPData:betas");
memory->grow(descriptors,natoms,ndescriptors,"MLIAPData:descriptors");
memory->grow(eatoms,natoms,"MLIAPData:eatoms");
natoms_max = natoms;
}
grow_neigharrays();
int ij = 0;
for (int ii = 0; ii < natoms; ii++) {
for (int ii = 0; ii < nlistatoms; ii++) {
const int i = ilist[ii];
const double xtmp = x[i][0];
@ -202,12 +201,11 @@ void MLIAPData::grow_neigharrays()
// grow neighbor atom arrays if necessary
const int natomneigh = list->inum;
if (natomneigh_max < natomneigh) {
memory->grow(iatoms,natomneigh,"MLIAPData:iatoms");
memory->grow(ielems,natomneigh,"MLIAPData:ielems");
memory->grow(numneighs,natomneigh,"MLIAPData:numneighs");
natomneigh_max = natomneigh;
if (natomneigh_max < nlistatoms) {
memory->grow(iatoms,nlistatoms,"MLIAPData:iatoms");
memory->grow(ielems,nlistatoms,"MLIAPData:ielems");
memory->grow(numneighs,nlistatoms,"MLIAPData:numneighs");
natomneigh_max = nlistatoms;
}
// grow neighbor arrays if necessary
@ -219,7 +217,7 @@ void MLIAPData::grow_neigharrays()
int *type = atom->type;
int nneigh = 0;
for (int ii = 0; ii < natomneigh; ii++) {
for (int ii = 0; ii < nlistatoms; ii++) {
const int i = ilist[ii];
const double xtmp = x[i][0];
@ -272,9 +270,9 @@ double MLIAPData::memory_usage()
gamma_nnz*sizeof(double); // gamma
}
bytes += (double)natoms*ndescriptors*sizeof(int); // betas
bytes += (double)natoms*ndescriptors*sizeof(int); // descriptors
bytes += (double)natoms*sizeof(double); // eatoms
bytes += (double)nlistatoms*ndescriptors*sizeof(int); // betas
bytes += (double)nlistatoms*ndescriptors*sizeof(int); // descriptors
bytes += (double)nlistatoms*sizeof(double); // eatoms
bytes += (double)natomneigh_max*sizeof(int); // iatoms
bytes += (double)natomneigh_max*sizeof(int); // ielems

View File

@ -30,7 +30,8 @@ class MLIAPData : protected Pointers {
double memory_usage();
int size_array_rows, size_array_cols;
int natoms_array, size_gradforce;
int natoms;
int size_gradforce;
int yoffset, zoffset;
int ndims_force, ndims_virial;
double **gradforce;
@ -54,8 +55,8 @@ class MLIAPData : protected Pointers {
// data structures for mliap neighbor list
// only neighbors strictly inside descriptor cutoff
int natoms; // current number of atoms
int natoms_max; // allocated size of descriptor array
int nlistatoms; // current number of atoms in neighborlist
int nlistatoms_max; // allocated size of descriptor array
int natomneigh_max; // allocated size of atom neighbor arrays
int *numneighs; // neighbors count for each atom
int *iatoms; // index of each atom

View File

@ -78,7 +78,7 @@ MLIAPDescriptorSNAP::~MLIAPDescriptorSNAP()
void MLIAPDescriptorSNAP::compute_descriptors(class MLIAPData* data)
{
int ij = 0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
// insure rij, inside, wj, and rcutij are of size jnum
@ -130,7 +130,7 @@ void MLIAPDescriptorSNAP::compute_forces(class MLIAPData* data)
double **f = atom->f;
int ij = 0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int i = data->iatoms[ii];
const int ielem = data->ielems[ii];
@ -204,7 +204,7 @@ void MLIAPDescriptorSNAP::compute_forces(class MLIAPData* data)
void MLIAPDescriptorSNAP::compute_force_gradients(class MLIAPData* data)
{
int ij = 0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int i = data->iatoms[ii];
const int ielem = data->ielems[ii];
@ -279,7 +279,7 @@ void MLIAPDescriptorSNAP::compute_force_gradients(class MLIAPData* data)
void MLIAPDescriptorSNAP::compute_descriptor_gradients(class MLIAPData* data)
{
int ij = 0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
// insure rij, inside, wj, and rcutij are of size jnum

View File

@ -57,7 +57,7 @@ void MLIAPModelLinear::compute_gradients(MLIAPData* data)
{
data->energy = 0.0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
double* coeffi = coeffelem[ielem];
@ -107,7 +107,7 @@ void MLIAPModelLinear::compute_gradgrads(class MLIAPData* data)
for (int l = 0; l < data->nelements*data->nparams; l++)
data->egradient[l] = 0.0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
const int elemoffset = data->nparams*ielem;
@ -143,7 +143,7 @@ void MLIAPModelLinear::compute_force_gradients(class MLIAPData* data)
data->egradient[l] = 0.0;
int ij = 0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int i = data->iatoms[ii];
const int ielem = data->ielems[ii];
const int elemoffset = data->nparams*ielem;

View File

@ -217,7 +217,7 @@ void MLIAPModelNN::compute_gradients(MLIAPData* data)
{
data->energy = 0.0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
const int nl = nlayers;

View File

@ -17,7 +17,7 @@ from libcpp.string cimport string
cdef extern from "mliap_data.h" namespace "LAMMPS_NS":
cdef cppclass MLIAPData:
# Array shapes
int natoms
int nlistatoms
int ndescriptors
# Input data
@ -103,7 +103,7 @@ cdef public void MLIAPPY_compute_gradients(MLIAPModelPython * c_model, MLIAPData
model = retrieve(c_model)
n_d = data.ndescriptors
n_a = data.natoms
n_a = data.nlistatoms
# Make numpy arrays from pointers
beta_np = np.asarray(<double[:n_a,:n_d] > &data.betas[0][0])

View File

@ -59,7 +59,7 @@ void MLIAPModelQuadratic::compute_gradients(MLIAPData* data)
{
data->energy = 0.0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
double* coeffi = coeffelem[ielem];
@ -133,7 +133,7 @@ void MLIAPModelQuadratic::compute_gradgrads(class MLIAPData* data)
for (int l = 0; l < data->nelements*data->nparams; l++)
data->egradient[l] = 0.0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int ielem = data->ielems[ii];
const int elemoffset = data->nparams*ielem;
@ -215,7 +215,7 @@ void MLIAPModelQuadratic::compute_force_gradients(class MLIAPData* data) {
data->egradient[l] = 0.0;
int ij = 0;
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int i = data->iatoms[ii];
const int ielem = data->ielems[ii];
const int elemoffset = data->nparams*ielem;

View File

@ -255,7 +255,7 @@ void PairMLIAP::e_tally(MLIAPData* data)
{
if (eflag_global) eng_vdwl += data->energy;
if (eflag_atom)
for (int ii = 0; ii < data->natoms; ii++) {
for (int ii = 0; ii < data->nlistatoms; ii++) {
const int i = data->iatoms[ii];
eatom[i] += data->eatoms[ii];
}