git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11935 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -25,7 +25,6 @@
|
|||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "modify.h"
|
#include "modify.h"
|
||||||
#include "fix.h"
|
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@ -128,9 +127,7 @@ void ComputeTempAsphere::init()
|
|||||||
|
|
||||||
void ComputeTempAsphere::setup()
|
void ComputeTempAsphere::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,6 +135,8 @@ void ComputeTempAsphere::setup()
|
|||||||
|
|
||||||
void ComputeTempAsphere::dof_compute()
|
void ComputeTempAsphere::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
|
|
||||||
// 6 dof for 3d, 3 dof for 2d
|
// 6 dof for 3d, 3 dof for 2d
|
||||||
// which dof are included also depends on mode
|
// which dof are included also depends on mode
|
||||||
// assume full rotation of extended particles
|
// assume full rotation of extended particles
|
||||||
|
|||||||
@ -23,8 +23,6 @@
|
|||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "modify.h"
|
|
||||||
#include "fix.h"
|
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
@ -58,9 +56,7 @@ ComputeTempEff::~ComputeTempEff()
|
|||||||
|
|
||||||
void ComputeTempEff::setup()
|
void ComputeTempEff::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,6 +64,7 @@ void ComputeTempEff::setup()
|
|||||||
|
|
||||||
void ComputeTempEff::dof_compute()
|
void ComputeTempEff::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
dof = domain->dimension * natoms;
|
dof = domain->dimension * natoms;
|
||||||
dof -= extra_dof + fix_dof;
|
dof -= extra_dof + fix_dof;
|
||||||
|
|||||||
@ -23,8 +23,6 @@
|
|||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "modify.h"
|
|
||||||
#include "fix.h"
|
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "lattice.h"
|
#include "lattice.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@ -70,9 +68,7 @@ void ComputeTempRotate::init()
|
|||||||
|
|
||||||
void ComputeTempRotate::setup()
|
void ComputeTempRotate::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,6 +76,7 @@ void ComputeTempRotate::setup()
|
|||||||
|
|
||||||
void ComputeTempRotate::dof_compute()
|
void ComputeTempRotate::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
int nper = domain->dimension;
|
int nper = domain->dimension;
|
||||||
dof = nper * natoms;
|
dof = nper * natoms;
|
||||||
|
|||||||
@ -330,7 +330,7 @@ void Atom::create_avec(const char *style, int narg, char **arg, char *suffix)
|
|||||||
// create instance of AtomVec
|
// create instance of AtomVec
|
||||||
// use grow() to initialize atom-based arrays to length 1
|
// use grow() to initialize atom-based arrays to length 1
|
||||||
// so that x[0][0] can always be referenced even if proc has no atoms
|
// so that x[0][0] can always be referenced even if proc has no atoms
|
||||||
// but reset nmax = 0
|
// but reset nmax = 0 in both Atom and AtomVec
|
||||||
// so 2d arrays like bond_type will later be allocated correctly
|
// so 2d arrays like bond_type will later be allocated correctly
|
||||||
// since currently, 2nd dimension bond_per_atom = 0
|
// since currently, 2nd dimension bond_per_atom = 0
|
||||||
|
|
||||||
|
|||||||
@ -21,6 +21,8 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
|
#include "modify.h"
|
||||||
|
#include "fix.h"
|
||||||
#include "atom_masks.h"
|
#include "atom_masks.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@ -131,6 +133,17 @@ void Compute::modify_params(int narg, char **arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
calculate adjustment in DOF due to fixes
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void Compute::adjust_dof_fix()
|
||||||
|
{
|
||||||
|
fix_dof = 0;
|
||||||
|
for (int i = 0; i < modify->nfix; i++)
|
||||||
|
fix_dof += modify->fix[i]->dof(igroup);
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
reset extra_dof to its default value
|
reset extra_dof to its default value
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -86,6 +86,7 @@ class Compute : protected Pointers {
|
|||||||
Compute(class LAMMPS *, int, char **);
|
Compute(class LAMMPS *, int, char **);
|
||||||
virtual ~Compute();
|
virtual ~Compute();
|
||||||
void modify_params(int, char **);
|
void modify_params(int, char **);
|
||||||
|
void adjust_dof_fix();
|
||||||
void reset_extra_dof();
|
void reset_extra_dof();
|
||||||
|
|
||||||
virtual void init() = 0;
|
virtual void init() = 0;
|
||||||
@ -122,6 +123,7 @@ class Compute : protected Pointers {
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
int extra_dof; // extra DOF for temperature computes
|
int extra_dof; // extra DOF for temperature computes
|
||||||
|
int fix_dof; // DOF due to fixes
|
||||||
int dynamic; // recount atoms for temperature computes
|
int dynamic; // recount atoms for temperature computes
|
||||||
int thermoflag; // 1 if include fix PE for PE computes
|
int thermoflag; // 1 if include fix PE for PE computes
|
||||||
|
|
||||||
|
|||||||
@ -52,9 +52,7 @@ ComputeTemp::~ComputeTemp()
|
|||||||
|
|
||||||
void ComputeTemp::setup()
|
void ComputeTemp::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,6 +60,7 @@ void ComputeTemp::setup()
|
|||||||
|
|
||||||
void ComputeTemp::dof_compute()
|
void ComputeTemp::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
dof = domain->dimension * natoms;
|
dof = domain->dimension * natoms;
|
||||||
dof -= extra_dof + fix_dof;
|
dof -= extra_dof + fix_dof;
|
||||||
|
|||||||
@ -34,7 +34,6 @@ class ComputeTemp : public Compute {
|
|||||||
void compute_vector();
|
void compute_vector();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int fix_dof;
|
|
||||||
double tfactor;
|
double tfactor;
|
||||||
|
|
||||||
virtual void dof_compute();
|
virtual void dof_compute();
|
||||||
|
|||||||
@ -19,8 +19,6 @@
|
|||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "modify.h"
|
|
||||||
#include "fix.h"
|
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "lattice.h"
|
#include "lattice.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@ -62,9 +60,7 @@ void ComputeTempCOM::init()
|
|||||||
|
|
||||||
void ComputeTempCOM::setup()
|
void ComputeTempCOM::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +68,7 @@ void ComputeTempCOM::setup()
|
|||||||
|
|
||||||
void ComputeTempCOM::dof_compute()
|
void ComputeTempCOM::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
int nper = domain->dimension;
|
int nper = domain->dimension;
|
||||||
dof = nper * natoms;
|
dof = nper * natoms;
|
||||||
|
|||||||
@ -86,9 +86,7 @@ void ComputeTempDeform::init()
|
|||||||
|
|
||||||
void ComputeTempDeform::setup()
|
void ComputeTempDeform::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,6 +94,7 @@ void ComputeTempDeform::setup()
|
|||||||
|
|
||||||
void ComputeTempDeform::dof_compute()
|
void ComputeTempDeform::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
dof = domain->dimension * natoms;
|
dof = domain->dimension * natoms;
|
||||||
dof -= extra_dof + fix_dof;
|
dof -= extra_dof + fix_dof;
|
||||||
|
|||||||
@ -18,8 +18,6 @@
|
|||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "modify.h"
|
|
||||||
#include "fix.h"
|
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@ -63,9 +61,7 @@ ComputeTempPartial::~ComputeTempPartial()
|
|||||||
|
|
||||||
void ComputeTempPartial::setup()
|
void ComputeTempPartial::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,6 +72,7 @@ void ComputeTempPartial::setup()
|
|||||||
|
|
||||||
void ComputeTempPartial::dof_compute()
|
void ComputeTempPartial::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
int nper = xflag+yflag+zflag;
|
int nper = xflag+yflag+zflag;
|
||||||
dof = nper * natoms;
|
dof = nper * natoms;
|
||||||
|
|||||||
@ -161,9 +161,7 @@ ComputeTempProfile::~ComputeTempProfile()
|
|||||||
|
|
||||||
void ComputeTempProfile::init()
|
void ComputeTempProfile::init()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
|
|
||||||
// ptrs to domain data
|
// ptrs to domain data
|
||||||
@ -189,9 +187,7 @@ void ComputeTempProfile::init()
|
|||||||
|
|
||||||
void ComputeTempProfile::setup()
|
void ComputeTempProfile::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,6 +195,7 @@ void ComputeTempProfile::setup()
|
|||||||
|
|
||||||
void ComputeTempProfile::dof_compute()
|
void ComputeTempProfile::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
int nper = domain->dimension;
|
int nper = domain->dimension;
|
||||||
dof = nper * natoms;
|
dof = nper * natoms;
|
||||||
|
|||||||
@ -117,9 +117,7 @@ ComputeTempRamp::~ComputeTempRamp()
|
|||||||
|
|
||||||
void ComputeTempRamp::setup()
|
void ComputeTempRamp::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +125,7 @@ void ComputeTempRamp::setup()
|
|||||||
|
|
||||||
void ComputeTempRamp::dof_compute()
|
void ComputeTempRamp::dof_compute()
|
||||||
{
|
{
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
double natoms = group->count(igroup);
|
double natoms = group->count(igroup);
|
||||||
int nper = domain->dimension;
|
int nper = domain->dimension;
|
||||||
dof = nper * natoms;
|
dof = nper * natoms;
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "modify.h"
|
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "region.h"
|
#include "region.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "modify.h"
|
#include "modify.h"
|
||||||
#include "fix.h"
|
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
@ -109,9 +108,7 @@ void ComputeTempSphere::init()
|
|||||||
|
|
||||||
void ComputeTempSphere::setup()
|
void ComputeTempSphere::setup()
|
||||||
{
|
{
|
||||||
fix_dof = 0;
|
fix_dof = -1;
|
||||||
for (int i = 0; i < modify->nfix; i++)
|
|
||||||
fix_dof += modify->fix[i]->dof(igroup);
|
|
||||||
dof_compute();
|
dof_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,6 +118,8 @@ void ComputeTempSphere::dof_compute()
|
|||||||
{
|
{
|
||||||
int count,count_all;
|
int count,count_all;
|
||||||
|
|
||||||
|
if (fix_dof) adjust_dof_fix();
|
||||||
|
|
||||||
// 6 or 3 dof for extended/point particles for 3d
|
// 6 or 3 dof for extended/point particles for 3d
|
||||||
// 3 or 2 dof for extended/point particles for 2d
|
// 3 or 2 dof for extended/point particles for 2d
|
||||||
// which dof are included also depends on mode
|
// which dof are included also depends on mode
|
||||||
|
|||||||
@ -271,7 +271,7 @@ void Modify::init()
|
|||||||
void Modify::setup(int vflag)
|
void Modify::setup(int vflag)
|
||||||
{
|
{
|
||||||
// compute setup needs to come before fix setup
|
// compute setup needs to come before fix setup
|
||||||
// b/c NH fixes need use DOF of temperature computes
|
// b/c NH fixes need DOF of temperature computes
|
||||||
|
|
||||||
for (int i = 0; i < ncompute; i++) compute[i]->setup();
|
for (int i = 0; i < ncompute; i++) compute[i]->setup();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user