git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@7907 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2012-03-05 15:31:20 +00:00
parent 932f85ff2e
commit 61c4fa6ee0
84 changed files with 510 additions and 177 deletions

View File

@ -26,11 +26,20 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
#define SMALL 0.001 #define SMALL 0.001
/* ---------------------------------------------------------------------- */
AngleCharmmOMP::AngleCharmmOMP(class LAMMPS *lmp)
: AngleCharmm(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void AngleCharmmOMP::compute(int eflag, int vflag) void AngleCharmmOMP::compute(int eflag, int vflag)

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCharmmOMP : public AngleCharmm, public ThrOMP { class AngleCharmmOMP : public AngleCharmm, public ThrOMP {
public: public:
AngleCharmmOMP(class LAMMPS *lmp) : AngleCharmmOMP(class LAMMPS *lmp);
AngleCharmm(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleClass2OMP::AngleClass2OMP(class LAMMPS *lmp)
: AngleClass2(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleClass2OMP::compute(int eflag, int vflag) void AngleClass2OMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleClass2OMP : public AngleClass2, public ThrOMP { class AngleClass2OMP : public AngleClass2, public ThrOMP {
public: public:
AngleClass2OMP(class LAMMPS *lmp) : AngleClass2OMP(class LAMMPS *lmp);
AngleClass2(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleCosineDeltaOMP::AngleCosineDeltaOMP(class LAMMPS *lmp)
: AngleCosineDelta(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleCosineDeltaOMP::compute(int eflag, int vflag) void AngleCosineDeltaOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCosineDeltaOMP : public AngleCosineDelta, public ThrOMP { class AngleCosineDeltaOMP : public AngleCosineDelta, public ThrOMP {
public: public:
AngleCosineDeltaOMP(class LAMMPS *lmp) : AngleCosineDeltaOMP(class LAMMPS *lmp);
AngleCosineDelta(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleCosineOMP::AngleCosineOMP(class LAMMPS *lmp)
: AngleCosine(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleCosineOMP::compute(int eflag, int vflag) void AngleCosineOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCosineOMP : public AngleCosine, public ThrOMP { class AngleCosineOMP : public AngleCosine, public ThrOMP {
public: public:
AngleCosineOMP(class LAMMPS *lmp) : AngleCosineOMP(class LAMMPS *lmp);
AngleCosine(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleCosinePeriodicOMP::AngleCosinePeriodicOMP(class LAMMPS *lmp)
: AngleCosinePeriodic(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleCosinePeriodicOMP::compute(int eflag, int vflag) void AngleCosinePeriodicOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCosinePeriodicOMP : public AngleCosinePeriodic, public ThrOMP { class AngleCosinePeriodicOMP : public AngleCosinePeriodic, public ThrOMP {
public: public:
AngleCosinePeriodicOMP(class LAMMPS *lmp) : AngleCosinePeriodicOMP(class LAMMPS *lmp);
AngleCosinePeriodic(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleCosineShiftExpOMP::AngleCosineShiftExpOMP(class LAMMPS *lmp)
: AngleCosineShiftExp(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleCosineShiftExpOMP::compute(int eflag, int vflag) void AngleCosineShiftExpOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCosineShiftExpOMP : public AngleCosineShiftExp, public ThrOMP { class AngleCosineShiftExpOMP : public AngleCosineShiftExp, public ThrOMP {
public: public:
AngleCosineShiftExpOMP(class LAMMPS *lmp) : AngleCosineShiftExpOMP(class LAMMPS *lmp);
AngleCosineShiftExp(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleCosineShiftOMP::AngleCosineShiftOMP(class LAMMPS *lmp)
: AngleCosineShift(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleCosineShiftOMP::compute(int eflag, int vflag) void AngleCosineShiftOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCosineShiftOMP : public AngleCosineShift, public ThrOMP { class AngleCosineShiftOMP : public AngleCosineShift, public ThrOMP {
public: public:
AngleCosineShiftOMP(class LAMMPS *lmp) : AngleCosineShiftOMP(class LAMMPS *lmp);
AngleCosineShift(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleCosineSquaredOMP::AngleCosineSquaredOMP(class LAMMPS *lmp)
: AngleCosineSquared(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleCosineSquaredOMP::compute(int eflag, int vflag) void AngleCosineSquaredOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleCosineSquaredOMP : public AngleCosineSquared, public ThrOMP { class AngleCosineSquaredOMP : public AngleCosineSquared, public ThrOMP {
public: public:
AngleCosineSquaredOMP(class LAMMPS *lmp) : AngleCosineSquaredOMP(class LAMMPS *lmp);
AngleCosineSquared(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -27,6 +27,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -34,6 +35,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleDipoleOMP::AngleDipoleOMP(class LAMMPS *lmp)
: AngleDipole(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleDipoleOMP::compute(int eflag, int vflag) void AngleDipoleOMP::compute(int eflag, int vflag)
{ {
@ -65,6 +74,7 @@ void AngleDipoleOMP::compute(int eflag, int vflag)
reduce_thr(this, eflag, vflag, thr); reduce_thr(this, eflag, vflag, thr);
} // end of omp parallel region } // end of omp parallel region
} }
template <int EFLAG> template <int EFLAG>

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleDipoleOMP : public AngleDipole, public ThrOMP { class AngleDipoleOMP : public AngleDipole, public ThrOMP {
public: public:
AngleDipoleOMP(class LAMMPS *lmp) : AngleDipoleOMP(class LAMMPS *lmp);
AngleDipole(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleHarmonicOMP::AngleHarmonicOMP(class LAMMPS *lmp)
: AngleHarmonic(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleHarmonicOMP::compute(int eflag, int vflag) void AngleHarmonicOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleHarmonicOMP : public AngleHarmonic, public ThrOMP { class AngleHarmonicOMP : public AngleHarmonic, public ThrOMP {
public: public:
AngleHarmonicOMP(class LAMMPS *lmp) : AngleHarmonicOMP(class LAMMPS *lmp);
AngleHarmonic(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -27,6 +27,7 @@
#include "lj_sdk_common.h" #include "lj_sdk_common.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
using namespace LJSDKParms; using namespace LJSDKParms;
@ -35,6 +36,14 @@ using namespace LJSDKParms;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleSDKOMP::AngleSDKOMP(class LAMMPS *lmp)
: AngleSDK(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleSDKOMP::compute(int eflag, int vflag) void AngleSDKOMP::compute(int eflag, int vflag)
{ {

View File

@ -33,9 +33,7 @@ namespace LAMMPS_NS {
class AngleSDKOMP : public AngleSDK, public ThrOMP { class AngleSDKOMP : public AngleSDK, public ThrOMP {
public: public:
AngleSDKOMP(class LAMMPS *lmp) : AngleSDKOMP(class LAMMPS *lmp);
AngleSDK(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -33,6 +34,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
AngleTableOMP::AngleTableOMP(class LAMMPS *lmp)
: AngleTable(lmp), ThrOMP(lmp,THR_ANGLE)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void AngleTableOMP::compute(int eflag, int vflag) void AngleTableOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class AngleTableOMP : public AngleTable, public ThrOMP { class AngleTableOMP : public AngleTable, public ThrOMP {
public: public:
AngleTableOMP(class LAMMPS *lmp) : AngleTableOMP(class LAMMPS *lmp);
AngleTable(lmp), ThrOMP(lmp,THR_ANGLE) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,8 +24,18 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
BondClass2OMP::BondClass2OMP(class LAMMPS *lmp)
: BondClass2(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void BondClass2OMP::compute(int eflag, int vflag) void BondClass2OMP::compute(int eflag, int vflag)

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondClass2OMP : public BondClass2, public ThrOMP { class BondClass2OMP : public BondClass2, public ThrOMP {
public: public:
BondClass2OMP(class LAMMPS *lmp) : BondClass2OMP(class LAMMPS *lmp);
BondClass2(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,10 +26,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondFENEExpandOMP::BondFENEExpandOMP(class LAMMPS *lmp)
: BondFENEExpand(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondFENEExpandOMP::compute(int eflag, int vflag) void BondFENEExpandOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondFENEExpandOMP : public BondFENEExpand, public ThrOMP { class BondFENEExpandOMP : public BondFENEExpand, public ThrOMP {
public: public:
BondFENEExpandOMP(class LAMMPS *lmp) : BondFENEExpandOMP(class LAMMPS *lmp);
BondFENEExpand(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,10 +26,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondFENEOMP::BondFENEOMP(class LAMMPS *lmp)
: BondFENE(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondFENEOMP::compute(int eflag, int vflag) void BondFENEOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondFENEOMP : public BondFENE, public ThrOMP { class BondFENEOMP : public BondFENE, public ThrOMP {
public: public:
BondFENEOMP(class LAMMPS *lmp) : BondFENEOMP(class LAMMPS *lmp);
BondFENE(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,10 +24,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondHarmonicOMP::BondHarmonicOMP(class LAMMPS *lmp)
: BondHarmonic(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondHarmonicOMP::compute(int eflag, int vflag) void BondHarmonicOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondHarmonicOMP : public BondHarmonic, public ThrOMP { class BondHarmonicOMP : public BondHarmonic, public ThrOMP {
public: public:
BondHarmonicOMP(class LAMMPS *lmp) : BondHarmonicOMP(class LAMMPS *lmp);
BondHarmonic(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,10 +24,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondHarmonicShiftCutOMP::BondHarmonicShiftCutOMP(class LAMMPS *lmp)
: BondHarmonicShiftCut(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondHarmonicShiftCutOMP::compute(int eflag, int vflag) void BondHarmonicShiftCutOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondHarmonicShiftCutOMP : public BondHarmonicShiftCut, public ThrOMP { class BondHarmonicShiftCutOMP : public BondHarmonicShiftCut, public ThrOMP {
public: public:
BondHarmonicShiftCutOMP(class LAMMPS *lmp) : BondHarmonicShiftCutOMP(class LAMMPS *lmp);
BondHarmonicShiftCut(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,10 +24,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondHarmonicShiftOMP::BondHarmonicShiftOMP(class LAMMPS *lmp)
: BondHarmonicShift(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondHarmonicShiftOMP::compute(int eflag, int vflag) void BondHarmonicShiftOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondHarmonicShiftOMP : public BondHarmonicShift, public ThrOMP { class BondHarmonicShiftOMP : public BondHarmonicShift, public ThrOMP {
public: public:
BondHarmonicShiftOMP(class LAMMPS *lmp) : BondHarmonicShiftOMP(class LAMMPS *lmp);
BondHarmonicShift(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,10 +24,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondMorseOMP::BondMorseOMP(class LAMMPS *lmp)
: BondMorse(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondMorseOMP::compute(int eflag, int vflag) void BondMorseOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondMorseOMP : public BondMorse, public ThrOMP { class BondMorseOMP : public BondMorse, public ThrOMP {
public: public:
BondMorseOMP(class LAMMPS *lmp) : BondMorseOMP(class LAMMPS *lmp);
BondMorse(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,10 +24,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondNonlinearOMP::BondNonlinearOMP(class LAMMPS *lmp)
: BondNonlinear(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondNonlinearOMP::compute(int eflag, int vflag) void BondNonlinearOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondNonlinearOMP : public BondNonlinear, public ThrOMP { class BondNonlinearOMP : public BondNonlinear, public ThrOMP {
public: public:
BondNonlinearOMP(class LAMMPS *lmp) : BondNonlinearOMP(class LAMMPS *lmp);
BondNonlinear(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,10 +25,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondQuarticOMP::BondQuarticOMP(class LAMMPS *lmp)
: BondQuartic(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondQuarticOMP::compute(int eflag, int vflag) void BondQuarticOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondQuarticOMP : public BondQuartic, public ThrOMP { class BondQuarticOMP : public BondQuartic, public ThrOMP {
public: public:
BondQuarticOMP(class LAMMPS *lmp) : BondQuarticOMP(class LAMMPS *lmp);
BondQuartic(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -24,10 +24,19 @@
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
BondTableOMP::BondTableOMP(class LAMMPS *lmp)
: BondTable(lmp), ThrOMP(lmp,THR_BOND)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void BondTableOMP::compute(int eflag, int vflag) void BondTableOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class BondTableOMP : public BondTable, public ThrOMP { class BondTableOMP : public BondTable, public ThrOMP {
public: public:
BondTableOMP(class LAMMPS *lmp) : BondTableOMP(class LAMMPS *lmp);
BondTable(lmp), ThrOMP(lmp,THR_BOND) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -28,6 +28,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -35,6 +36,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralCharmmOMP::DihedralCharmmOMP(class LAMMPS *lmp)
: DihedralCharmm(lmp), ThrOMP(lmp,THR_DIHEDRAL|THR_CHARMM)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralCharmmOMP::compute(int eflag, int vflag) void DihedralCharmmOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralCharmmOMP : public DihedralCharmm, public ThrOMP { class DihedralCharmmOMP : public DihedralCharmm, public ThrOMP {
public: public:
DihedralCharmmOMP(class LAMMPS *lmp) : DihedralCharmmOMP(class LAMMPS *lmp);
DihedralCharmm(lmp), ThrOMP(lmp,THR_DIHEDRAL|THR_CHARMM) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralClass2OMP::DihedralClass2OMP(class LAMMPS *lmp)
: DihedralClass2(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralClass2OMP::compute(int eflag, int vflag) void DihedralClass2OMP::compute(int eflag, int vflag)
{ {

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralClass2OMP : public DihedralClass2, public ThrOMP { class DihedralClass2OMP : public DihedralClass2, public ThrOMP {
public: public:
DihedralClass2OMP(class LAMMPS *lmp) : DihedralClass2OMP(class LAMMPS *lmp);
DihedralClass2(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralCosineShiftExpOMP::DihedralCosineShiftExpOMP(class LAMMPS *lmp)
: DihedralCosineShiftExp(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralCosineShiftExpOMP::compute(int eflag, int vflag) void DihedralCosineShiftExpOMP::compute(int eflag, int vflag)
{ {

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralCosineShiftExpOMP : public DihedralCosineShiftExp, public ThrOMP { class DihedralCosineShiftExpOMP : public DihedralCosineShiftExp, public ThrOMP {
public: public:
DihedralCosineShiftExpOMP(class LAMMPS *lmp) : DihedralCosineShiftExpOMP(class LAMMPS *lmp);
DihedralCosineShiftExp(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralHarmonicOMP::DihedralHarmonicOMP(class LAMMPS *lmp)
: DihedralHarmonic(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralHarmonicOMP::compute(int eflag, int vflag) void DihedralHarmonicOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralHarmonicOMP : public DihedralHarmonic, public ThrOMP { class DihedralHarmonicOMP : public DihedralHarmonic, public ThrOMP {
public: public:
DihedralHarmonicOMP(class LAMMPS *lmp) : DihedralHarmonicOMP(class LAMMPS *lmp);
DihedralHarmonic(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include "math_const.h" #include "math_const.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -35,6 +36,14 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralHelixOMP::DihedralHelixOMP(class LAMMPS *lmp)
: DihedralHelix(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralHelixOMP::compute(int eflag, int vflag) void DihedralHelixOMP::compute(int eflag, int vflag)
{ {

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralHelixOMP : public DihedralHelix, public ThrOMP { class DihedralHelixOMP : public DihedralHelix, public ThrOMP {
public: public:
DihedralHelixOMP(class LAMMPS *lmp) : DihedralHelixOMP(class LAMMPS *lmp);
DihedralHelix(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralMultiHarmonicOMP::DihedralMultiHarmonicOMP(class LAMMPS *lmp)
: DihedralMultiHarmonic(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralMultiHarmonicOMP::compute(int eflag, int vflag) void DihedralMultiHarmonicOMP::compute(int eflag, int vflag)
{ {

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralMultiHarmonicOMP : public DihedralMultiHarmonic, public ThrOMP { class DihedralMultiHarmonicOMP : public DihedralMultiHarmonic, public ThrOMP {
public: public:
DihedralMultiHarmonicOMP(class LAMMPS *lmp) : DihedralMultiHarmonicOMP(class LAMMPS *lmp);
DihedralMultiHarmonic(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -33,6 +34,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralOPLSOMP::DihedralOPLSOMP(class LAMMPS *lmp)
: DihedralOPLS(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralOPLSOMP::compute(int eflag, int vflag) void DihedralOPLSOMP::compute(int eflag, int vflag)
{ {

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralOPLSOMP : public DihedralOPLS, public ThrOMP { class DihedralOPLSOMP : public DihedralOPLS, public ThrOMP {
public: public:
DihedralOPLSOMP(class LAMMPS *lmp) : DihedralOPLSOMP(class LAMMPS *lmp);
DihedralOPLS(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace DIHEDRAL_TABLE_NS; using namespace DIHEDRAL_TABLE_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace DIHEDRAL_TABLE_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
DihedralTableOMP::DihedralTableOMP(class LAMMPS *lmp)
: DihedralTable(lmp), ThrOMP(lmp,THR_DIHEDRAL)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void DihedralTableOMP::compute(int eflag, int vflag) void DihedralTableOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class DihedralTableOMP : public DihedralTable, public ThrOMP { class DihedralTableOMP : public DihedralTable, public ThrOMP {
public: public:
DihedralTableOMP(class LAMMPS *lmp) : DihedralTableOMP(class LAMMPS *lmp);
DihedralTable(lmp), ThrOMP(lmp,THR_DIHEDRAL) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include "math_const.h" #include "math_const.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -35,7 +36,9 @@ using namespace MathConst;
EwaldOMP::EwaldOMP(LAMMPS *lmp, int narg, char **arg) EwaldOMP::EwaldOMP(LAMMPS *lmp, int narg, char **arg)
: Ewald(lmp, narg, arg), ThrOMP(lmp, THR_KSPACE) : Ewald(lmp, narg, arg), ThrOMP(lmp, THR_KSPACE)
{ } {
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void EwaldOMP::allocate() void EwaldOMP::allocate()

View File

@ -35,6 +35,7 @@
#include "angle_hybrid.h" #include "angle_hybrid.h"
#include "dihedral_hybrid.h" #include "dihedral_hybrid.h"
#include "improper_hybrid.h" #include "improper_hybrid.h"
#include "kspace.h"
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
@ -198,6 +199,7 @@ void FixOMP::init()
last_omp_style = NULL; last_omp_style = NULL;
char *last_omp_name = NULL; char *last_omp_name = NULL;
char *last_hybrid_name = NULL; char *last_hybrid_name = NULL;
char *last_force_name = NULL;
// determine which is the last force style with OpenMP // determine which is the last force style with OpenMP
// support as this is the one that has to reduce the forces // support as this is the one that has to reduce the forces
@ -208,9 +210,8 @@ void FixOMP::init()
if ( (strcmp(force->name ## _style,"hybrid") == 0) || \ if ( (strcmp(force->name ## _style,"hybrid") == 0) || \
(strcmp(force->name ## _style,"hybrid/overlay") == 0) ) \ (strcmp(force->name ## _style,"hybrid/overlay") == 0) ) \
check_hybrid=1; \ check_hybrid=1; \
int len = strlen(force->name ## _style); \ if (force->name->suffix_flag & Suffix::OMP) { \
char *suffix = force->name ## _style + len - 4; \ last_force_name = #name; \
if (strcmp(suffix,"/omp") == 0) { \
last_omp_name = force->name ## _style; \ last_omp_name = force->name ## _style; \
last_omp_style = (void *) force->name; \ last_omp_style = (void *) force->name; \
} \ } \
@ -220,24 +221,19 @@ void FixOMP::init()
if (check_hybrid) { \ if (check_hybrid) { \
Class ## Hybrid *style = (Class ## Hybrid *) force->name; \ Class ## Hybrid *style = (Class ## Hybrid *) force->name; \
for (int i=0; i < style->nstyles; i++) { \ for (int i=0; i < style->nstyles; i++) { \
int len = strlen(style->keywords[i]); \ if (style->styles[i]->suffix_flag & Suffix::OMP) { \
char *suffix = style->keywords[i] + len - 4; \ last_force_name = #name; \
if (strcmp(suffix,"/omp") == 0) { \ last_omp_name = style->keywords[i]; \
last_omp_name = force->name ## _style; \
last_omp_style = style->styles[i]; \ last_omp_style = style->styles[i]; \
} \ } \
} \ } \
} }
CheckStyleForOMP(pair); CheckStyleForOMP(pair);
CheckHybridForOMP(pair,Pair);
if (check_hybrid) { if (check_hybrid) {
PairHybrid *style = (PairHybrid *) force->pair; last_pair_hybrid = last_omp_style;
for (int i=0; i < style->nstyles; i++) { last_hybrid_name = last_omp_name;
if (style->styles[i]->suffix_flag & Suffix::OMP) {
last_pair_hybrid = style->styles[i];
last_omp_name = style->keywords[i];
}
}
} }
CheckStyleForOMP(bond); CheckStyleForOMP(bond);
@ -256,8 +252,30 @@ void FixOMP::init()
#undef CheckStyleForOMP #undef CheckStyleForOMP
#undef CheckHybridForOMP #undef CheckHybridForOMP
set_neighbor_omp(); set_neighbor_omp();
// diagnostic output
if (comm->me == 0) {
if (last_omp_style) {
if (last_pair_hybrid) {
if (screen)
fprintf(screen,"Hybrid pair style last /omp style %s\n", last_hybrid_name);
if (logfile)
fprintf(logfile,"Hybrid pair style last /omp style %s\n", last_hybrid_name);
}
if (screen)
fprintf(screen,"Last active /omp style is %s_style %s\n",
last_force_name, last_omp_name);
if (logfile)
fprintf(logfile,"Last active /omp style is %s_style %s\n",
last_force_name, last_omp_name);
} else {
if (screen)
fprintf(screen,"No /omp style for force computation currently active\n");
if (logfile)
fprintf(screen,"No /omp style for force computation currently active\n");
}
}
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
ImproperClass2OMP::ImproperClass2OMP(class LAMMPS *lmp)
: ImproperClass2(lmp), ThrOMP(lmp,THR_IMPROPER)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void ImproperClass2OMP::compute(int eflag, int vflag) void ImproperClass2OMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class ImproperClass2OMP : public ImproperClass2, public ThrOMP { class ImproperClass2OMP : public ImproperClass2, public ThrOMP {
public: public:
ImproperClass2OMP(class LAMMPS *lmp) : ImproperClass2OMP(class LAMMPS *lmp);
ImproperClass2(lmp), ThrOMP(lmp,THR_IMPROPER) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
ImproperCvffOMP::ImproperCvffOMP(class LAMMPS *lmp)
: ImproperCvff(lmp), ThrOMP(lmp,THR_IMPROPER)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void ImproperCvffOMP::compute(int eflag, int vflag) void ImproperCvffOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class ImproperCvffOMP : public ImproperCvff, public ThrOMP { class ImproperCvffOMP : public ImproperCvff, public ThrOMP {
public: public:
ImproperCvffOMP(class LAMMPS *lmp) : ImproperCvffOMP(class LAMMPS *lmp);
ImproperCvff(lmp), ThrOMP(lmp,THR_IMPROPER) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
ImproperHarmonicOMP::ImproperHarmonicOMP(class LAMMPS *lmp)
: ImproperHarmonic(lmp), ThrOMP(lmp,THR_IMPROPER)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void ImproperHarmonicOMP::compute(int eflag, int vflag) void ImproperHarmonicOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class ImproperHarmonicOMP : public ImproperHarmonic, public ThrOMP { class ImproperHarmonicOMP : public ImproperHarmonic, public ThrOMP {
public: public:
ImproperHarmonicOMP(class LAMMPS *lmp) : ImproperHarmonicOMP(class LAMMPS *lmp);
ImproperHarmonic(lmp), ThrOMP(lmp,THR_IMPROPER) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -25,6 +25,7 @@
#include "update.h" #include "update.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
#define TOLERANCE 0.05 #define TOLERANCE 0.05
@ -32,6 +33,14 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
ImproperUmbrellaOMP::ImproperUmbrellaOMP(class LAMMPS *lmp)
: ImproperUmbrella(lmp), ThrOMP(lmp,THR_IMPROPER)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */
void ImproperUmbrellaOMP::compute(int eflag, int vflag) void ImproperUmbrellaOMP::compute(int eflag, int vflag)
{ {

View File

@ -32,9 +32,7 @@ namespace LAMMPS_NS {
class ImproperUmbrellaOMP : public ImproperUmbrella, public ThrOMP { class ImproperUmbrellaOMP : public ImproperUmbrella, public ThrOMP {
public: public:
ImproperUmbrellaOMP(class LAMMPS *lmp) : ImproperUmbrellaOMP(class LAMMPS *lmp);
ImproperUmbrella(lmp), ThrOMP(lmp,THR_IMPROPER) {};
virtual void compute(int, int); virtual void compute(int, int);
private: private:

View File

@ -26,6 +26,7 @@
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -43,6 +44,7 @@ using namespace MathConst;
PPPMCGOMP::PPPMCGOMP(LAMMPS *lmp, int narg, char **arg) : PPPMCGOMP::PPPMCGOMP(LAMMPS *lmp, int narg, char **arg) :
PPPMCG(lmp, narg, arg), ThrOMP(lmp, THR_KSPACE) PPPMCG(lmp, narg, arg), ThrOMP(lmp, THR_KSPACE)
{ {
suffix_flag |= Suffix::OMP;
} }
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------

View File

@ -26,6 +26,7 @@
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -44,6 +45,7 @@ using namespace MathConst;
PPPMOMP::PPPMOMP(LAMMPS *lmp, int narg, char **arg) : PPPMOMP::PPPMOMP(LAMMPS *lmp, int narg, char **arg) :
PPPM(lmp, narg, arg), ThrOMP(lmp, THR_KSPACE) PPPM(lmp, narg, arg), ThrOMP(lmp, THR_KSPACE)
{ {
suffix_flag |= Suffix::OMP;
} }
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------

View File

@ -26,6 +26,7 @@
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -42,7 +43,10 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
PPPMTIP4POMP::PPPMTIP4POMP(LAMMPS *lmp, int narg, char **arg) : PPPMTIP4POMP::PPPMTIP4POMP(LAMMPS *lmp, int narg, char **arg) :
PPPMOMP(lmp, narg, arg) {} PPPMOMP(lmp, narg, arg)
{
suffix_flag |= Suffix::OMP;
}
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */

View File

@ -42,8 +42,8 @@ using namespace MathConst;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
ThrOMP::ThrOMP(LAMMPS *ptr, int style) : lmp(ptr), fix(NULL), ThrOMP::ThrOMP(LAMMPS *ptr, int style)
thr_style(style), thr_error(0) : lmp(ptr), fix(NULL), thr_style(style), thr_error(0)
{ {
// register fix omp with this class // register fix omp with this class
int ifix = lmp->modify->find_fix("package_omp"); int ifix = lmp->modify->find_fix("package_omp");
@ -284,15 +284,24 @@ void ThrOMP::reduce_thr(void *style, const int eflag, const int vflag,
#pragma omp critical #pragma omp critical
#endif #endif
{ {
bond->energy += thr->eng_bond; if (eflag & 1) {
for (int i=0; i < 6; ++i) bond->energy += thr->eng_bond;
bond->virial[i] += thr->virial_bond[i]; thr->eng_bond = 0.0;
} }
if (eflag & 2) {
data_reduce_thr(&(bond->eatom[0]), nall, nthreads, 1, tid); if (vflag & 3) {
} for (int i=0; i < 6; ++i) {
if (vflag & 4) { bond->virial[i] += thr->virial_bond[i];
data_reduce_thr(&(bond->vatom[0][0]), nall, nthreads, 6, tid); thr->virial_bond[i] = 0.0;
}
}
if (eflag & 2) {
data_reduce_thr(&(bond->eatom[0]), nall, nthreads, 1, tid);
}
if (vflag & 4) {
data_reduce_thr(&(bond->vatom[0][0]), nall, nthreads, 6, tid);
}
} }
} }
break; break;
@ -305,15 +314,24 @@ void ThrOMP::reduce_thr(void *style, const int eflag, const int vflag,
#pragma omp critical #pragma omp critical
#endif #endif
{ {
angle->energy += thr->eng_angle; if (eflag & 1) {
for (int i=0; i < 6; ++i) angle->energy += thr->eng_angle;
angle->virial[i] += thr->virial_angle[i]; thr->eng_angle = 0.0;
} }
if (eflag & 2) {
data_reduce_thr(&(angle->eatom[0]), nall, nthreads, 1, tid); if (vflag & 3) {
} for (int i=0; i < 6; ++i) {
if (vflag & 4) { angle->virial[i] += thr->virial_angle[i];
data_reduce_thr(&(angle->vatom[0][0]), nall, nthreads, 6, tid); thr->virial_angle[i] = 0.0;
}
}
if (eflag & 2) {
data_reduce_thr(&(angle->eatom[0]), nall, nthreads, 1, tid);
}
if (vflag & 4) {
data_reduce_thr(&(angle->vatom[0][0]), nall, nthreads, 6, tid);
}
} }
} }
break; break;
@ -326,15 +344,24 @@ void ThrOMP::reduce_thr(void *style, const int eflag, const int vflag,
#pragma omp critical #pragma omp critical
#endif #endif
{ {
dihedral->energy += thr->eng_dihed; if (eflag & 1) {
for (int i=0; i < 6; ++i) dihedral->energy += thr->eng_dihed;
dihedral->virial[i] += thr->virial_dihed[i]; thr->eng_dihed = 0.0;
} }
if (eflag & 2) {
data_reduce_thr(&(dihedral->eatom[0]), nall, nthreads, 1, tid); if (vflag & 3) {
} for (int i=0; i < 6; ++i) {
if (vflag & 4) { dihedral->virial[i] += thr->virial_dihed[i];
data_reduce_thr(&(dihedral->vatom[0][0]), nall, nthreads, 6, tid); thr->virial_dihed[i] = 0.0;
}
}
if (eflag & 2) {
data_reduce_thr(&(dihedral->eatom[0]), nall, nthreads, 1, tid);
}
if (vflag & 4) {
data_reduce_thr(&(dihedral->vatom[0][0]), nall, nthreads, 6, tid);
}
} }
} }
break; break;
@ -352,22 +379,28 @@ void ThrOMP::reduce_thr(void *style, const int eflag, const int vflag,
dihedral->energy += thr->eng_dihed; dihedral->energy += thr->eng_dihed;
pair->eng_vdwl += thr->eng_vdwl; pair->eng_vdwl += thr->eng_vdwl;
pair->eng_coul += thr->eng_coul; pair->eng_coul += thr->eng_coul;
thr->eng_dihed = 0.0;
thr->eng_vdwl = 0.0;
thr->eng_coul = 0.0;
} }
if (vflag & 3) { if (vflag & 3) {
for (int i=0; i < 6; ++i) { for (int i=0; i < 6; ++i) {
dihedral->virial[i] += thr->virial_dihed[i]; dihedral->virial[i] += thr->virial_dihed[i];
pair->virial[i] += thr->virial_pair[i]; pair->virial[i] += thr->virial_pair[i];
thr->virial_dihed[i] = 0.0;
thr->virial_pair[i] = 0.0;
} }
} }
}
if (eflag & 2) { if (eflag & 2) {
data_reduce_thr(&(dihedral->eatom[0]), nall, nthreads, 1, tid); data_reduce_thr(&(dihedral->eatom[0]), nall, nthreads, 1, tid);
data_reduce_thr(&(pair->eatom[0]), nall, nthreads, 1, tid); data_reduce_thr(&(pair->eatom[0]), nall, nthreads, 1, tid);
} }
if (vflag & 4) { if (vflag & 4) {
data_reduce_thr(&(dihedral->vatom[0][0]), nall, nthreads, 6, tid); data_reduce_thr(&(dihedral->vatom[0][0]), nall, nthreads, 6, tid);
data_reduce_thr(&(pair->vatom[0][0]), nall, nthreads, 6, tid); data_reduce_thr(&(pair->vatom[0][0]), nall, nthreads, 6, tid);
}
} }
} }
break; break;
@ -380,15 +413,24 @@ void ThrOMP::reduce_thr(void *style, const int eflag, const int vflag,
#pragma omp critical #pragma omp critical
#endif #endif
{ {
improper->energy += thr->eng_imprp; if (eflag & 1) {
for (int i=0; i < 6; ++i) improper->energy += thr->eng_imprp;
improper->virial[i] += thr->virial_imprp[i]; thr->eng_imprp = 0.0;
} }
if (eflag & 2) {
data_reduce_thr(&(improper->eatom[0]), nall, nthreads, 1, tid); if (vflag & 3) {
} for (int i=0; i < 6; ++i) {
if (vflag & 4) { improper->virial[i] += thr->virial_imprp[i];
data_reduce_thr(&(improper->vatom[0][0]), nall, nthreads, 6, tid); thr->virial_imprp[i] = 0.0;
}
}
if (eflag & 2) {
data_reduce_thr(&(improper->eatom[0]), nall, nthreads, 1, tid);
}
if (vflag & 4) {
data_reduce_thr(&(improper->vatom[0][0]), nall, nthreads, 6, tid);
}
} }
} }
break; break;

View File

@ -19,6 +19,7 @@
#include "math_const.h" #include "math_const.h"
#include "memory.h" #include "memory.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
using namespace MathConst; using namespace MathConst;
@ -30,6 +31,7 @@ Angle::Angle(LAMMPS *lmp) : Pointers(lmp)
energy = 0.0; energy = 0.0;
allocated = 0; allocated = 0;
suffix_flag = Suffix::NONE;
maxeatom = maxvatom = 0; maxeatom = maxvatom = 0;
eatom = NULL; eatom = NULL;

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -21,6 +21,7 @@ namespace LAMMPS_NS {
class Angle : protected Pointers { class Angle : protected Pointers {
friend class ThrOMP; friend class ThrOMP;
friend class FixOMP;
public: public:
int allocated; int allocated;
int *setflag; int *setflag;
@ -42,6 +43,8 @@ class Angle : protected Pointers {
virtual double memory_usage(); virtual double memory_usage();
protected: protected:
int suffix_flag; // suffix compatibility flag
int evflag; int evflag;
int eflag_either,eflag_global,eflag_atom; int eflag_either,eflag_global,eflag_atom;
int vflag_either,vflag_global,vflag_atom; int vflag_either,vflag_global,vflag_atom;

View File

@ -18,6 +18,7 @@
#include "force.h" #include "force.h"
#include "memory.h" #include "memory.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
@ -31,6 +32,7 @@ Bond::Bond(LAMMPS *lmp) : Pointers(lmp)
energy = 0.0; energy = 0.0;
allocated = 0; allocated = 0;
suffix_flag = Suffix::NONE;
maxeatom = maxvatom = 0; maxeatom = maxvatom = 0;
eatom = NULL; eatom = NULL;

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -21,6 +21,7 @@ namespace LAMMPS_NS {
class Bond : protected Pointers { class Bond : protected Pointers {
friend class ThrOMP; friend class ThrOMP;
friend class FixOMP;
public: public:
int allocated; int allocated;
int *setflag; int *setflag;
@ -42,6 +43,8 @@ class Bond : protected Pointers {
virtual double memory_usage(); virtual double memory_usage();
protected: protected:
int suffix_flag; // suffix compatibility flag
int evflag; int evflag;
int eflag_either,eflag_global,eflag_atom; int eflag_either,eflag_global,eflag_atom;
int vflag_either,vflag_global,vflag_atom; int vflag_either,vflag_global,vflag_atom;

View File

@ -19,6 +19,7 @@
#include "pair.h" #include "pair.h"
#include "memory.h" #include "memory.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -20,8 +20,8 @@
namespace LAMMPS_NS { namespace LAMMPS_NS {
class Dihedral : protected Pointers { class Dihedral : protected Pointers {
friend class ThrOMP; friend class ThrOMP;
friend class FixOMP;
public: public:
int allocated; int allocated;
int *setflag; int *setflag;
@ -41,6 +41,8 @@ class Dihedral : protected Pointers {
virtual double memory_usage(); virtual double memory_usage();
protected: protected:
int suffix_flag; // suffix compatibility flag
int evflag; int evflag;
int eflag_either,eflag_global,eflag_atom; int eflag_either,eflag_global,eflag_atom;
int vflag_either,vflag_global,vflag_atom; int vflag_either,vflag_global,vflag_atom;

View File

@ -18,6 +18,7 @@
#include "force.h" #include "force.h"
#include "memory.h" #include "memory.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
@ -28,6 +29,7 @@ Improper::Improper(LAMMPS *lmp) : Pointers(lmp)
energy = 0.0; energy = 0.0;
allocated = 0; allocated = 0;
suffix_flag = Suffix::NONE;
maxeatom = maxvatom = 0; maxeatom = maxvatom = 0;
eatom = NULL; eatom = NULL;

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -21,6 +21,7 @@ namespace LAMMPS_NS {
class Improper : protected Pointers { class Improper : protected Pointers {
friend class ThrOMP; friend class ThrOMP;
friend class FixOMP;
public: public:
int allocated; int allocated;
int *setflag; int *setflag;
@ -39,6 +40,8 @@ class Improper : protected Pointers {
virtual double memory_usage(); virtual double memory_usage();
protected: protected:
int suffix_flag; // suffix compatibility flag
int evflag; int evflag;
int eflag_either,eflag_global,eflag_atom; int eflag_either,eflag_global,eflag_atom;
int vflag_either,vflag_global,vflag_atom; int vflag_either,vflag_global,vflag_atom;

View File

@ -19,6 +19,7 @@
#include "force.h" #include "force.h"
#include "memory.h" #include "memory.h"
#include "error.h" #include "error.h"
#include "suffix.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
@ -32,6 +33,7 @@ KSpace::KSpace(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
gewaldflag = 0; gewaldflag = 0;
slabflag = 0; slabflag = 0;
slab_volfactor = 1; slab_volfactor = 1;
suffix_flag = Suffix::NONE;
accuracy_absolute = -1.0; accuracy_absolute = -1.0;
two_charge_force = force->qqr2e * two_charge_force = force->qqr2e *

View File

@ -1,4 +1,4 @@
/* ---------------------------------------------------------------------- /* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
@ -20,6 +20,7 @@ namespace LAMMPS_NS {
class KSpace : protected Pointers { class KSpace : protected Pointers {
friend class ThrOMP; friend class ThrOMP;
friend class FixOMP;
public: public:
double energy; // accumulated energy double energy; // accumulated energy
double virial[6]; // accumlated virial double virial[6]; // accumlated virial
@ -43,6 +44,7 @@ class KSpace : protected Pointers {
int gridflag,gewaldflag; int gridflag,gewaldflag;
int order; int order;
int slabflag; int slabflag;
int suffix_flag; // suffix compatibility flag
double scale; double scale;
double slab_volfactor; double slab_volfactor;