Commit a49e234a authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1655 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent 4b237db3
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ void ComputeTempAsphere::init()
  fix_dof = 0;
  for (int i = 0; i < modify->nfix; i++)
    fix_dof += modify->fix[i]->dof(igroup);
  recount();
  dof_compute();

  tempbias = 0;
  tbias = NULL;
@@ -84,11 +84,12 @@ void ComputeTempAsphere::init()

/* ---------------------------------------------------------------------- */

void ComputeTempAsphere::recount()
void ComputeTempAsphere::dof_compute()
{
  double natoms = group->count(igroup);
  int dimension = domain->dimension;
  dof = dimension * natoms;
  if (tbias) dof -= tbias->dof_remove(natoms);
  dof -= extra_dof + fix_dof;

  // add rotational degrees of freedom
@@ -181,7 +182,7 @@ double ComputeTempAsphere::compute_scalar()
  if (tbias) tbias->restore_bias_all();

  MPI_Allreduce(&t,&scalar,1,MPI_DOUBLE,MPI_SUM,world);
  if (dynamic) recount();
  if (dynamic || tbias) dof_compute();
  scalar *= tfactor;
  return scalar;
}
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ class ComputeTempAsphere : public Compute {

  Compute *tbias;     // ptr to additional bias compute

  void recount();
  void dof_compute();
  void calculate_inertia();
};

+3 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include "ctype.h"
#include "comm.h"
#include "compute.h"
#include "domain.h"
#include "group.h"
#include "modify.h"
#include "lattice.h"
@@ -71,7 +72,9 @@ Compute::Compute(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
  comm_forward = comm_reverse = 0;

  // set modify defaults
  // should change 3 to dimension

  //extra_dof = domain->dimension;
  extra_dof = 3;
  dynamic = 0;

+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ class Compute : protected Pointers {
  virtual int pack_reverse_comm(int, int, double *) {return 0;}
  virtual void unpack_reverse_comm(int, int *, double *) {}

  virtual double dof_remove(double &) {return 0.0;}
  virtual void remove_bias(int, double *) {}
  virtual void remove_bias_all() {}
  virtual void restore_bias(int, double *) {}
+6 −5
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ void ComputeTemp::init()
  fix_dof = 0;
  for (int i = 0; i < modify->nfix; i++)
    fix_dof += modify->fix[i]->dof(igroup);
  recount();
  dof_compute();

  tempbias = 0;
  tbias = NULL;
@@ -70,12 +70,13 @@ void ComputeTemp::init()

/* ---------------------------------------------------------------------- */

void ComputeTemp::recount()
void ComputeTemp::dof_compute()
{
  double natoms = group->count(igroup);
  dof = domain->dimension * natoms;
  if (tbias) dof -= tbias->dof_remove(natoms);
  dof -= extra_dof + fix_dof;
  if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz);
  if (dof > 0.0) tfactor = force->mvv2e / (dof * force->boltz);
  else tfactor = 0.0;
}

@@ -89,7 +90,7 @@ double ComputeTemp::compute_scalar()
    if (!(tbias->invoked & INVOKED_SCALAR))
      double tmp = tbias->compute_scalar();
    tbias->remove_bias_all();
  } else tempbias = 0;
  }

  double **v = atom->v;
  double *mass = atom->mass;
@@ -114,7 +115,7 @@ double ComputeTemp::compute_scalar()
  if (tbias) tbias->restore_bias_all();

  MPI_Allreduce(&t,&scalar,1,MPI_DOUBLE,MPI_SUM,world);
  if (dynamic) recount();
  if (dynamic || tbias) dof_compute();
  scalar *= tfactor;
  return scalar;
}
Loading