LARGE/LARGE OVERLAP

Dear All,

I have a problem in the data file. I checked in pair_colloid.cpp file.

Let me reproduce some pieces:

void PairColloid::compute(int eflag, int vflag)

// loop over neighbors of my atoms

for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];

for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;

delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];

rsq = delxdelx + delydely + delz*delz;
jtype = type[j];

My question is: what are i and j variables (i=ilist[ii]; j=jlist[jj])? also inum and jnum?

May be answer is here, but I can not follow.

inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;

In this part, it is mentioned if rsq <= diameter of monodisperse particles K[0], then I should get
the error message LARGE/LARGE overlap for colloidal particles. But in my case, I am getting
the error message even though rsq> diameter.

My another question is: when the following method is executed?

double PairColloid::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_lj,
double &fforce)

Thanks for any help,

Bandy

Dear All,

I have a problem in the data file. I checked in pair_colloid.cpp file.

Let me reproduce some pieces:

void PairColloid::compute(int eflag, int vflag)

// loop over neighbors of my atoms

for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];

for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;

delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];

rsq = delxdelx + delydely + delz*delz;
jtype = type[j];

My question is: what are i and j variables (i=ilist[ii]; j=jlist[jj])? also inum and jnum?

May be answer is here, but I can not follow.

inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;

In this part, it is mentioned if rsq <= diameter of monodisperse particles K[0], then I should get
the error message LARGE/LARGE overlap for colloidal particles. But in my case, I am getting
the error message even though rsq> diameter.

My another question is: when the following method is executed?

double PairColloid::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_lj,
double &fforce)

Thanks for any help,

Bandy

Dear All,

I have a problem in the data file. I checked in pair_colloid.cpp file.

Let me reproduce some pieces:

void PairColloid::compute(int eflag, int vflag)

     // loop over neighbors of my atoms

  for (ii = 0; ii < inum; ii++) {
    i = ilist[ii];
    xtmp = x[i][0];
    ytmp = x[i][1];
    ztmp = x[i][2];
    itype = type[i];
    jlist = firstneigh[i];
    jnum = numneigh[i];

    for (jj = 0; jj < jnum; jj++) {
      j = jlist[jj];
      factor_lj = special_lj[sbmask(j)];
      j &= NEIGHMASK;

      delx = xtmp - x[j][0];
      dely = ytmp - x[j][1];
      delz = ztmp - x[j][2];
      rsq = delx*delx + dely*dely + delz*delz;
      jtype = type[j];

My question is: what are i and j variables (i=ilist[ii]; j=jlist[jj])? also
inum and jnum?

this is how you access the neighbor list.

"list" is the neighbor list data structure.
list->inum is the number of entries for the outer loop (this may be
different from the number of local atoms).
list->ilist[] is the list of indices i for the outer loop
list->numneigh[] are the number of neighbors of atom i, jnum
list->firstneigh[] is the list of pointers to the individual list of
neighbors of atom i, jlist[]
thus they define the inner loop. those indices j also include bits to
encode whether they are 1-2, 1-3 or 1-4 neighbors (hence the
sbmask()/NEIGHMASK operations).

May be answer is here, but I can not follow.
inum = list->inum;
  ilist = list->ilist;
  numneigh = list->numneigh;
  firstneigh = list->firstneigh;

In this part, it is mentioned if rsq <= diameter of monodisperse particles
K[0], then I should get
the error message LARGE/LARGE overlap for colloidal particles. But in my
case, I am getting
the error message even though rsq> diameter.

for LARGE/LARGE i see:

        if (r <= K[1])
          error->one(FLERR,"Overlapping large/large in pair colloid");

which is r <= diameter[i]+diameter[j]

My another question is: when the following method is executed?

double PairColloid::single(int i, int j, int itype, int jtype, double rsq,
                           double factor_coul, double factor_lj,
                           double &fforce)

whenever force/energy for specific pairs need to be computed, not the
whole neighborlist, e.g. in compute group/group or in fix gcmc and
similar cases.

axel.