Hello,

I wondered, how I can remove the charge q from the atom_vec_dipole.cpp and
.h, because I only need orienational degrees of freedom but no charge.

Is it ok to set
atom->q_flag = 0;

and to erase every:

q = atom->q = (double *)
memory->srealloc(atom->q,nmax*sizeof(double),"atom:q");
q = atom->q;

q[j] = q[i];

Then it should be fine to get rid of "buf[m++] = q[j];" in blocks like:

buf[m++] = x[j][0];
buf[m++] = x[j][1];
buf[m++] = x[j][2];
buf[m++] = tag[j];
buf[m++] = type[j];
buf[m++] = q[j];
buf[m++] = mu[j][0];
buf[m++] = mu[j][1];
buf[m++] = mu[j][2];

In the following block I would erase "buf[0] = q[i];" and change the end
to "return 3;":

int AtomVecDipole::pack_border_one(int i, double *buf)
{
buf[0] = q[i];
buf[1] = mu[i][0];
buf[2] = mu[i][1];
buf[3] = mu[i][2];
return 4;
}

atof(values[2]);" I would erase it, but I am unsure what I should do with
the

mu[nlocal][0] = atof(values[6]);
mu[nlocal][1] = atof(values[7]);
mu[nlocal][2] = atof(values[8]);

should bei change them to:

mu[nlocal][0] = atof(values[5]);
mu[nlocal][1] = atof(values[6]);
mu[nlocal][2] = atof(values[7]);

void AtomVecDipole::data_atom(double *coord, int imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

tag[nlocal] = atoi(values[0]);
if (tag[nlocal] <= 0)
error->one("Invalid atom ID in Atoms section of data file");

type[nlocal] = atoi(values[1]);
if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes)
error->one("Invalid atom type in Atoms section of data file");

q[nlocal] = atof(values[2]);

x[nlocal][0] = coord[0];
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];

mu[nlocal][0] = atof(values[6]);
mu[nlocal][1] = atof(values[7]);
mu[nlocal][2] = atof(values[8]);

image[nlocal] = imagetmp;

v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
omega[nlocal][0] = 0.0;
omega[nlocal][1] = 0.0;
omega[nlocal][2] = 0.0;

atom->nlocal++;
}