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

Defines

#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, REDUCTION_VIRIAL_NORMAL,
  REDUCTION_VIRIAL_NBOND, REDUCTION_VIRIAL_SLOW, REDUCTION_VIRIAL_AMD_DIHE, REDUCTION_INT_VIRIAL_NORMAL,
  REDUCTION_INT_VIRIAL_NBOND, REDUCTION_INT_VIRIAL_SLOW, REDUCTION_EXT_FORCE_NORMAL, REDUCTION_EXT_FORCE_NBOND,
  REDUCTION_EXT_FORCE_SLOW, REDUCTION_MOMENTUM, REDUCTION_MOMENTUM_SQUARED, REDUCTION_ANGULAR_MOMENTUM,
  REDUCTION_HALFSTEP_MOMENTUM, REDUCTION_MOMENTUM_MASS, REDUCTION_MIN_F_DOT_F, REDUCTION_MIN_F_DOT_V,
  REDUCTION_MIN_V_DOT_V, REDUCTION_MIN_HUGE_COUNT, REDUCTION_PAIR_VDW_FORCE, REDUCTION_PAIR_ELECT_FORCE,
  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, MULTIGRATOR_REDUCTION_MOMENTUM_SQUARED, 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
}


Define 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 TholeElem::submitReductionData(), ComputeNonbondedUtil::submitReductionData(), ExclElem::submitReductionData(), ImproperElem::submitReductionData(), GromacsPairElem::submitReductionData(), DihedralElem::submitReductionData(), CrosstermElem::submitReductionData(), BondElem::submitReductionData(), AnisoElem::submitReductionData(), and AngleElem::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 ComputeStir::doForce(), ComputeRestraints::doForce(), ComputeGridForce::doForce(), ComputeEField::doForce(), ComputeConsTorque::doForce(), ComputeConsForce::doForce(), CudaComputeNonbonded::finishReductions(), ComputeNonbondedCUDA::finishReductions(), Sequencer::hardWallDrude(), Sequencer::multigratorPressure(), Sequencer::multigratorTemperature(), Sequencer::rattle1(), ComputeGlobal::recvResults(), Sequencer::submitHalfstep(), 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,
 ) 

Value:

R->item( RL ## _X ) += D.x; \
  R->item( RL ## _Y ) += D.y; \
  R->item( RL ## _Z ) += D.z

Definition at line 27 of file ReductionMgr.h.

Referenced by ComputeStir::doForce(), ComputeRestraints::doForce(), ComputeGridForce::doForce(), ComputeEField::doForce(), ComputeConsTorque::doForce(), ComputeConsForce::doForce(), Sequencer::multigratorPressure(), ComputeGlobal::recvResults(), Sequencer::submitMomentum(), and Sequencer::submitReductions().

#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)

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 )

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

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.

00170      {
00171   REDUCTIONS_BASIC,
00172   REDUCTIONS_MINIMIZER,
00173   REDUCTIONS_PPROF_BONDED,
00174   REDUCTIONS_PPROF_NONBONDED,
00175   REDUCTIONS_PPROF_INTERNAL,
00176   REDUCTIONS_PPROF_KINETIC,
00177   REDUCTIONS_AMD,   // for accelMD
00178   REDUCTIONS_USER1,
00179   REDUCTIONS_USER2,
00180   REDUCTIONS_MULTIGRATOR,
00181  // semaphore (must be last)
00182   REDUCTION_MAX_SET_ID
00183 };

enum MultigratorReductionTag

Enumerator:
MULTIGRATOR_REDUCTION_KINETIC_ENERGY 
MULTIGRATOR_REDUCTION_MOMENTUM_SQUARED 
MULTIGRATOR_REDUCTION_MAX_RESERVED 

Definition at line 162 of file ReductionMgr.h.

enum ReductionTag

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 
REDUCTION_VIRIAL_NORMAL 
REDUCTION_VIRIAL_NBOND 
REDUCTION_VIRIAL_SLOW 
REDUCTION_VIRIAL_AMD_DIHE 
REDUCTION_INT_VIRIAL_NORMAL 
REDUCTION_INT_VIRIAL_NBOND 
REDUCTION_INT_VIRIAL_SLOW 
REDUCTION_EXT_FORCE_NORMAL 
REDUCTION_EXT_FORCE_NBOND 
REDUCTION_EXT_FORCE_SLOW 
REDUCTION_MOMENTUM 
REDUCTION_MOMENTUM_SQUARED 
REDUCTION_ANGULAR_MOMENTUM 
REDUCTION_HALFSTEP_MOMENTUM 
REDUCTION_MOMENTUM_MASS 
REDUCTION_MIN_F_DOT_F 
REDUCTION_MIN_F_DOT_V 
REDUCTION_MIN_V_DOT_V 
REDUCTION_MIN_HUGE_COUNT 
REDUCTION_PAIR_VDW_FORCE 
REDUCTION_PAIR_ELECT_FORCE 
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.

00071 {
00072  // energy
00073   REDUCTION_ANGLE_ENERGY,
00074   REDUCTION_BOND_ENERGY,
00075   REDUCTION_BONDED_ENERGY_F,
00076   REDUCTION_BONDED_ENERGY_TI_1,
00077   REDUCTION_BONDED_ENERGY_TI_2,
00078   REDUCTION_DIHEDRAL_ENERGY,
00079   REDUCTION_ELECT_ENERGY,
00080   REDUCTION_ELECT_ENERGY_F,
00081   REDUCTION_ELECT_ENERGY_TI_1,
00082   REDUCTION_ELECT_ENERGY_TI_2,
00083   REDUCTION_ELECT_ENERGY_SLOW,
00084   REDUCTION_ELECT_ENERGY_SLOW_F,
00085   REDUCTION_ELECT_ENERGY_SLOW_TI_1,
00086   REDUCTION_ELECT_ENERGY_SLOW_TI_2,
00087   REDUCTION_ELECT_ENERGY_PME_TI_1,
00088   REDUCTION_ELECT_ENERGY_PME_TI_2,
00089   REDUCTION_IMPROPER_ENERGY,
00090   // REDUCTION_THOLE_ENERGY - Drude model "correction" to electrostatic energy
00091   // REDUCTION_ANISO_ENERGY - Drude model add into bond energy
00092   REDUCTION_CROSSTERM_ENERGY,
00093   REDUCTION_HALFSTEP_KINETIC_ENERGY,
00094   REDUCTION_CENTERED_KINETIC_ENERGY,
00095   REDUCTION_INT_HALFSTEP_KINETIC_ENERGY,
00096   REDUCTION_INT_CENTERED_KINETIC_ENERGY,
00097   REDUCTION_DRUDECOM_CENTERED_KINETIC_ENERGY,
00098   REDUCTION_DRUDEBOND_CENTERED_KINETIC_ENERGY,
00099   REDUCTION_LJ_ENERGY,
00100   REDUCTION_LJ_ENERGY_F,
00101   REDUCTION_LJ_ENERGY_F_LEFT,
00102   REDUCTION_LJ_ENERGY_TI_1,
00103   REDUCTION_LJ_ENERGY_TI_2,
00104   REDUCTION_BC_ENERGY,
00105   REDUCTION_MISC_ENERGY,
00106   REDUCTION_GRO_LJ_ENERGY,
00107   REDUCTION_GRO_GAUSS_ENERGY,
00108   REDUCTION_GO_NATIVE_ENERGY,
00109   REDUCTION_GO_NONNATIVE_ENERGY,
00110  // pressure
00111   TENSOR(REDUCTION_VIRIAL_NORMAL),
00112   TENSOR(REDUCTION_VIRIAL_NBOND),
00113   TENSOR(REDUCTION_VIRIAL_SLOW),
00114   TENSOR(REDUCTION_VIRIAL_AMD_DIHE),
00115 #ifdef ALTVIRIAL
00116   TENSOR(REDUCTION_ALT_VIRIAL_NORMAL),
00117   TENSOR(REDUCTION_ALT_VIRIAL_NBOND),
00118   TENSOR(REDUCTION_ALT_VIRIAL_SLOW),
00119 #endif
00120   TENSOR(REDUCTION_INT_VIRIAL_NORMAL),
00121   TENSOR(REDUCTION_INT_VIRIAL_NBOND),
00122   TENSOR(REDUCTION_INT_VIRIAL_SLOW),
00123   VECTOR(REDUCTION_EXT_FORCE_NORMAL),
00124   VECTOR(REDUCTION_EXT_FORCE_NBOND),
00125   VECTOR(REDUCTION_EXT_FORCE_SLOW),
00126  // momentum
00127   VECTOR(REDUCTION_MOMENTUM),
00128   TENSOR(REDUCTION_MOMENTUM_SQUARED),    // Multigrator
00129   VECTOR(REDUCTION_ANGULAR_MOMENTUM),
00130   VECTOR(REDUCTION_HALFSTEP_MOMENTUM),
00131   REDUCTION_MOMENTUM_MASS,
00132  // used for minimization
00133   REDUCTION_MIN_F_DOT_F,
00134   REDUCTION_MIN_F_DOT_V,
00135   REDUCTION_MIN_V_DOT_V,
00136   REDUCTION_MIN_HUGE_COUNT,
00137  // used for pair interaction calculations
00138   VECTOR(REDUCTION_PAIR_VDW_FORCE),
00139   VECTOR(REDUCTION_PAIR_ELECT_FORCE),
00140  // checksum
00141   REDUCTION_ATOM_CHECKSUM,
00142   REDUCTION_COMPUTE_CHECKSUM,
00143   REDUCTION_BOND_CHECKSUM,
00144   REDUCTION_ANGLE_CHECKSUM,
00145   REDUCTION_DIHEDRAL_CHECKSUM,
00146   REDUCTION_IMPROPER_CHECKSUM,
00147   REDUCTION_THOLE_CHECKSUM,  // Drude model
00148   REDUCTION_ANISO_CHECKSUM,  // Drude model
00149   REDUCTION_CROSSTERM_CHECKSUM,
00150   REDUCTION_GRO_LJ_CHECKSUM,
00151   REDUCTION_EXCLUSION_CHECKSUM,
00152 #ifdef NAMD_CUDA
00153   REDUCTION_EXCLUSION_CHECKSUM_CUDA,
00154 #endif
00155   REDUCTION_MARGIN_VIOLATIONS,
00156   REDUCTION_PAIRLIST_WARNINGS,
00157   REDUCTION_STRAY_CHARGE_ERRORS,
00158  // semaphore (must be last)
00159   REDUCTION_MAX_RESERVED
00160 } ReductionTag;


Generated on Sat Nov 18 01:17:17 2017 for NAMD by  doxygen 1.4.7