Commit 6ec3aac3 authored by tomswinburne's avatar tomswinburne
Browse files

extra return value

parent 36bac809
Loading
Loading
Loading
Loading
+23 −12
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ FixPAFI::FixPAFI(LAMMPS *lmp, int narg, char **arg) :

  dynamic_group_allow = 0;
  vector_flag = 1;
  size_vector = 4;
  size_vector = 5;
  global_freq = 1;
  extvector = 0;
  od_flag = 0;
@@ -130,11 +130,11 @@ FixPAFI::FixPAFI(LAMMPS *lmp, int narg, char **arg) :
    c_v[i] = 0.;
    c_v_all[i] = 0.;
  }
  for(int i=0; i<5; i++) {
  for(int i=0; i<6; i++) {
    proj[i] = 0.0;
    proj_all[i] = 0.0;
  }
  for(int i=0; i<4; i++) {
  for(int i=0; i<5; i++) {
    results[i] = 0.0;
    results_all[i] = 0.0;
  }
@@ -249,7 +249,7 @@ void FixPAFI::post_force(int vflag)
    c_v[i] = 0.;
    c_v_all[i] = 0.;
  }
  for(int i = 0; i < 5; i++) {
  for(int i = 0; i < 6; i++) {
    proj[i] = 0.;
    proj_all[i] = 0.;
  }
@@ -290,6 +290,10 @@ void FixPAFI::post_force(int vflag)
      proj[4] += path[i][4]*deviation[1]; // (x-path).n
      proj[4] += path[i][5]*deviation[2]; // (x-path).n

      proj[5] += f[i][3]*deviation[0]; // (x-path).f
      proj[5] += f[i][4]*deviation[1]; // (x-path).f
      proj[5] += f[i][5]*deviation[2]; // (x-path).f

    }
  }

@@ -314,13 +318,15 @@ void FixPAFI::post_force(int vflag)
        c_v[9] += 1.0;
      }
  }
  MPI_Allreduce(proj,proj_all,5,MPI_DOUBLE,MPI_SUM,world);
  MPI_Allreduce(proj,proj_all,6,MPI_DOUBLE,MPI_SUM,world);
  MPI_Allreduce(c_v,c_v_all,10,MPI_DOUBLE,MPI_SUM,world);

  // results - f.n*(1-psi), (f.n)^2*(1-psi)^2, 1-psi, dX.n
  results_all[0] = proj_all[0] * (1.-proj_all[3]);
  results_all[1] = results_all[0] * results_all[0];
  results_all[2] = 1.-proj_all[3];
  results_all[3] = fabs(proj_all[4]);
  results_all[4] = proj_all[5]; // dX.f
  force_flag = 1;

  for (int i = 0; i < nlocal; i++){
@@ -417,7 +423,7 @@ void FixPAFI::min_post_force(int vflag)
    c_v[i] = 0.;
    c_v_all[i] = 0.;
  }
  for(int i = 0; i < 5; i++) {
  for(int i = 0; i < 6; i++) {
    proj[i] = 0.;
    proj_all[i] = 0.;
  }
@@ -455,6 +461,10 @@ void FixPAFI::min_post_force(int vflag)
      proj[4] += path[i][4]*deviation[1]; // (x-path).n
      proj[4] += path[i][5]*deviation[2]; // (x-path).n

      proj[5] += f[i][3]*deviation[0]; // (x-path).f
      proj[5] += f[i][4]*deviation[1]; // (x-path).f
      proj[5] += f[i][5]*deviation[2]; // (x-path).f

    }
  }

@@ -479,15 +489,16 @@ void FixPAFI::min_post_force(int vflag)
        c_v[9] += 1.0;
      }
  }
  MPI_Allreduce(proj,proj_all,5,MPI_DOUBLE,MPI_SUM,world);
  MPI_Allreduce(proj,proj_all,6,MPI_DOUBLE,MPI_SUM,world);
  MPI_Allreduce(c_v,c_v_all,10,MPI_DOUBLE,MPI_SUM,world);

  results_all[0] = proj_all[0] * (1.-proj_all[3]); // f.n * psi
  results_all[1] = results_all[0] * results_all[0]; // (f.n * psi)^2
  results_all[2] = 1.-proj_all[3]; // psi
  results_all[3] = proj_all[4]; // dX.n
  results_all[3] = fabs(proj_all[4]); // dX.n
  results_all[4] = proj_all[5]; // dX.f

  MPI_Bcast(results_all,4,MPI_DOUBLE,0,world);
  MPI_Bcast(results_all,5,MPI_DOUBLE,0,world);
  force_flag = 1;

  for (int i = 0; i < nlocal; i++){
@@ -536,7 +547,7 @@ void FixPAFI::initial_integrate(int vflag)
    c_v[i] = 0.;
    c_v_all[i] = 0.;
  }
  for(int i = 0; i < 5; i++) {
  for(int i = 0; i < 6; i++) {
    proj[i] = 0.;
    proj_all[i] = 0.;
  }
@@ -648,7 +659,7 @@ void FixPAFI::final_integrate()
    c_v[i] = 0.;
    c_v_all[i] = 0.;
  }
  for(int i = 0; i < 5; i++) {
  for(int i = 0; i < 6; i++) {
    proj[i] = 0.;
    proj_all[i] = 0.;
  }
+2 −2
Original line number Diff line number Diff line
@@ -51,8 +51,8 @@ class FixPAFI : public Fix {
  int varflag,icompute;
  char *computename;
  class Compute *PathCompute;
  double proj[5], proj_all[5]; // f,v,h, psi
  double results[4], results_all[4]; // f.n, (f.n)**2, psi, dx.n
  double proj[6], proj_all[6]; // f,v,h, psi
  double results[5], results_all[5]; // f.n, (f.n)**2, psi, dx.n
  double c_v[10],c_v_all[10];
  double temperature,gamma,sqrtD,t_period,local_norm,mass_f;
  int force_flag,od_flag,com_flag;