Hi all,
This might be very specific question, but please see if you can answer this.
I am trying to compare and older version of lammps (21may08) I accessed “atom_vec_granular.cpp”
In the function
void AtomVecGranular::grow(int n)
{
if (n == 0) nmax += DELTA;
else nmax = n;
atom->nmax = nmax;
tag = atom->tag = (int )
memory->srealloc(atom->tag,nmaxsizeof(int),“atom:tag”);
type = atom->type = (int )
memory->srealloc(atom->type,nmaxsizeof(int),“atom:type”);
mask = atom->mask = (int )
memory->srealloc(atom->mask,nmaxsizeof(int),“atom:mask”);
image = atom->image = (int )
memory->srealloc(atom->image,nmaxsizeof(int),“atom:image”);
x = atom->x = memory->grow_2d_double_array(atom->x,nmax,3,“atom:x”);
v = atom->v = memory->grow_2d_double_array(atom->v,nmax,3,“atom:v”);
f = atom->f = memory->grow_2d_double_array(atom->f,nmax,3,“atom:f”);
radius = atom->radius = (double )
memory->srealloc(atom->radius,nmaxsizeof(double),“atom:radius”);
density = atom->density = (double )
memory->srealloc(atom->density,nmaxsizeof(double),“atom:density”);
rmass = atom->rmass = (double )
memory->srealloc(atom->rmass,nmaxsizeof(double),“atom:rmass”);
omega = atom->omega =
memory->grow_2d_double_array(atom->omega,nmax,3,“atom:omega”);
torque = atom->torque =
memory->grow_2d_double_array(atom->torque,nmax,3,“atom:torque”);
if (atom->nextra_grow)
for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
modify->fix[atom->extra_grow[iextra]]->grow_arrays(nmax);
}
One can access density information courtesy :
density = atom->density = (double )
memory->srealloc(atom->density,nmaxsizeof(double),“atom:density”);
Now I am using newest version of lammps which employs " atom type sphere" and accessed atom_vec_sphere.cpp
but I could not find a corresponding density line in the code, following is the code :
void AtomVecSphere::grow(int n)
{
if (n == 0) nmax += DELTA;
else nmax = n;
atom->nmax = nmax;
if (nmax < 0 || nmax > MAXSMALLINT)
error->one(FLERR,“Per-processor system is too big”);
tag = memory->grow(atom->tag,nmax,“atom:tag”);
type = memory->grow(atom->type,nmax,“atom:type”);
mask = memory->grow(atom->mask,nmax,“atom:mask”);
image = memory->grow(atom->image,nmax,“atom:image”);
x = memory->grow(atom->x,nmax,3,“atom:x”);
v = memory->grow(atom->v,nmax,3,“atom:v”);
f = memory->grow(atom->f,nmax*comm->nthreads,3,“atom:f”);
radius = memory->grow(atom->radius,nmax,“atom:radius”);
rmass = memory->grow(atom->rmass,nmax,“atom:rmass”);
omega = memory->grow(atom->omega,nmax,3,“atom:omega”);
torque = memory->grow(atom->torque,nmax*comm->nthreads,3,“atom:torque”);
if (atom->nextra_grow)
for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
modify->fix[atom->extra_grow[iextra]]->grow_arrays(nmax);
}
Am I missing something obvious ? How can I access density if I want to use in the newer lammps
Thanks for reading
Best wishes
Prashant