100 if ( ! inppot )
return;
124 strcpy(pot->
name,
"Cu");
133 fprintf(file,
" Potential type : Lennard-Jones\n");
134 fprintf(file,
" Species name : %s\n", ljPot->
name);
135 fprintf(file,
" Atomic number : %d\n", ljPot->
atomicNo);
137 fprintf(file,
" Lattice Type : %s\n", ljPot->
latticeType);
138 fprintf(file,
" Lattice spacing : "FMT1" Angstroms\n", ljPot->
lat);
139 fprintf(file,
" Cutoff : "FMT1" Angstroms\n", ljPot->
cutoff);
140 fprintf(file,
" Epsilon : "FMT1" eV\n", ljPot->
epsilon);
141 fprintf(file,
" Sigma : "FMT1" Angstroms\n", ljPot->
sigma);
156 for (
int ii=0; ii<fSize; ++ii)
162 real_t s6 = sigma*sigma*sigma*sigma*sigma*sigma;
164 real_t rCut6 = s6 / (rCut2*rCut2*rCut2);
172 if ( nIBox == 0 )
continue;
175 for (
int jTmp=0; jTmp<nNbrBoxes; jTmp++)
177 int jBox = nbrBoxes[jTmp];
182 if ( nJBox == 0 )
continue;
185 for (
int iOff=iBox*
MAXATOMS,ii=0; ii<nIBox; ii++,iOff++)
189 for (
int jOff=MAXATOMS*jBox,ij=0; ij<nJBox; ij++,jOff++)
193 if (jBox < s->boxes->nLocalBoxes && jId <= iId )
196 for (
int m=0; m<3; m++)
202 if ( r2 > rCut2)
continue;
207 real_t r6 = s6 * (r2*r2*r2);
208 real_t eLocal = r6 * (r6 - 1.0) - eShift;
209 s->
atoms->
U[iOff] += 0.5*eLocal;
210 s->
atoms->
U[jOff] += 0.5*eLocal;
214 if (jBox < s->boxes->nLocalBoxes)
217 ePot += 0.5 * eLocal;
220 real_t fr = - 4.0*epsilon*r6*r2*(12.0*r6 - 6.0);
221 for (
int m=0; m<3; m++)
223 s->
atoms->
f[iOff][m] -= dr[m]*fr;
224 s->
atoms->
f[jOff][m] += dr[m]*fr;
231 ePot = ePot*4.0*epsilon;