From 4d132821208acbbf23c06a6f35c02644f34359a7 Mon Sep 17 00:00:00 2001 From: Aidan Thompson Date: Fri, 11 Mar 2022 15:07:18 -0700 Subject: [PATCH] More --- src/ML-IAP/mliap_descriptor_snap.cpp | 29 +++------------------------- src/ML-SNAP/compute_snad_atom.cpp | 4 +--- src/ML-SNAP/compute_snap.cpp | 4 +--- src/ML-SNAP/compute_snav_atom.cpp | 4 +--- src/ML-SNAP/pair_snap.cpp | 9 +-------- src/ML-SNAP/sna.cpp | 23 +++++++++++----------- src/ML-SNAP/sna.h | 4 ++-- 7 files changed, 21 insertions(+), 56 deletions(-) diff --git a/src/ML-IAP/mliap_descriptor_snap.cpp b/src/ML-IAP/mliap_descriptor_snap.cpp index 6571637681..9684a056e9 100644 --- a/src/ML-IAP/mliap_descriptor_snap.cpp +++ b/src/ML-IAP/mliap_descriptor_snap.cpp @@ -161,14 +161,7 @@ void MLIAPDescriptorSNAP::compute_forces(class MLIAPData* data) for (int jj = 0; jj < ninside; jj++) { int j = snaptr->inside[jj]; - if (chemflag) - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); - else - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, 0, - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); + snaptr->compute_duidrj(jj); snaptr->compute_deidrj(fij); @@ -237,15 +230,7 @@ void MLIAPDescriptorSNAP::compute_force_gradients(class MLIAPData* data) for (int jj = 0; jj < ninside; jj++) { const int j = snaptr->inside[jj]; - if (chemflag) - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); - else - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, 0, - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); - + snaptr->compute_duidrj(jj); snaptr->compute_dbidrj(); // Accumulate gamma_lk*dB_k/dRi, -gamma_lk**dB_k/dRj @@ -312,15 +297,7 @@ void MLIAPDescriptorSNAP::compute_descriptor_gradients(class MLIAPData* data) ij = ij0; for (int jj = 0; jj < ninside; jj++) { - if (chemflag) - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); - else - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, 0, - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); - + snaptr->compute_duidrj(jj); snaptr->compute_dbidrj(); // Accumulate dB_k^i/dRi, dB_k^i/dRj diff --git a/src/ML-SNAP/compute_snad_atom.cpp b/src/ML-SNAP/compute_snad_atom.cpp index a94555faa2..acee813dae 100644 --- a/src/ML-SNAP/compute_snad_atom.cpp +++ b/src/ML-SNAP/compute_snad_atom.cpp @@ -301,9 +301,7 @@ void ComputeSNADAtom::compute_peratom() for (int jj = 0; jj < ninside; jj++) { const int j = snaptr->inside[jj]; - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); + snaptr->compute_duidrj(jj); snaptr->compute_dbidrj(); // Accumulate -dBi/dRi, -dBi/dRj diff --git a/src/ML-SNAP/compute_snap.cpp b/src/ML-SNAP/compute_snap.cpp index 6cf7a38235..f371f3ff55 100644 --- a/src/ML-SNAP/compute_snap.cpp +++ b/src/ML-SNAP/compute_snap.cpp @@ -355,9 +355,7 @@ void ComputeSnap::compute_array() for (int jj = 0; jj < ninside; jj++) { const int j = snaptr->inside[jj]; - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); + snaptr->compute_duidrj(jj); snaptr->compute_dbidrj(); // Accumulate dBi/dRi, -dBi/dRj diff --git a/src/ML-SNAP/compute_snav_atom.cpp b/src/ML-SNAP/compute_snav_atom.cpp index dd49a90b90..6b53b344e8 100644 --- a/src/ML-SNAP/compute_snav_atom.cpp +++ b/src/ML-SNAP/compute_snav_atom.cpp @@ -295,9 +295,7 @@ void ComputeSNAVAtom::compute_peratom() for (int jj = 0; jj < ninside; jj++) { const int j = snaptr->inside[jj]; - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); + snaptr->compute_duidrj(jj); snaptr->compute_dbidrj(); // Accumulate -dBi/dRi*Ri, -dBi/dRj*Rj diff --git a/src/ML-SNAP/pair_snap.cpp b/src/ML-SNAP/pair_snap.cpp index 9896423ccf..1d4db2faae 100644 --- a/src/ML-SNAP/pair_snap.cpp +++ b/src/ML-SNAP/pair_snap.cpp @@ -182,14 +182,7 @@ void PairSNAP::compute(int eflag, int vflag) for (int jj = 0; jj < ninside; jj++) { int j = snaptr->inside[jj]; - if (chemflag) - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, snaptr->element[jj], - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); - else - snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj], - snaptr->rcutij[jj], jj, 0, - snaptr->rinnerij[jj], snaptr->drinnerij[jj]); + snaptr->compute_duidrj(jj); snaptr->compute_deidrj(fij); diff --git a/src/ML-SNAP/sna.cpp b/src/ML-SNAP/sna.cpp index 8527f42b3e..9488f83112 100644 --- a/src/ML-SNAP/sna.cpp +++ b/src/ML-SNAP/sna.cpp @@ -963,15 +963,15 @@ void SNA::compute_dbidrj() calculate derivative of Ui w.r.t. atom j ------------------------------------------------------------------------- */ -void SNA::compute_duidrj(double* rij, double wj, double rcut, int jj, - int jelem, double rinner, double drinner) +void SNA::compute_duidrj(int jj) { double rsq, r, x, y, z, z0, theta0, cs, sn; double dz0dr; + double rcut = rcutij[jj]; - x = rij[0]; - y = rij[1]; - z = rij[2]; + x = rij[jj][0]; + y = rij[jj][1]; + z = rij[jj][2]; rsq = x * x + y * y + z * z; r = sqrt(rsq); double rscale0 = rfac0 * MY_PI / (rcut - rmin0); @@ -981,8 +981,10 @@ void SNA::compute_duidrj(double* rij, double wj, double rcut, int jj, z0 = r * cs / sn; dz0dr = z0 / r - (r*rscale0) * (rsq + z0 * z0) / rsq; - elem_duarray = jelem; - compute_duarray(x, y, z, z0, r, dz0dr, wj, rcut, jj, rinner, drinner); + if (chem_flag) elem_duarray = element[jj]; + else elem_duarray = 0; + + compute_duarray(x, y, z, z0, r, dz0dr, wj[jj], rcut, jj); } /* ---------------------------------------------------------------------- */ @@ -1137,8 +1139,7 @@ void SNA::compute_uarray(double x, double y, double z, void SNA::compute_duarray(double x, double y, double z, double z0, double r, double dz0dr, - double wj, double rcut, int jj, - double rinner, double drinner) + double wj, double rcut, int jj) { double r0inv; double a_r, a_i, b_r, b_i; @@ -1269,8 +1270,8 @@ void SNA::compute_duarray(double x, double y, double z, double dsfac = compute_dsfac(r, rcut); if (switch_inner_flag) { - double sfac_inner = compute_sfac_inner(r, rinner, drinner); - dsfac = dsfac*sfac_inner + sfac*compute_dsfac_inner(r, rinner, drinner); + double sfac_inner = compute_sfac_inner(r, rinnerij[jj], drinnerij[jj]); + dsfac = dsfac*sfac_inner + sfac*compute_dsfac_inner(r, rinnerij[jj], drinnerij[jj]); sfac *= sfac_inner; } diff --git a/src/ML-SNAP/sna.h b/src/ML-SNAP/sna.h index e2fa06d803..126410fa00 100644 --- a/src/ML-SNAP/sna.h +++ b/src/ML-SNAP/sna.h @@ -53,7 +53,7 @@ class SNA : protected Pointers { // functions for derivatives - void compute_duidrj(double *, double, double, int, int, double, double); + void compute_duidrj(int); void compute_dbidrj(); void compute_deidrj(double *); double compute_sfac(double, double); @@ -125,7 +125,7 @@ class SNA : protected Pointers { double deltacg(int, int, int); void compute_ncoeff(); void compute_duarray(double, double, double, double, double, double, - double, double, int, double, double); + double, double, int); // Sets the style for the switching function // 0 = none