Fix wrong group name output in fix ave/chunk

This commit is contained in:
Richard Berger
2021-02-25 15:34:29 -05:00
parent 977ba9ff66
commit 3d96d0a674
5 changed files with 12 additions and 11 deletions

View File

@ -1,4 +1,4 @@
# Chunk-averaged data for fix 5 and group file # Chunk-averaged data for fix 5 and group all
# Timestep Number-of-chunks Total-count # Timestep Number-of-chunks Total-count
# Chunk Coord1 Ncount vx # Chunk Coord1 Ncount vx
6000 20 800 6000 20 800

View File

@ -1,4 +1,4 @@
# Chunk-averaged data for fix 4 and group file # Chunk-averaged data for fix 4 and group all
# Timestep Number-of-chunks Total-count # Timestep Number-of-chunks Total-count
# Chunk Coord1 Ncount vx # Chunk Coord1 Ncount vx
10000 20 800 10000 20 800

View File

@ -1,4 +1,4 @@
# Chunk-averaged data for fix 4 and group file # Chunk-averaged data for fix 4 and group all
# Timestep Number-of-chunks Total-count # Timestep Number-of-chunks Total-count
# Chunk Coord1 Ncount vx # Chunk Coord1 Ncount vx
10000 20 1020 10000 20 1020

View File

@ -15,6 +15,7 @@
#include "arg_info.h" #include "arg_info.h"
#include "atom.h" #include "atom.h"
#include "comm.h"
#include "compute.h" #include "compute.h"
#include "compute_chunk_atom.h" #include "compute_chunk_atom.h"
#include "domain.h" #include "domain.h"
@ -52,8 +53,6 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) :
{ {
if (narg < 7) error->all(FLERR,"Illegal fix ave/chunk command"); if (narg < 7) error->all(FLERR,"Illegal fix ave/chunk command");
MPI_Comm_rank(world,&me);
nevery = utils::inumeric(FLERR,arg[3],false,lmp); nevery = utils::inumeric(FLERR,arg[3],false,lmp);
nrepeat = utils::inumeric(FLERR,arg[4],false,lmp); nrepeat = utils::inumeric(FLERR,arg[4],false,lmp);
nfreq = utils::inumeric(FLERR,arg[5],false,lmp); nfreq = utils::inumeric(FLERR,arg[5],false,lmp);
@ -65,6 +64,8 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) :
global_freq = nfreq; global_freq = nfreq;
no_change_box = 1; no_change_box = 1;
char * group = arg[1];
// expand args if any have wildcard character "*" // expand args if any have wildcard character "*"
int expand = 0; int expand = 0;
@ -206,7 +207,7 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) :
} else if (strcmp(arg[iarg],"file") == 0) { } else if (strcmp(arg[iarg],"file") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command");
if (me == 0) { if (comm->me == 0) {
fp = fopen(arg[iarg+1],"w"); fp = fopen(arg[iarg+1],"w");
if (fp == nullptr) if (fp == nullptr)
error->one(FLERR,fmt::format("Cannot open fix ave/chunk file {}: {}", error->one(FLERR,fmt::format("Cannot open fix ave/chunk file {}: {}",
@ -328,11 +329,11 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) :
// print file comment lines // print file comment lines
if (fp && me == 0) { if (fp && comm->me == 0) {
clearerr(fp); clearerr(fp);
if (title1) fprintf(fp,"%s\n",title1); if (title1) fprintf(fp,"%s\n",title1);
else fprintf(fp,"# Chunk-averaged data for fix %s and group %s\n", else fprintf(fp,"# Chunk-averaged data for fix %s and group %s\n",
id,arg[1]); id, group);
if (title2) fprintf(fp,"%s\n",title2); if (title2) fprintf(fp,"%s\n",title2);
else fprintf(fp,"# Timestep Number-of-chunks Total-count\n"); else fprintf(fp,"# Timestep Number-of-chunks Total-count\n");
if (title3) fprintf(fp,"%s\n",title3); if (title3) fprintf(fp,"%s\n",title3);
@ -423,7 +424,7 @@ FixAveChunk::~FixAveChunk()
delete [] ids; delete [] ids;
delete [] value2index; delete [] value2index;
if (fp && me == 0) fclose(fp); if (fp && comm->me == 0) fclose(fp);
memory->destroy(varatom); memory->destroy(varatom);
memory->destroy(count_one); memory->destroy(count_one);
@ -949,7 +950,7 @@ void FixAveChunk::end_of_step()
// output result to file // output result to file
if (fp && me == 0) { if (fp && comm->me == 0) {
clearerr(fp); clearerr(fp);
if (overwrite) fseek(fp,filepos,SEEK_SET); if (overwrite) fseek(fp,filepos,SEEK_SET);
double count = 0.0; double count = 0.0;

View File

@ -36,7 +36,7 @@ class FixAveChunk : public Fix {
double memory_usage(); double memory_usage();
private: private:
int me,nvalues; int nvalues;
int nrepeat,nfreq,irepeat; int nrepeat,nfreq,irepeat;
int normflag,scaleflag,overwrite,biasflag,colextra; int normflag,scaleflag,overwrite,biasflag,colextra;
bigint nvalid,nvalid_last; bigint nvalid,nvalid_last;