finalized dump command support for general triclinic

This commit is contained in:
Steve Plimpton
2023-11-20 12:06:58 -07:00
parent 92b02041cb
commit dfafdff209
11 changed files with 319 additions and 153 deletions

View File

@ -60,6 +60,7 @@ int main(int narg, char **arg)
bigint ntimestep, natoms;
int size_one, nchunk, triclinic;
double xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz;
double ax, ay, az, bx, by, bz, cx, cy, cz, abcx, abcy, abcz;
int boundary[3][2];
char boundstr[9];
@ -133,17 +134,39 @@ int main(int narg, char **arg)
fread(&natoms, sizeof(bigint), 1, fp);
fread(&triclinic, sizeof(int), 1, fp);
fread(&boundary[0][0], 6 * sizeof(int), 1, fp);
fread(&xlo, sizeof(double), 1, fp);
fread(&xhi, sizeof(double), 1, fp);
fread(&ylo, sizeof(double), 1, fp);
fread(&yhi, sizeof(double), 1, fp);
fread(&zlo, sizeof(double), 1, fp);
fread(&zhi, sizeof(double), 1, fp);
if (triclinic) {
if (triclinic == 0) {
fread(&xlo, sizeof(double), 1, fp);
fread(&xhi, sizeof(double), 1, fp);
fread(&ylo, sizeof(double), 1, fp);
fread(&yhi, sizeof(double), 1, fp);
fread(&zlo, sizeof(double), 1, fp);
fread(&zhi, sizeof(double), 1, fp);
} else if (triclinic == 1) {
fread(&xlo, sizeof(double), 1, fp);
fread(&xhi, sizeof(double), 1, fp);
fread(&ylo, sizeof(double), 1, fp);
fread(&yhi, sizeof(double), 1, fp);
fread(&zlo, sizeof(double), 1, fp);
fread(&zhi, sizeof(double), 1, fp);
fread(&xy, sizeof(double), 1, fp);
fread(&xz, sizeof(double), 1, fp);
fread(&yz, sizeof(double), 1, fp);
} else if (triclinic == 2) {
fread(&ax, sizeof(double), 1, fp);
fread(&ay, sizeof(double), 1, fp);
fread(&az, sizeof(double), 1, fp);
fread(&bx, sizeof(double), 1, fp);
fread(&by, sizeof(double), 1, fp);
fread(&bz, sizeof(double), 1, fp);
fread(&cx, sizeof(double), 1, fp);
fread(&cy, sizeof(double), 1, fp);
fread(&cz, sizeof(double), 1, fp);
fread(&abcx, sizeof(double), 1, fp);
fread(&abcy, sizeof(double), 1, fp);
fread(&abcz, sizeof(double), 1, fp);
}
fread(&size_one, sizeof(int), 1, fp);
if (magic_string && revision > 0x0001) {
@ -201,16 +224,21 @@ int main(int narg, char **arg)
}
boundstr[8] = '\0';
if (!triclinic) {
if (triclinic == 0) {
fprintf(fptxt, "ITEM: BOX BOUNDS %s\n", boundstr);
fprintf(fptxt, "%-1.16e %-1.16e\n", xlo, xhi);
fprintf(fptxt, "%-1.16e %-1.16e\n", ylo, yhi);
fprintf(fptxt, "%-1.16e %-1.16e\n", zlo, zhi);
} else {
} else if (triclinic == 1) {
fprintf(fptxt, "ITEM: BOX BOUNDS xy xz yz %s\n", boundstr);
fprintf(fptxt, "%-1.16e %-1.16e %-1.16e\n", xlo, xhi, xy);
fprintf(fptxt, "%-1.16e %-1.16e %-1.16e\n", ylo, yhi, xz);
fprintf(fptxt, "%-1.16e %-1.16e %-1.16e\n", zlo, zhi, yz);
} else if (triclinic == 2) {
fprintf(fptxt, "ITEM: BOX BOUNDS abc origin %s\n", boundstr);
fprintf(fptxt, "%-1.16e %-1.16e %-1.16e %-1.16e\n", ax, ay, az, abcx);
fprintf(fptxt, "%-1.16e %-1.16e %-1.16e %-1.16e\n", bx, by, bz, abcy);
fprintf(fptxt, "%-1.16e %-1.16e %-1.16e %-1.16e\n", cx, cy, cz, abcz);
}
if (columns)