Commit 0a27b706 authored by Rene Halver's avatar Rene Halver
Browse files

bug fixes: ScaFaCoS returns virial as 9-value array, requires copies to Lammps...

bug fixes: ScaFaCoS returns virial as 9-value array, requires copies to Lammps 6-value array; fixed error in compuation of per-atom energy calculation
parent 953b2837
Loading
Loading
Loading
Loading
+20 −2
Changes for src/USER-SCAFACOS/scafacos.cpp: 20 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -219,7 +219,25 @@ void Scafacos::compute(int eflag, int vflag)

  if (vflag_global)
  {
    fcs_get_virial(fcs,virial); 
    fcs_get_virial(fcs,virial_int);
    /*
    printf(" %lf %lf %lf \n %lf %lf %lf \n %lf %lf %lf \n ",
              virial_int[0], 
              virial_int[1], 
              virial_int[2], 
              virial_int[3], 
              virial_int[4], 
              virial_int[5], 
              virial_int[6], 
              virial_int[7], 
              virial_int[8]); 
    */
    virial[0] = virial_int[0];
    virial[1] = virial_int[1];
    virial[2] = virial_int[2];
    virial[3] = virial_int[4];
    virial[4] = virial_int[5];
    virial[5] = virial_int[8];
  }

  // apply Efield to each particle
@@ -240,7 +258,7 @@ void Scafacos::compute(int eflag, int vflag)

  if (eflag_atom) {
    for (int i = 0; i < nlocal; i++)
      eatom[i] = qscale * epot[i];
      eatom[i] = 0.5 * qscale * q[i] * epot[i];
  }

  MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world);
+2 −0
Changes for src/USER-SCAFACOS/scafacos.h: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@ class Scafacos : public KSpace {
  fcs_int old_periodicity[3];
  fcs_int old_natoms;

  fcs_float virial_int[9];

  void check_result(FCSResult);
  void setup_handle();
  bool box_has_changed();