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

This commit is contained in:
sjplimp 2007-10-26 20:14:48 +00:00
parent 9472ecf4a4
commit 189ad3f05e
8 changed files with 29 additions and 14 deletions

View File

@ -42,22 +42,30 @@ ComputeSumAtom::ComputeSumAtom(LAMMPS *lmp, int narg, char **arg) :
compute = new Compute*[npre]; compute = new Compute*[npre];
// check consistency of set of pre-computes for scalar & vector output // all sub-computes must be peratom
// check consistency of sub-computes for scalar & vector output
peratom_flag = 1; int icompute;
int icompute = modify->find_compute(id_pre[0]); for (int i = 0; i < npre; i++) {
size_peratom = modify->compute[icompute]->size_peratom;
for (int i = 1; i < npre; i++) {
icompute = modify->find_compute(id_pre[i]); icompute = modify->find_compute(id_pre[i]);
if (icompute < 0) if (icompute < 0)
error->all("Could not find compute sum/atom pre-compute ID"); error->all("Could not find compute sum/atom pre-compute ID");
if (modify->compute[icompute]->peratom_flag == 0) if (modify->compute[icompute]->peratom_flag == 0)
error->all("Compute sum/atom compute does not compute vector per atom"); error->all("Compute sum/atom compute is not a per-atom compute");
if (modify->compute[icompute]->size_peratom != size_peratom)
error->all("Inconsistent sizes of compute sum/atom compute vectors");
} }
peratom_flag = 1;
icompute = modify->find_compute(id_pre[0]);
size_peratom = modify->compute[icompute]->size_peratom;
for (int i = 1; i < npre; i++) {
icompute = modify->find_compute(id_pre[i]);
if (modify->compute[icompute]->size_peratom != size_peratom)
error->all("Inconsistent sizes of compute sum/atom compute quantities");
}
// values generated by this compute
nmax = 0; nmax = 0;
s_value = NULL; s_value = NULL;
v_value = NULL; v_value = NULL;

View File

@ -115,7 +115,8 @@ int FixAveAtom::setmask()
void FixAveAtom::init() void FixAveAtom::init()
{ {
// set ptrs to one or more computes called each end-of-step // set ptrs to compute and its pre-computes called each end-of-step
// put pre-computes in list before compute
int icompute = modify->find_compute(id_compute); int icompute = modify->find_compute(id_compute);
if (icompute < 0) error->all("Compute ID for fix ave/atom does not exist"); if (icompute < 0) error->all("Compute ID for fix ave/atom does not exist");

View File

@ -285,7 +285,8 @@ void FixAveSpatial::init()
error->all("Fix ave/spatial settings invalid with changing box"); error->all("Fix ave/spatial settings invalid with changing box");
} }
// set ptrs to one or more computes called each end-of-step // set ptrs to compute and its pre-computes called each end-of-step
// put pre-computes in list before compute
if (which == COMPUTE) { if (which == COMPUTE) {
int icompute = modify->find_compute(id_compute); int icompute = modify->find_compute(id_compute);

View File

@ -230,7 +230,8 @@ int FixAveTime::setmask()
void FixAveTime::init() void FixAveTime::init()
{ {
// set ptrs to one or more computes called each end-of-step // set ptrs to compute and its pre-computes called each end-of-step
// put pre-computes in list before compute
if (which == COMPUTE) { if (which == COMPUTE) {
int icompute = modify->find_compute(id); int icompute = modify->find_compute(id);

View File

@ -86,6 +86,7 @@ CommandStyle(write_restart,WriteRestart)
#include "compute_rotate_dipole.h" #include "compute_rotate_dipole.h"
#include "compute_rotate_gran.h" #include "compute_rotate_gran.h"
#include "compute_stress_atom.h" #include "compute_stress_atom.h"
#include "compute_sum.h"
#include "compute_sum_atom.h" #include "compute_sum_atom.h"
#include "compute_temp.h" #include "compute_temp.h"
#include "compute_temp_deform.h" #include "compute_temp_deform.h"
@ -107,6 +108,7 @@ ComputeStyle(pressure,ComputePressure)
ComputeStyle(rotate/dipole,ComputeRotateDipole) ComputeStyle(rotate/dipole,ComputeRotateDipole)
ComputeStyle(rotate/gran,ComputeRotateGran) ComputeStyle(rotate/gran,ComputeRotateGran)
ComputeStyle(stress/atom,ComputeStressAtom) ComputeStyle(stress/atom,ComputeStressAtom)
ComputeStyle(sum,ComputeSum)
ComputeStyle(sum/atom,ComputeSumAtom) ComputeStyle(sum/atom,ComputeSumAtom)
ComputeStyle(temp,ComputeTemp) ComputeStyle(temp,ComputeTemp)
ComputeStyle(temp/deform,ComputeTempDeform) ComputeStyle(temp/deform,ComputeTempDeform)

View File

@ -28,6 +28,7 @@ KSpaceStyle(pppm/tip4p,PPPMTIP4P)
#include "pair_coul_long.h" #include "pair_coul_long.h"
#include "pair_lj_cut_coul_long.h" #include "pair_lj_cut_coul_long.h"
#include "pair_lj_cut_coul_long_tip4p.h" #include "pair_lj_cut_coul_long_tip4p.h"
#include "pair_new.h"
#include "pair_lj_charmm_coul_long.h" #include "pair_lj_charmm_coul_long.h"
#endif #endif
@ -36,5 +37,6 @@ PairStyle(buck/coul/long,PairBuckCoulLong)
PairStyle(coul/long,PairCoulLong) PairStyle(coul/long,PairCoulLong)
PairStyle(lj/cut/coul/long,PairLJCutCoulLong) PairStyle(lj/cut/coul/long,PairLJCutCoulLong)
PairStyle(lj/cut/coul/long/tip4p,PairLJCutCoulLongTIP4P) PairStyle(lj/cut/coul/long/tip4p,PairLJCutCoulLongTIP4P)
PairStyle(lj/cut/coul/long/tip4p2,PairLJCutCoulLongTIP4P2)
PairStyle(lj/charmm/coul/long,PairLJCharmmCoulLong) PairStyle(lj/charmm/coul/long,PairLJCharmmCoulLong)
#endif #endif

View File

@ -793,7 +793,7 @@ void Thermo::addfield(const char *key, FnPtr func, int typeflag)
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
add compute ID to list of Compute objects to call add compute ID to list of Compute objects to call
return index of where this Compute is in list return location of where this Compute is in list
if already in list, do not add, just return index, else add to list if already in list, do not add, just return index, else add to list
convert index into which param convert index into which param
index = 0 -> scalar, index >= 1 -> vector index = 0 -> scalar, index >= 1 -> vector

View File

@ -701,7 +701,7 @@ double Variable::evaluate(char *str, Tree *tree)
modify->compute[icompute]->init(); modify->compute[icompute]->init();
// call compute_scalar() if index = 0, else compute_vector() // call compute_scalar() if index = 0, else compute_vector()
// make pre-call to Compute object's pre-compute(s) if defined // if defined, first call Compute object's pre-compute(s)
int index = atoi(arg); int index = atoi(arg);
if (index == 0) { if (index == 0) {