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

This commit is contained in:
sjplimp
2012-08-10 15:06:10 +00:00
parent b93e856411
commit 6dbd121073
3 changed files with 102 additions and 22 deletions

View File

@ -62,6 +62,18 @@ ComputePropertyLocal::ComputePropertyLocal(LAMMPS *lmp, int narg, char **arg) :
error->all(FLERR,
"Compute property/local cannot use these inputs together");
kindflag = NEIGH;
} else if (strcmp(arg[iarg],"ntype1") == 0) {
pack_choice[i] = &ComputePropertyLocal::pack_ptype1;
if (kindflag != NONE && kindflag != NEIGH)
error->all(FLERR,
"Compute property/local cannot use these inputs together");
kindflag = NEIGH;
} else if (strcmp(arg[iarg],"ntype2") == 0) {
pack_choice[i] = &ComputePropertyLocal::pack_ptype2;
if (kindflag != NONE && kindflag != NEIGH)
error->all(FLERR,
"Compute property/local cannot use these inputs together");
kindflag = NEIGH;
} else if (strcmp(arg[iarg],"patom1") == 0) {
pack_choice[i] = &ComputePropertyLocal::pack_patom1;
@ -75,6 +87,18 @@ ComputePropertyLocal::ComputePropertyLocal(LAMMPS *lmp, int narg, char **arg) :
error->all(FLERR,
"Compute property/local cannot use these inputs together");
kindflag = PAIR;
} else if (strcmp(arg[iarg],"ptype1") == 0) {
pack_choice[i] = &ComputePropertyLocal::pack_ptype1;
if (kindflag != NONE && kindflag != PAIR)
error->all(FLERR,
"Compute property/local cannot use these inputs together");
kindflag = PAIR;
} else if (strcmp(arg[iarg],"ptype2") == 0) {
pack_choice[i] = &ComputePropertyLocal::pack_ptype2;
if (kindflag != NONE && kindflag != PAIR)
error->all(FLERR,
"Compute property/local cannot use these inputs together");
kindflag = PAIR;
} else if (strcmp(arg[iarg],"batom1") == 0) {
pack_choice[i] = &ComputePropertyLocal::pack_batom1;
@ -359,8 +383,8 @@ int ComputePropertyLocal::count_pairs(int allflag, int forceflag)
if (forceflag && rsq >= cutsq[itype][jtype]) continue;
if (allflag) {
indices[m][0] = tag[i];
indices[m][1] = tag[j];
indices[m][0] = i;
indices[m][1] = j;
}
m++;
}
@ -582,8 +606,12 @@ double ComputePropertyLocal::memory_usage()
void ComputePropertyLocal::pack_patom1(int n)
{
int i;
int *tag = atom->tag;
for (int m = 0; m < ncount; m++) {
buf[n] = indices[m][0];
i = indices[m][0];
buf[n] = tag[i];
n += nvalues;
}
}
@ -592,8 +620,40 @@ void ComputePropertyLocal::pack_patom1(int n)
void ComputePropertyLocal::pack_patom2(int n)
{
int i;
int *tag = atom->tag;
for (int m = 0; m < ncount; m++) {
buf[n] = indices[m][1];
i = indices[m][1];
buf[n] = tag[i];
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void ComputePropertyLocal::pack_ptype1(int n)
{
int i;
int *type = atom->type;
for (int m = 0; m < ncount; m++) {
i = indices[m][0];
buf[n] = type[i];
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void ComputePropertyLocal::pack_ptype2(int n)
{
int i;
int *type = atom->type;
for (int m = 0; m < ncount; m++) {
i = indices[m][0];
buf[n] = type[i];
n += nvalues;
}
}

View File

@ -58,6 +58,8 @@ class ComputePropertyLocal : public Compute {
void pack_patom1(int);
void pack_patom2(int);
void pack_ptype1(int);
void pack_ptype2(int);
void pack_batom1(int);
void pack_batom2(int);

View File

@ -966,13 +966,15 @@ int Thermo::evaluate_keyword(char *word, double *answer)
} else if (strcmp(word,"elapsed") == 0) {
if (update->whichflag == 0)
error->all(FLERR,"This variable thermo keyword cannot be used between runs");
error->all(FLERR,
"This variable thermo keyword cannot be used between runs");
compute_elapsed();
dvalue = bivalue;
} else if (strcmp(word,"elaplong") == 0) {
if (update->whichflag == 0)
error->all(FLERR,"This variable thermo keyword cannot be used between runs");
error->all(FLERR,
"This variable thermo keyword cannot be used between runs");
compute_elapsed_long();
dvalue = bivalue;
@ -981,17 +983,20 @@ int Thermo::evaluate_keyword(char *word, double *answer)
} else if (strcmp(word,"cpu") == 0) {
if (update->whichflag == 0)
error->all(FLERR,"This variable thermo keyword cannot be used between runs");
error->all(FLERR,
"This variable thermo keyword cannot be used between runs");
compute_cpu();
} else if (strcmp(word,"tpcpu") == 0) {
if (update->whichflag == 0)
error->all(FLERR,"This variable thermo keyword cannot be used between runs");
error->all(FLERR,
"This variable thermo keyword cannot be used between runs");
compute_tpcpu();
} else if (strcmp(word,"spcpu") == 0) {
if (update->whichflag == 0)
error->all(FLERR,"This variable thermo keyword cannot be used between runs");
error->all(FLERR,
"This variable thermo keyword cannot be used between runs");
compute_spcpu();
} else if (strcmp(word,"atoms") == 0) {
@ -1028,7 +1033,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
} else if (strcmp(word,"pe") == 0) {
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
if (update->whichflag == 0) {
if (pe->invoked_scalar != update->ntimestep)
error->all(FLERR,"Compute used in variable thermo keyword between runs "
@ -1055,7 +1061,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
} else if (strcmp(word,"etotal") == 0) {
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
if (update->whichflag == 0) {
if (pe->invoked_scalar != update->ntimestep)
error->all(FLERR,"Compute used in variable thermo keyword between runs "
@ -1079,7 +1086,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
} else if (strcmp(word,"enthalpy") == 0) {
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
if (update->whichflag == 0) {
if (pe->invoked_scalar != update->ntimestep)
error->all(FLERR,"Compute used in variable thermo keyword between runs "
@ -1116,7 +1124,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_evdwl();
@ -1124,7 +1133,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_ecoul();
@ -1132,7 +1142,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_epair();
@ -1140,7 +1151,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_ebond();
@ -1148,7 +1160,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_eangle();
@ -1156,7 +1169,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_edihed();
@ -1164,7 +1178,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_eimp();
@ -1172,7 +1187,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_emol();
@ -1180,7 +1196,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_elong();
@ -1188,7 +1205,8 @@ int Thermo::evaluate_keyword(char *word, double *answer)
if (update->eflag_global != update->ntimestep)
error->all(FLERR,"Energy was not tallied on needed timestep");
if (!pe)
error->all(FLERR,"Thermo keyword in variable requires thermo to use/init pe");
error->all(FLERR,
"Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_etail();