Cleaned up the MLIAPData variable names
This commit is contained in:
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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])
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user