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

This commit is contained in:
sjplimp
2011-04-15 22:57:52 +00:00
parent ff0cac6cc6
commit e2d5478a6c
8 changed files with 112 additions and 84 deletions

View File

@ -71,14 +71,22 @@ All of the styles define point particles, except the {sphere},
particles. particles.
For the {sphere} style, the particles are spheres and each stores a For the {sphere} style, the particles are spheres and each stores a
per-particle diameter and mass. For the {ellipsoid} style, the per-particle diameter and mass. If the diameter > 0.0, the particle
particles are ellipsoids and each stores a per-particle shape vector is a finite-size sphere. If the diameter = 0.0, it is a point
with the 3 diamters of the ellipsoid. For the {electron} style, the particle.
particles representing electrons are 3d Gaussians with a specified
position and bandwidth or uncertainty in position, which is For the {ellipsoid} style, the particles are ellipsoids and each
represented by the eradius = electron size. For the {peri} style, the stores a flag which indicates whether it is a finite-size ellipsoid or
particles are spherical and each stores a per-particle mass and a point particle. If it is an ellipsoid, it also stores a shape
volume. vector with the 3 diamters of the ellipsoid and a quaternion 4-vector
with its orientation.
For the {electron} style, the particles representing electrons are 3d
Gaussians with a specified position and bandwidth or uncertainty in
position, which is represented by the eradius = electron size.
For the {peri} style, the particles are spherical and each stores a
per-particle mass and volume.
:line :line

View File

@ -139,7 +139,7 @@ to change these values.
charge = 0.0 charge = 0.0
dipole moment magnitude = 0.0 dipole moment magnitude = 0.0
diameter = 1.0 diameter = 1.0
shape = 1.0 1.0 1.0 shape = 0.0 0.0 0.0
density = 1.0 density = 1.0
volume = 1.0 volume = 1.0
velocity = 0.0 0.0 0.0 velocity = 0.0 0.0 0.0
@ -148,11 +148,19 @@ angular momentum = 0.0 0.0 0.0
quaternion = (1,0,0,0) quaternion = (1,0,0,0)
bonds, angles, dihedrals, impropers = none :ul bonds, angles, dihedrals, impropers = none :ul
Note that this means the {sphere} and {ellipsoid} atom styles set the Note that the {sphere} atom style sets the default particle diameter
diameter/shape and density to 1.0 and thus calculates a mass for the to 1.0 as well as the density. This means the mass for the particle
particle, which is PI/6 * diameter^3 = 0.5236. The {peri} style sets is not 1.0, but is PI/6 * diameter^3 = 0.5236.
the volume and density to 1.0 and thus also set the mass for the
particle to 1.0. Note that the {ellipsoid} atom style sets the default particle shape
to (0.0 0.0 0.0) and the density to 1.0 which means it is a point
particle, not an ellipsoid, and has a mass of 1.0.
Note that the {peri} style sets the default volume and density to 1.0
and thus also set the mass for the particle to 1.0.
The "set"_set.html command can be used to override many of these
default settings.
[Restrictions:] [Restrictions:]

View File

@ -41,9 +41,7 @@ args = list of arguments for a particular style :l
vx, vy, vz, fx, fy, fz, vx, vy, vz, fx, fy, fz,
q, mux, muy, muz, mu, q, mux, muy, muz, mu,
radius, omegax, omegay, omegaz, radius, omegax, omegay, omegaz,
angmomx, angmomy, angmomz, angmomx, angmomy, angmomz, tqx, tqy, tqz,
shapex,shapey, shapez,
quatw, quati, quatj, quatk, tqx, tqy, tqz,
spin, eradius, ervel, erforce, spin, eradius, ervel, erforce,
c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :pre c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :pre
@ -63,8 +61,6 @@ args = list of arguments for a particular style :l
radius = radius of spherical particle radius = radius of spherical particle
omegax,omegay,omegaz = angular velocity of extended particle omegax,omegay,omegaz = angular velocity of extended particle
angmomx,angmomy,angmomz = angular momentum of extended particle angmomx,angmomy,angmomz = angular momentum of extended particle
shapex,shapey,shapez = 3 diameters of ellipsoidal particle
quatw,quati,quatj,quatk = quaternion components for aspherical particles
tqx,tqy,tqz = torque on extended particles tqx,tqy,tqz = torque on extended particles
spin = electron spin spin = electron spin
eradius = electron radius eradius = electron radius
@ -415,15 +411,6 @@ The {angmomx}, {angmomy}, and {angmomz} attributes are specific to
extended aspherical particles that have an angular momentum. Only extended aspherical particles that have an angular momentum. Only
the {ellipsoid} atom style defines this quantity. the {ellipsoid} atom style defines this quantity.
The {shapex}, {shapey}, and {shapez} attributes are specific to
extended ellipsoidal particles that have a finite size and shape, such
those defined with an atom style of {ellipsoidal}.
The {quatw}, {quati}, {quatj}, {quatk} attributes are for aspherical
particles defined with an atom style of {ellipsoid}. They are the
components of the quaternion that defines the orientation of the
particle.
The {tqx}, {tqy}, {tqz} attributes are for extended spherical or The {tqx}, {tqy}, {tqz} attributes are for extended spherical or
aspherical particles that can sustain a rotational torque due aspherical particles that can sustain a rotational torque due
to interactions with other particles. to interactions with other particles.

View File

@ -21,8 +21,7 @@ input = one or more atom attributes :l
vx, vy, vz, fx, fy, fz, vx, vy, vz, fx, fy, fz,
q, mux, muy, muz, q, mux, muy, muz,
radius, omegax, omegay, omegaz, radius, omegax, omegay, omegaz,
angmomx, angmomy, angmomz, angmomx, angmomy, angmomz, tqx, tqy, tqz
quatw, quati, quatj, quatk, tqx, tqy, tqz
c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :pre c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :pre
id = atom ID id = atom ID
@ -40,7 +39,6 @@ input = one or more atom attributes :l
radius = radius of extended spherical particle radius = radius of extended spherical particle
omegax,omegay,omegaz = angular velocity of extended particle omegax,omegay,omegaz = angular velocity of extended particle
angmomx,angmomy,angmomz = angular momentum of extended particle angmomx,angmomy,angmomz = angular momentum of extended particle
quatw,quati,quatj,quatk = quaternion components for aspherical particles
tqx,tqy,tqz = torque on extended particles tqx,tqy,tqz = torque on extended particles
c_ID = per-atom vector calculated by a compute with ID c_ID = per-atom vector calculated by a compute with ID
c_ID\[I\] = Ith column of per-atom array calculated by a compute with ID c_ID\[I\] = Ith column of per-atom array calculated by a compute with ID

View File

@ -136,23 +136,25 @@ many processors are being used.
Keyword {quat} uses the specified values to create a quaternion Keyword {quat} uses the specified values to create a quaternion
(4-vector) that represents the orientation of the selected atoms. (4-vector) that represents the orientation of the selected atoms.
Note that particles defined by "atom_style ellipsoid"_atom_style.html Note that particles defined by "atom_style ellipsoid"_atom_style.html
have 3 shape paraeters whicha are used to specify the aspect ratios of have 3 shape parameters. The 3 values must be non-zero for each
an ellipsoidal particle, which is oriented by default with its x-axis particle set by this command. They are used to specify the aspect
along the simulation box's x-axis, and similarly for y and z. If this ratios of an ellipsoidal particle, which is oriented by default with
body is rotated (via the right-hand rule) by an angle theta around a its x-axis along the simulation box's x-axis, and similarly for y and
unit rotation vector (a,b,c), then the quaternion that represents its z. If this body is rotated (via the right-hand rule) by an angle
new orientation is given by (cos(theta/2), a*sin(theta/2), theta around a unit rotation vector (a,b,c), then the quaternion that
b*sin(theta/2), c*sin(theta/2)). The theta and a,b,c values are the represents its new orientation is given by (cos(theta/2),
arguments to the {quat} keyword. LAMMPS normalizes the quaternion in a*sin(theta/2), b*sin(theta/2), c*sin(theta/2)). The theta and a,b,c
case (a,b,c) was not specified as a unit vector. For 2d systems, the values are the arguments to the {quat} keyword. LAMMPS normalizes the
a,b,c values are ignored, since a rotation vector of (0,0,1) is the quaternion in case (a,b,c) was not specified as a unit vector. For 2d
only valid choice. systems, the a,b,c values are ignored, since a rotation vector of
(0,0,1) is the only valid choice.
Keyword {quat/random} randomizes the orientation of the quaternion of Keyword {quat/random} randomizes the orientation of the quaternion of
the selected atoms. Random numbers are used in such a way that the the selected atoms. Random numbers are used in such a way that the
orientation of a particular atom is the same, regardless of how many orientation of a particular atom is the same, regardless of how many
processors are being used. For 2d systems, only orientations in the processors are being used. For 2d systems, only orientations in the
xy plane are generated. xy plane are generated. As with keyword {quat}, the 3 shape values
must be non-zero for each particle set by this command.
Keyword {diameter} sets the size of the selected atoms. The particles Keyword {diameter} sets the size of the selected atoms. The particles
must be finite-size spheres as defined by the "atom_style must be finite-size spheres as defined by the "atom_style
@ -167,13 +169,13 @@ particles must be aspherical ellipsoids as defined by the "atom_style
ellipsoid"_atom_style.html command. The {Sx}, {Sy}, {Sz} settings are ellipsoid"_atom_style.html command. The {Sx}, {Sy}, {Sz} settings are
the 3 diameters of the ellipsoid in each direction. All 3 can be set the 3 diameters of the ellipsoid in each direction. All 3 can be set
to the same value, which means the ellipsoid is effectively a sphere. to the same value, which means the ellipsoid is effectively a sphere.
Or then can all be set to 0.0 which means the particle will be treated They can also all be set to 0.0 which means the particle will be
as a point particle. Note that this command does not adjust the treated as a point particle. Note that this command does not adjust
particle mass, even if it was defined with a density, e.g. via the the particle mass, even if it was defined with a density, e.g. via the
"read_data"_read_data.html command. "read_data"_read_data.html command.
Keyword {mas} sets the mass of all selected particles. The Keyword {mass} sets the mass of all selected particles. The particles
particles must have a per-atom mass attribute, as defined by the must have a per-atom mass attribute, as defined by the
"atom_style"_atom_style.html command. See the "mass" command for how "atom_style"_atom_style.html command. See the "mass" command for how
to set mass values on a per-type basis. to set mass values on a per-type basis.
@ -184,7 +186,7 @@ to set mass values on a per-type basis. If the atom has a radius
attribute (see "atom_style sphere"_atom_style.html) and its radius is attribute (see "atom_style sphere"_atom_style.html) and its radius is
non-zero, its mass is set from the density and particle volume. The non-zero, its mass is set from the density and particle volume. The
same is true if the atom has a shape attribute (see "atom_style same is true if the atom has a shape attribute (see "atom_style
ellipsoid"_atom_style.html) and its shape parameters are non-zero. ellipsoid"_atom_style.html) and its 3 shape parameters are non-zero.
Otherwise the mass is set to the density value directly. Otherwise the mass is set to the density value directly.
Keyword {volume} sets the volume of all selected particles. Keyword {volume} sets the volume of all selected particles.

View File

@ -10,12 +10,11 @@ create_box 2 box
create_atoms 1 box create_atoms 1 box
set group all type/fraction 2 0.1 95392 set group all type/fraction 2 0.1 95392
set group all quat/random 18238
set type 1 mass 1.0 set type 1 mass 1.0
set type 2 mass 1.5 set type 2 mass 1.5
set type 1 shape 1 1 1 set type 1 shape 1 1 1
set type 2 shape 3 1 1 set type 2 shape 3 1 1
set group all quat/random 18238
compute rot all temp/asphere compute rot all temp/asphere
group spheroid type 1 group spheroid type 1
@ -41,11 +40,13 @@ thermo 100
timestep 0.002 timestep 0.002
compute q all property/atom quatw quati quatj quatk
dump 1 all custom 100 dump.ellipse.gayberne & dump 1 all custom 100 dump.ellipse.gayberne &
id type x y z quatw quati quatj quatk id type x y z c_q[1] c_q[2] c_q[3] c_q[4]
#dump 1 all custom 100 dump.ellipse.resquared & #dump 1 all custom 100 dump.ellipse.resquared &
# id type x y z quatw quati quatj quatk # id type x y z c_q[1] c_q[2] c_q[3] c_q[4]
fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 & fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 &
mtk no pchain 0 tchain 1 mtk no pchain 0 tchain 1

View File

@ -10,12 +10,11 @@ create_box 2 box
create_atoms 1 box create_atoms 1 box
set group all type/fraction 2 0.1 95392 set group all type/fraction 2 0.1 95392
set group all quat/random 18238
set type 1 mass 1.0 set type 1 mass 1.0
set type 2 mass 1.5 set type 2 mass 1.5
set type 1 shape 1 1 1 set type 1 shape 1 1 1
set type 2 shape 3 1 1 set type 2 shape 3 1 1
set group all quat/random 18238
compute rot all temp/asphere compute rot all temp/asphere
group spheroid type 1 group spheroid type 1
@ -41,11 +40,13 @@ thermo 100
timestep 0.002 timestep 0.002
compute q all property/atom quatw quati quatj quatk
#dump 1 all custom 100 dump.ellipse.gayberne & #dump 1 all custom 100 dump.ellipse.gayberne &
# id type x y z quatw quati quatj quatk # id type x y z c_q[1] c_q[2] c_q[3] c_q[4]
dump 1 all custom 100 dump.ellipse.resquared & dump 1 all custom 100 dump.ellipse.resquared &
id type x y z quatw quati quatj quatk id type x y z c_q[1] c_q[2] c_q[3] c_q[4]
fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 & fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 &
mtk no pchain 0 tchain 1 mtk no pchain 0 tchain 1

View File

@ -92,6 +92,7 @@ class Data {
int style_hybrid,style_molecular,style_peri,style_sphere; int style_hybrid,style_molecular,style_peri,style_sphere;
bigint natoms; bigint natoms;
bigint nellipsoids;
bigint nbonds,nangles,ndihedrals,nimpropers; bigint nbonds,nangles,ndihedrals,nimpropers;
int ntypes,nbondtypes,nangletypes,ndihedraltypes,nimpropertypes; int ntypes,nbondtypes,nangletypes,ndihedraltypes,nimpropertypes;
int bond_per_atom,angle_per_atom,dihedral_per_atom,improper_per_atom; int bond_per_atom,angle_per_atom,dihedral_per_atom,improper_per_atom;
@ -202,6 +203,7 @@ class Data {
double *s0,*x0x,*x0y,*x0z; double *s0,*x0x,*x0y,*x0z;
double *shapex,*shapey,*shapez; double *shapex,*shapey,*shapez;
double *quatw,*quati,*quatj,*quatk,*angmomx,*angmomy,*angmomz; double *quatw,*quati,*quatj,*quatk,*angmomx,*angmomy,*angmomz;
int *ellipsoid;
int *bond_type,*angle_type,*dihedral_type,*improper_type; int *bond_type,*angle_type,*dihedral_type,*improper_type;
int *bond_atom1,*bond_atom2; int *bond_atom1,*bond_atom2;
int *angle_atom1,*angle_atom2,*angle_atom3; int *angle_atom1,*angle_atom2,*angle_atom3;
@ -916,22 +918,25 @@ int atom_ellipsoid(double *buf, Data &data, int iatoms)
data.vy[iatoms] = buf[m++]; data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++]; data.vz[iatoms] = buf[m++];
data.rmass[iatoms] = buf[m++];
data.angmomx[iatoms] = buf[m++];
data.angmomy[iatoms] = buf[m++];
data.angmomz[iatoms] = buf[m++];
data.ellipsoid[iatoms] = static_cast<int> (buf[m++]);
if (data.ellipsoid[iatoms]) {
data.nellipsoids++;
data.shapex[iatoms] = buf[m++]; data.shapex[iatoms] = buf[m++];
data.shapey[iatoms] = buf[m++]; data.shapey[iatoms] = buf[m++];
data.shapez[iatoms] = buf[m++]; data.shapez[iatoms] = buf[m++];
data.rmass[iatoms] = buf[m++];
if (data.shapex[iatoms] == 0.0) data.density[iatoms] = data.rmass[iatoms];
else
data.density[iatoms] = data.rmass[iatoms] /
(4.0*PI/3.0 *
data.shapex[iatoms]*data.shapey[iatoms]*data.shapez[iatoms]);
data.quatw[iatoms] = buf[m++]; data.quatw[iatoms] = buf[m++];
data.quati[iatoms] = buf[m++]; data.quati[iatoms] = buf[m++];
data.quatj[iatoms] = buf[m++]; data.quatj[iatoms] = buf[m++];
data.quatk[iatoms] = buf[m++]; data.quatk[iatoms] = buf[m++];
data.angmomx[iatoms] = buf[m++]; data.density[iatoms] = data.rmass[iatoms] /
data.angmomy[iatoms] = buf[m++]; (4.0*PI/3.0 *
data.angmomz[iatoms] = buf[m++]; data.shapex[iatoms]*data.shapey[iatoms]*data.shapez[iatoms]);
} else data.density[iatoms] = data.rmass[iatoms];
return m; return m;
} }
@ -1218,18 +1223,19 @@ void allocate_full(Data &data)
void allocate_ellipsoid(Data &data) void allocate_ellipsoid(Data &data)
{ {
data.shapex = new double[data.natoms];
data.shapey = new double[data.natoms];
data.shapez = new double[data.natoms];
data.rmass = new double[data.natoms]; data.rmass = new double[data.natoms];
data.density = new double[data.natoms]; data.density = new double[data.natoms];
data.quatw = new double[data.natoms];
data.quati = new double[data.natoms];
data.quatj = new double[data.natoms];
data.quatk = new double[data.natoms];
data.angmomx = new double[data.natoms]; data.angmomx = new double[data.natoms];
data.angmomy = new double[data.natoms]; data.angmomy = new double[data.natoms];
data.angmomz = new double[data.natoms]; data.angmomz = new double[data.natoms];
data.ellipsoid = new int[data.natoms];
data.quatw = new double[data.natoms];
data.shapex = new double[data.natoms];
data.shapey = new double[data.natoms];
data.shapez = new double[data.natoms];
data.quati = new double[data.natoms];
data.quatj = new double[data.natoms];
data.quatk = new double[data.natoms];
} }
void allocate_sphere(Data &data) void allocate_sphere(Data &data)
@ -2625,7 +2631,10 @@ void improper(FILE *fp, Data &data)
// initialize Data // initialize Data
// --------------------------------------------------------------------- // ---------------------------------------------------------------------
Data::Data() {} Data::Data()
{
nellipsoids = 0;
}
// --------------------------------------------------------------------- // ---------------------------------------------------------------------
// print out stats on problem // print out stats on problem
@ -2639,6 +2648,9 @@ void Data::stats()
printf(" Ntimestep = " BIGINT_FORMAT "\n",ntimestep); printf(" Ntimestep = " BIGINT_FORMAT "\n",ntimestep);
printf(" Nprocs = %d\n",nprocs); printf(" Nprocs = %d\n",nprocs);
printf(" Natoms = " BIGINT_FORMAT "\n",natoms); printf(" Natoms = " BIGINT_FORMAT "\n",natoms);
if (nellipsoids) printf(" Nellipsoids = " BIGINT_FORMAT "\n",nellipsoids);
printf(" Nbonds = " BIGINT_FORMAT "\n",nbonds); printf(" Nbonds = " BIGINT_FORMAT "\n",nbonds);
printf(" Nangles = " BIGINT_FORMAT "\n",nangles); printf(" Nangles = " BIGINT_FORMAT "\n",nangles);
printf(" Ndihedrals = " BIGINT_FORMAT "\n",ndihedrals); printf(" Ndihedrals = " BIGINT_FORMAT "\n",ndihedrals);
@ -2651,6 +2663,7 @@ void Data::stats()
printf(" Angle style = %s\n",angle_style); printf(" Angle style = %s\n",angle_style);
printf(" Dihedral style = %s\n",dihedral_style); printf(" Dihedral style = %s\n",dihedral_style);
printf(" Improper style = %s\n",improper_style); printf(" Improper style = %s\n",improper_style);
printf(" Xlo xhi = %g %g\n",xlo,xhi); printf(" Xlo xhi = %g %g\n",xlo,xhi);
printf(" Ylo yhi = %g %g\n",ylo,yhi); printf(" Ylo yhi = %g %g\n",ylo,yhi);
printf(" Zlo zhi = %g %g\n",zlo,zhi); printf(" Zlo zhi = %g %g\n",zlo,zhi);
@ -2670,6 +2683,7 @@ void Data::write(FILE *fp, FILE *fp2)
BIGINT_FORMAT ", procs = %d\n\n",ntimestep,nprocs); BIGINT_FORMAT ", procs = %d\n\n",ntimestep,nprocs);
fprintf(fp,BIGINT_FORMAT " atoms\n",natoms); fprintf(fp,BIGINT_FORMAT " atoms\n",natoms);
if (nellipsoids) fprintf(fp,BIGINT_FORMAT " ellipsoids\n",nellipsoids);
if (nbonds) fprintf(fp,BIGINT_FORMAT " bonds\n",nbonds); if (nbonds) fprintf(fp,BIGINT_FORMAT " bonds\n",nbonds);
if (nangles) fprintf(fp,BIGINT_FORMAT " angles\n",nangles); if (nangles) fprintf(fp,BIGINT_FORMAT " angles\n",nangles);
if (ndihedrals) fprintf(fp,BIGINT_FORMAT " dihedrals\n",ndihedrals); if (ndihedrals) fprintf(fp,BIGINT_FORMAT " dihedrals\n",ndihedrals);
@ -3240,6 +3254,17 @@ void Data::write(FILE *fp, FILE *fp2)
} }
} }
if (nellipsoids) {
fprintf(fp,"\nEllipsoids\n\n");
for (uint64_t i = 0; i < natoms; i++) {
if (ellipsoid[i])
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e "
"%-1.16e %-1.16e %-1.16e %-1.16e \n",
tag[i],2.0*shapex[i],2.0*shapey[i],2.0*shapez[i],
quatw[i],quati[i],quatj[i],quatk[i]);
}
}
if (nbonds) { if (nbonds) {
fprintf(fp,"\nBonds\n\n"); fprintf(fp,"\nBonds\n\n");
for (uint64_t i = 0; i < nbonds; i++) for (uint64_t i = 0; i < nbonds; i++)
@ -3302,16 +3327,16 @@ void Data::write_atom_charge(FILE *fp, int i, int ix, int iy, int iz)
void Data::write_atom_dipole(FILE *fp, int i, int ix, int iy, int iz) void Data::write_atom_dipole(FILE *fp, int i, int ix, int iy, int iz)
{ {
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d", fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e "
"%-1.16e %-1.16e %d %d %d",
tag[i],type[i],q[i],x[i],y[i],z[i], tag[i],type[i],q[i],x[i],y[i],z[i],
mux[i],muy[i],muz[i],ix,iy,iz); mux[i],muy[i],muz[i],ix,iy,iz);
} }
void Data::write_atom_ellipsoid(FILE *fp, int i, int ix, int iy, int iz) void Data::write_atom_ellipsoid(FILE *fp, int i, int ix, int iy, int iz)
{ {
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d", fprintf(fp,"%d %d %d %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],type[i],shapex[i],shapey[i],shapez[i],density[i], tag[i],type[i],ellipsoid[i],density[i],x[i],y[i],z[i],ix,iy,iz);
x[i],y[i],z[i],quatw[i],quati[i],quatj[i],quatk[i],ix,iy,iz);
} }
void Data::write_atom_full(FILE *fp, int i, int ix, int iy, int iz) void Data::write_atom_full(FILE *fp, int i, int ix, int iy, int iz)
@ -3367,9 +3392,7 @@ void Data::write_atom_dipole_extra(FILE *fp, int i)
void Data::write_atom_ellipsoid_extra(FILE *fp, int i) void Data::write_atom_ellipsoid_extra(FILE *fp, int i)
{ {
fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e", fprintf(fp," %d %-1.16e",ellipsoid[i],density[i]);
shapex[i],shapey[i],shapez[i],density[i],
quatw[i],quati[i],quatj[i],quatk[i]);
} }
void Data::write_atom_full_extra(FILE *fp, int i) void Data::write_atom_full_extra(FILE *fp, int i)