Commit 083d7a0b authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4797 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent b66411a5
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -225,12 +225,10 @@ void DumpXTC::pack(int *ids)
	int iz = (image[i] >> 20) - 512;
	
	if (domain->triclinic) {
	  buf[m++] = tag[i];
	  buf[m++] = sfactor * (x[i][0] + ix * xprd + iy * xy + iz * xz);
	  buf[m++] = sfactor * (x[i][1] + iy * yprd + iz * yz);
	  buf[m++] = sfactor * (x[i][2] + iz * zprd);
	} else {
	  buf[m++] = tag[i];
	  buf[m++] = sfactor * (x[i][0] + ix * xprd);
	  buf[m++] = sfactor * (x[i][1] + iy * yprd);
	  buf[m++] = sfactor * (x[i][2] + iz * zprd);
@@ -241,7 +239,6 @@ void DumpXTC::pack(int *ids)
  } else {
    for (int i = 0; i < nlocal; i++)
      if (mask[i] & groupbit) {
	buf[m++] = tag[i];
	buf[m++] = sfactor*x[i][0];
	buf[m++] = sfactor*x[i][1];
	buf[m++] = sfactor*x[i][2];
+23 −14
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ Dump::Dump(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)

  maxbuf = maxsort = maxproc = 0;
  buf = bufsort = NULL;
  idsort = index = proclist = NULL;
  ids = idsort = index = proclist = NULL;
  irregular = NULL;

  // parse filename for special syntax
@@ -123,6 +123,7 @@ Dump::~Dump()

  memory->sfree(buf);
  memory->sfree(bufsort);
  memory->sfree(ids);
  memory->sfree(idsort);
  memory->sfree(index);
  memory->sfree(proclist);
@@ -148,16 +149,16 @@ void Dump::init()
  init_style();

  if (!sort_flag) {
    memory->sfree(buf);
    memory->sfree(bufsort);
    memory->sfree(ids);
    memory->sfree(idsort);
    memory->sfree(index);
    memory->sfree(proclist);
    delete irregular;

    maxbuf = maxsort = maxproc = 0;
    buf = bufsort = NULL;
    idsort = index = proclist = NULL;
    maxsort = maxproc = 0;
    bufsort = NULL;
    ids = idsort = index = proclist = NULL;
    irregular = NULL;
  }

@@ -252,7 +253,7 @@ void Dump::write()
    if (me == 0) {
      for (int iproc = 0; iproc < nprocs; iproc++) {
	if (iproc) {
	  MPI_Irecv(buf,maxbuf,MPI_DOUBLE,iproc,0,world,&request);
	  MPI_Irecv(buf,maxbuf*size_one,MPI_DOUBLE,iproc,0,world,&request);
	  MPI_Send(&tmp,0,MPI_INT,iproc,0,world);
	  MPI_Wait(&request,&status);
	  MPI_Get_count(&status,MPI_DOUBLE,&nlines);
@@ -455,11 +456,19 @@ void Dump::sort()

  // copy data from bufsort to buf using index

  if (nme > maxbuf) {
    maxbuf = nme;
  int nmax;
  if (multiproc) nmax = nme;
  else MPI_Allreduce(&nme,&nmax,1,MPI_INT,MPI_MAX,world);

  if (nmax > maxbuf) {
    maxbuf = nmax;
    memory->sfree(buf);
    buf = (double *) 
      memory->smalloc(maxbuf*size_one*sizeof(double),"dump:buf");
    if (sortcol == 0) {
      memory->sfree(ids);
      ids = (int *) memory->smalloc(maxbuf*sizeof(int),"dump:ids");
    }
  }
    
  int nbytes = size_one*sizeof(double);
@@ -468,9 +477,9 @@ void Dump::sort()
}

/* ----------------------------------------------------------------------
   compare two atom IDs in sort data structure
   called via qsort_r in sort() method
   is a static method so access sort data structure via ptr
   compare two atom IDs
   called via qsort() in sort() method
   is a static method so access data via dumpptr
------------------------------------------------------------------------- */

int Dump::idcompare(const void *pi, const void *pj)
@@ -486,9 +495,9 @@ int Dump::idcompare(const void *pi, const void *pj)
}

/* ----------------------------------------------------------------------
   compare two buffer quantities in sort data structure with size_one stride
   called via qsort_r in sort() method
   is a static method so access sort data structure via ptr
   compare two buffer values with size_one stride
   called via qsort() in sort() method
   is a static method so access data via dumpptr
------------------------------------------------------------------------- */

int Dump::bufcompare(const void *pi, const void *pj)