NAMD
Classes | Macros | Enumerations
ReductionMgr.h File Reference
#include "charm++.h"
#include "main.h"
#include "NamdTypes.h"
#include "BOCgroup.h"
#include "ProcessorPrivate.h"

Go to the source code of this file.

Classes

class  ReductionSetData
 
class  ReductionSet
 
class  ReductionMgr
 
class  SubmitReduction
 
class  RequireReduction
 

Macros

#define VECTOR(A)   A ## _X, A ## _Y, A ## _Z
 
#define TENSOR(A)
 
#define ADD_VECTOR(R, RL, D, DL)
 
#define ADD_VECTOR_OBJECT(R, RL, D)
 
#define ADD_TENSOR(R, RL, D, DL)
 
#define ADD_TENSOR_OBJECT(R, RL, D)
 
#define GET_VECTOR(O, R, A)
 
#define GET_TENSOR(O, R, A)
 
#define REDUCTION_MAX_CHILDREN   4
 

Enumerations

enum  ReductionTag {
  REDUCTION_ANGLE_ENERGY, REDUCTION_BOND_ENERGY, REDUCTION_BONDED_ENERGY_F, REDUCTION_BONDED_ENERGY_TI_1,
  REDUCTION_BONDED_ENERGY_TI_2, REDUCTION_DIHEDRAL_ENERGY, REDUCTION_ELECT_ENERGY, REDUCTION_ELECT_ENERGY_F,
  REDUCTION_ELECT_ENERGY_TI_1, REDUCTION_ELECT_ENERGY_TI_2, REDUCTION_ELECT_ENERGY_SLOW, REDUCTION_ELECT_ENERGY_SLOW_F,
  REDUCTION_ELECT_ENERGY_SLOW_TI_1, REDUCTION_ELECT_ENERGY_SLOW_TI_2, REDUCTION_ELECT_ENERGY_PME_TI_1, REDUCTION_ELECT_ENERGY_PME_TI_2,
  REDUCTION_IMPROPER_ENERGY, REDUCTION_CROSSTERM_ENERGY, REDUCTION_HALFSTEP_KINETIC_ENERGY, REDUCTION_CENTERED_KINETIC_ENERGY,
  REDUCTION_INT_HALFSTEP_KINETIC_ENERGY, REDUCTION_INT_CENTERED_KINETIC_ENERGY, REDUCTION_DRUDECOM_CENTERED_KINETIC_ENERGY, REDUCTION_DRUDEBOND_CENTERED_KINETIC_ENERGY,
  REDUCTION_LJ_ENERGY, REDUCTION_LJ_ENERGY_F, REDUCTION_LJ_ENERGY_F_LEFT, REDUCTION_LJ_ENERGY_TI_1,
  REDUCTION_LJ_ENERGY_TI_2, REDUCTION_BC_ENERGY, REDUCTION_MISC_ENERGY, REDUCTION_GRO_LJ_ENERGY,
  REDUCTION_GRO_GAUSS_ENERGY, REDUCTION_GO_NATIVE_ENERGY, REDUCTION_GO_NONNATIVE_ENERGY, TENSOR =(REDUCTION_VIRIAL_NORMAL),
  TENSOR =(REDUCTION_VIRIAL_NORMAL), TENSOR =(REDUCTION_VIRIAL_NORMAL), TENSOR =(REDUCTION_VIRIAL_NORMAL), TENSOR =(REDUCTION_VIRIAL_NORMAL),
  TENSOR =(REDUCTION_VIRIAL_NORMAL), TENSOR =(REDUCTION_VIRIAL_NORMAL), VECTOR =(REDUCTION_EXT_FORCE_NORMAL), VECTOR =(REDUCTION_EXT_FORCE_NORMAL),
  VECTOR =(REDUCTION_EXT_FORCE_NORMAL), VECTOR =(REDUCTION_EXT_FORCE_NORMAL), TENSOR =(REDUCTION_VIRIAL_NORMAL), VECTOR =(REDUCTION_EXT_FORCE_NORMAL),
  VECTOR =(REDUCTION_EXT_FORCE_NORMAL), REDUCTION_MOMENTUM_MASS, REDUCTION_MIN_F_DOT_F, REDUCTION_MIN_F_DOT_V,
  REDUCTION_MIN_V_DOT_V, REDUCTION_MIN_HUGE_COUNT, VECTOR =(REDUCTION_EXT_FORCE_NORMAL), VECTOR =(REDUCTION_EXT_FORCE_NORMAL),
  REDUCTION_ATOM_CHECKSUM, REDUCTION_COMPUTE_CHECKSUM, REDUCTION_BOND_CHECKSUM, REDUCTION_ANGLE_CHECKSUM,
  REDUCTION_DIHEDRAL_CHECKSUM, REDUCTION_IMPROPER_CHECKSUM, REDUCTION_THOLE_CHECKSUM, REDUCTION_ANISO_CHECKSUM,
  REDUCTION_CROSSTERM_CHECKSUM, REDUCTION_GRO_LJ_CHECKSUM, REDUCTION_EXCLUSION_CHECKSUM, REDUCTION_EXCLUSION_CHECKSUM_CUDA,
  REDUCTION_MARGIN_VIOLATIONS, REDUCTION_PAIRLIST_WARNINGS, REDUCTION_STRAY_CHARGE_ERRORS, REDUCTION_MAX_RESERVED
}
 
enum  MultigratorReductionTag { MULTIGRATOR_REDUCTION_KINETIC_ENERGY, TENSOR =(REDUCTION_VIRIAL_NORMAL), MULTIGRATOR_REDUCTION_MAX_RESERVED }
 
enum  {
  REDUCTIONS_BASIC, REDUCTIONS_MINIMIZER, REDUCTIONS_PPROF_BONDED, REDUCTIONS_PPROF_NONBONDED,
  REDUCTIONS_PPROF_INTERNAL, REDUCTIONS_PPROF_KINETIC, REDUCTIONS_AMD, REDUCTIONS_USER1,
  REDUCTIONS_USER2, REDUCTIONS_MULTIGRATOR, REDUCTION_MAX_SET_ID
}
 

Macro Definition Documentation

#define ADD_TENSOR (   R,
  RL,
  D,
  DL 
)
Value:
R->item( RL ## _XX) += D[ DL ## _XX ]; \
R->item( RL ## _XY) += D[ DL ## _XY ]; \
R->item( RL ## _XZ) += D[ DL ## _XZ ]; \
R->item( RL ## _YX) += D[ DL ## _YX ]; \
R->item( RL ## _YY) += D[ DL ## _YY ]; \
R->item( RL ## _YZ) += D[ DL ## _YZ ]; \
R->item( RL ## _ZX) += D[ DL ## _ZX ]; \
R->item( RL ## _ZY) += D[ DL ## _ZY ]; \
R->item( RL ## _ZZ) += D[ DL ## _ZZ ]

Definition at line 32 of file ReductionMgr.h.

Referenced by AngleElem::submitReductionData(), ImproperElem::submitReductionData(), CrosstermElem::submitReductionData(), DihedralElem::submitReductionData(), BondElem::submitReductionData(), AnisoElem::submitReductionData(), TholeElem::submitReductionData(), ExclElem::submitReductionData(), GromacsPairElem::submitReductionData(), and ComputeNonbondedUtil::submitReductionData().

#define ADD_TENSOR_OBJECT (   R,
  RL,
 
)
Value:
R->item( RL ## _XX) += D.xx; \
R->item( RL ## _XY) += D.xy; \
R->item( RL ## _XZ) += D.xz; \
R->item( RL ## _YX) += D.yx; \
R->item( RL ## _YY) += D.yy; \
R->item( RL ## _YZ) += D.yz; \
R->item( RL ## _ZX) += D.zx; \
R->item( RL ## _ZY) += D.zy; \
R->item( RL ## _ZZ) += D.zz

Definition at line 43 of file ReductionMgr.h.

Referenced by ComputeConsForce::doForce(), ComputeEField::doForce(), ComputeConsTorque::doForce(), ComputeStir::doForce(), ComputeGridForce::doForce(), ComputeRestraints::doForce(), ComputeNonbondedCUDA::finishReductions(), CudaComputeNonbonded::finishReductions(), Sequencer::hardWallDrude(), Sequencer::multigratorPressure(), Sequencer::multigratorTemperature(), Sequencer::rattle1(), ComputeGlobal::recvResults(), Sequencer::submitHalfstep(), Sequencer::submitMinimizeReductions(), and Sequencer::submitReductions().

#define ADD_VECTOR (   R,
  RL,
  D,
  DL 
)
Value:
R->item( RL ## _X ) += D[ DL ## _X ]; \
R->item( RL ## _Y ) += D[ DL ## _Y ]; \
R->item( RL ## _Z ) += D[ DL ## _Z ]

Definition at line 22 of file ReductionMgr.h.

Referenced by ComputeNonbondedUtil::submitReductionData().

#define ADD_VECTOR_OBJECT (   R,
  RL,
 
)
#define GET_TENSOR (   O,
  R,
  A 
)
Value:
O.xx = R->item( A ## _XX); \
O.xy = R->item( A ## _XY); \
O.xz = R->item( A ## _XZ); \
O.yx = R->item( A ## _YX); \
O.yy = R->item( A ## _YY); \
O.yz = R->item( A ## _YZ); \
O.zx = R->item( A ## _ZX); \
O.zy = R->item( A ## _ZY); \
O.zz = R->item( A ## _ZZ)
const BigReal A

Definition at line 59 of file ReductionMgr.h.

Referenced by Controller::multigratorPressure(), Controller::multigratorTemperature(), Controller::receivePressure(), and Controller::rescaleaccelMD().

#define GET_VECTOR (   O,
  R,
  A 
)
Value:
O.x = R->item( A ## _X ); \
O.y = R->item( A ## _Y ); \
O.z = R->item( A ## _Z )
const BigReal A

Definition at line 54 of file ReductionMgr.h.

Referenced by Controller::multigratorPressure(), Controller::printEnergies(), and Controller::receivePressure().

#define REDUCTION_MAX_CHILDREN   4

Definition at line 186 of file ReductionMgr.h.

Referenced by ReductionMgr::ReductionMgr().

#define TENSOR (   A)
Value:
A ## _XX, A ## _XY, A ## _XZ, \
A ## _YX, A ## _YY, A ## _YZ, \
A ## _ZX, A ## _ZY, A ## _ZZ
const BigReal A

Definition at line 18 of file ReductionMgr.h.

#define VECTOR (   A)    A ## _X, A ## _Y, A ## _Z

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 17 of file ReductionMgr.h.

Enumeration Type Documentation

anonymous enum
Enumerator
REDUCTIONS_BASIC 
REDUCTIONS_MINIMIZER 
REDUCTIONS_PPROF_BONDED 
REDUCTIONS_PPROF_NONBONDED 
REDUCTIONS_PPROF_INTERNAL 
REDUCTIONS_PPROF_KINETIC 
REDUCTIONS_AMD 
REDUCTIONS_USER1 
REDUCTIONS_USER2 
REDUCTIONS_MULTIGRATOR 
REDUCTION_MAX_SET_ID 

Definition at line 170 of file ReductionMgr.h.

Enumerator
MULTIGRATOR_REDUCTION_KINETIC_ENERGY 
TENSOR 
MULTIGRATOR_REDUCTION_MAX_RESERVED 

Definition at line 162 of file ReductionMgr.h.

162  {
164  TENSOR(MULTIGRATOR_REDUCTION_MOMENTUM_SQUARED),
165  // semaphore
MultigratorReductionTag
Definition: ReductionMgr.h:162
#define TENSOR(A)
Definition: ReductionMgr.h:18
Enumerator
REDUCTION_ANGLE_ENERGY 
REDUCTION_BOND_ENERGY 
REDUCTION_BONDED_ENERGY_F 
REDUCTION_BONDED_ENERGY_TI_1 
REDUCTION_BONDED_ENERGY_TI_2 
REDUCTION_DIHEDRAL_ENERGY 
REDUCTION_ELECT_ENERGY 
REDUCTION_ELECT_ENERGY_F 
REDUCTION_ELECT_ENERGY_TI_1 
REDUCTION_ELECT_ENERGY_TI_2 
REDUCTION_ELECT_ENERGY_SLOW 
REDUCTION_ELECT_ENERGY_SLOW_F 
REDUCTION_ELECT_ENERGY_SLOW_TI_1 
REDUCTION_ELECT_ENERGY_SLOW_TI_2 
REDUCTION_ELECT_ENERGY_PME_TI_1 
REDUCTION_ELECT_ENERGY_PME_TI_2 
REDUCTION_IMPROPER_ENERGY 
REDUCTION_CROSSTERM_ENERGY 
REDUCTION_HALFSTEP_KINETIC_ENERGY 
REDUCTION_CENTERED_KINETIC_ENERGY 
REDUCTION_INT_HALFSTEP_KINETIC_ENERGY 
REDUCTION_INT_CENTERED_KINETIC_ENERGY 
REDUCTION_DRUDECOM_CENTERED_KINETIC_ENERGY 
REDUCTION_DRUDEBOND_CENTERED_KINETIC_ENERGY 
REDUCTION_LJ_ENERGY 
REDUCTION_LJ_ENERGY_F 
REDUCTION_LJ_ENERGY_F_LEFT 
REDUCTION_LJ_ENERGY_TI_1 
REDUCTION_LJ_ENERGY_TI_2 
REDUCTION_BC_ENERGY 
REDUCTION_MISC_ENERGY 
REDUCTION_GRO_LJ_ENERGY 
REDUCTION_GRO_GAUSS_ENERGY 
REDUCTION_GO_NATIVE_ENERGY 
REDUCTION_GO_NONNATIVE_ENERGY 
TENSOR 
TENSOR 
TENSOR 
TENSOR 
TENSOR 
TENSOR 
TENSOR 
VECTOR 
VECTOR 
VECTOR 
VECTOR 
TENSOR 
VECTOR 
VECTOR 
REDUCTION_MOMENTUM_MASS 
REDUCTION_MIN_F_DOT_F 
REDUCTION_MIN_F_DOT_V 
REDUCTION_MIN_V_DOT_V 
REDUCTION_MIN_HUGE_COUNT 
VECTOR 
VECTOR 
REDUCTION_ATOM_CHECKSUM 
REDUCTION_COMPUTE_CHECKSUM 
REDUCTION_BOND_CHECKSUM 
REDUCTION_ANGLE_CHECKSUM 
REDUCTION_DIHEDRAL_CHECKSUM 
REDUCTION_IMPROPER_CHECKSUM 
REDUCTION_THOLE_CHECKSUM 
REDUCTION_ANISO_CHECKSUM 
REDUCTION_CROSSTERM_CHECKSUM 
REDUCTION_GRO_LJ_CHECKSUM 
REDUCTION_EXCLUSION_CHECKSUM 
REDUCTION_EXCLUSION_CHECKSUM_CUDA 
REDUCTION_MARGIN_VIOLATIONS 
REDUCTION_PAIRLIST_WARNINGS 
REDUCTION_STRAY_CHARGE_ERRORS 
REDUCTION_MAX_RESERVED 

Definition at line 70 of file ReductionMgr.h.

71 {
72  // energy
90  // REDUCTION_THOLE_ENERGY - Drude model "correction" to electrostatic energy
91  // REDUCTION_ANISO_ENERGY - Drude model add into bond energy
110  // pressure
111  TENSOR(REDUCTION_VIRIAL_NORMAL),
112  TENSOR(REDUCTION_VIRIAL_NBOND),
113  TENSOR(REDUCTION_VIRIAL_SLOW),
114  TENSOR(REDUCTION_VIRIAL_AMD_DIHE),
115 #ifdef ALTVIRIAL
116  TENSOR(REDUCTION_ALT_VIRIAL_NORMAL),
117  TENSOR(REDUCTION_ALT_VIRIAL_NBOND),
118  TENSOR(REDUCTION_ALT_VIRIAL_SLOW),
119 #endif
120  TENSOR(REDUCTION_INT_VIRIAL_NORMAL),
121  TENSOR(REDUCTION_INT_VIRIAL_NBOND),
122  TENSOR(REDUCTION_INT_VIRIAL_SLOW),
123  VECTOR(REDUCTION_EXT_FORCE_NORMAL),
124  VECTOR(REDUCTION_EXT_FORCE_NBOND),
125  VECTOR(REDUCTION_EXT_FORCE_SLOW),
126  // momentum
127  VECTOR(REDUCTION_MOMENTUM),
128  TENSOR(REDUCTION_MOMENTUM_SQUARED), // Multigrator
129  VECTOR(REDUCTION_ANGULAR_MOMENTUM),
130  VECTOR(REDUCTION_HALFSTEP_MOMENTUM),
132  // used for minimization
137  // used for pair interaction calculations
138  VECTOR(REDUCTION_PAIR_VDW_FORCE),
139  VECTOR(REDUCTION_PAIR_ELECT_FORCE),
140  // checksum
147  REDUCTION_THOLE_CHECKSUM, // Drude model
148  REDUCTION_ANISO_CHECKSUM, // Drude model
152 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
154 #endif
158  // semaphore (must be last)
160 } ReductionTag;
#define TENSOR(A)
Definition: ReductionMgr.h:18
ReductionTag
Definition: ReductionMgr.h:70
#define VECTOR(A)
Definition: ReductionMgr.h:17