git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11788 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2014-04-15 15:17:25 +00:00
parent 1f0a6ae006
commit 3e291aca3d
6 changed files with 21 additions and 19 deletions

View File

@ -231,9 +231,8 @@ void PairPeriEPS::compute(int eflag, int vflag)
// compute the dilatation on each particle
compute_dilatation();
// communicate dilatation (theta) of each particle
comm->forward_comm_pair(this);
@ -347,7 +346,6 @@ void PairPeriEPS::compute(int eflag, int vflag)
double deviatoric_extension = dr - (theta[i]* r0[i][jj] / 3.0);
edpNp1 = deviatorPlasticextension[i][jj];
double tdtrialValue = ( 15 * shearmodulus[itype][itype]) *
( (omega_plus / wvolume[i]) + (omega_minus / wvolume[j]) ) *
@ -378,9 +376,7 @@ void PairPeriEPS::compute(int eflag, int vflag)
// since I-J is double counted, set newton off & use 1/2 factor and I,I
if (eflag) evdwl = (0.5 * 15 * (shearmodulus[itype][itype]/wvolume[i]) *
omega_plus * deviatoric_extension * deviatoric_extension) +
(0.5 * 15 * (shearmodulus[itype][itype]/wvolume[i]) *
if (eflag) evdwl = (0.5 * 15 * shearmodulus[itype][itype]/wvolume[i] *
omega_plus * (deviatoric_extension - edpNp1) *
(deviatoric_extension-edpNp1)) * vfrac[j] * vfrac_scale;
if (evflag) ev_tally(i,i,nlocal,0,0.5*evdwl,0.0,
@ -402,7 +398,7 @@ void PairPeriEPS::compute(int eflag, int vflag)
(alpha[itype][jtype] * stretch));
first = false;
}
}
}
// store new s0
@ -415,8 +411,7 @@ void PairPeriEPS::compute(int eflag, int vflag)
double temp_data = deviatorPlasticExtTemp[i][jj];
deviatorPlasticextension[i][jj] = temp_data;
}
}
}
}
/* ----------------------------------------------------------------------

View File

@ -27,6 +27,7 @@ namespace LAMMPS_NS {
class PairPeriEPS : public Pair {
public:
double *theta;
double *elastic_energy;
PairPeriEPS(class LAMMPS *);
virtual ~PairPeriEPS();

View File

@ -285,6 +285,7 @@ void PairPeriLPS::compute(int eflag, int vflag)
omega_plus = influence_function(-1.0*delx0,-1.0*dely0,-1.0*delz0);
omega_minus = influence_function(delx0,dely0,delz0);
rk = ( (3.0 * bulkmodulus[itype][itype]) -
(5.0 * shearmodulus[itype][itype]) ) * vfrac[j] * vfrac_scale *
( (omega_plus * theta[i] / wvolume[i]) +
@ -302,6 +303,8 @@ void PairPeriLPS::compute(int eflag, int vflag)
// since I-J is double counted, set newton off & use 1/2 factor and I,I
double deviatoric_extension = dr - (theta[i]* r0[i][jj] / 3.0);
if (eflag) evdwl = 0.5 * 15 * (shearmodulus[itype][itype]/wvolume[i]) *
omega_plus*(deviatoric_extension * deviatoric_extension) *
vfrac[j] * vfrac_scale;
@ -323,7 +326,7 @@ void PairPeriLPS::compute(int eflag, int vflag)
(alpha[itype][jtype] * stretch));
first = false;
}
}
}
// store new s0
@ -618,6 +621,7 @@ void PairPeriLPS::compute_dilatation()
}
}
/* ----------------------------------------------------------------------
communication routines
---------------------------------------------------------------------- */

View File

@ -27,6 +27,7 @@ namespace LAMMPS_NS {
class PairPeriLPS : public Pair {
public:
double *theta;
double *elastic_energy;
PairPeriLPS(class LAMMPS *);
virtual ~PairPeriLPS();

View File

@ -217,12 +217,10 @@ void PairPeriVES::compute(int eflag, int vflag)
memory->create(theta,nmax,"pair:theta");
}
// compute the dilatation on each particle
// Compute the dilatation on each particle
compute_dilatation();
// communicate dilatation (theta) of each particle
comm->forward_comm_pair(this);
// communicate weighted volume (wvolume) upon every reneighbor
@ -310,7 +308,6 @@ void PairPeriVES::compute(int eflag, int vflag)
else fbond = 0.0;
// for viscoelasticity
lambdai=m_lambdai[itype][itype];
double taui = m_taubi[itype][itype];
double c1 = taui/timestepsize;
@ -349,12 +346,12 @@ void PairPeriVES::compute(int eflag, int vflag)
// since I-J is double counted, set newton off & use 1/2 factor and I,I
if (eflag) evdwl = (0.5 * 15 * (shearmodulus[itype][itype]/wvolume[i]) *
if (eflag) evdwl = ((0.5 * 15 * (1 - lambdai) * shearmodulus[itype][itype]/wvolume[i] *
omega_plus * deviatoric_extension *
deviatoric_extension) +
(0.5 * 15 * (shearmodulus[itype][itype]/wvolume[i]) *
(0.5 * 15 * lambdai * shearmodulus[itype][itype]/wvolume[i] *
omega_plus * (deviatoric_extension-edbNp1) *
(deviatoric_extension-edbNp1)) * vfrac[j] * vfrac_scale;
(deviatoric_extension-edbNp1))) * vfrac[j] * vfrac_scale;
if (evflag) ev_tally(i,i,nlocal,0,0.5*evdwl,0.0,
0.5*fbond*vfrac[i],delx,dely,delz);
@ -378,7 +375,7 @@ void PairPeriVES::compute(int eflag, int vflag)
(alpha[itype][jtype] * stretch));
first = false;
}
}
}
// store new s0
@ -620,6 +617,7 @@ void PairPeriVES::compute_dilatation()
double lc = domain->lattice->xlattice;
double half_lc = 0.5*lc;
double **r0 = ((FixPeriNeigh *) modify->fix[ifix_peri])->r0;
tagint **partner = ((FixPeriNeigh *) modify->fix[ifix_peri])->partner;
int *npartner = ((FixPeriNeigh *) modify->fix[ifix_peri])->npartner;
@ -693,6 +691,7 @@ void PairPeriVES::compute_dilatation()
}
}
/* ----------------------------------------------------------------------
communication routines
---------------------------------------------------------------------- */

View File

@ -27,6 +27,7 @@ namespace LAMMPS_NS {
class PairPeriVES : public Pair {
public:
double *theta;
double *elastic_energy;
PairPeriVES(class LAMMPS *);
virtual ~PairPeriVES();
@ -44,7 +45,8 @@ class PairPeriVES : public Pair {
void read_restart_settings(FILE *) {}
double memory_usage();
double influence_function(double, double, double);
void compute_dilatation();
void compute_dilatation();
protected:
int ifix_peri;