Tinker9 70bd052 (Thu Nov 9 12:11:35 2023 -0800)
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
tinker Namespace Reference

Namespaces

namespace  d
 
namespace  g
 Global handles for the GPU runtime libraries.
 
namespace  v1
 

Classes

class  AnisoBaroDevice
 
class  BasicBarostat
 
class  BasicIntegrator
 
class  BasicPropagator
 The interface class of a Verlet or an RESPA-Verlet MD step. More...
 
class  BasicThermostat
 
class  BerendsenBarostat
 
struct  Box
 
struct  BufferTraits
 
struct  BufferTraits< float, Nincr >
 
class  BussiThermostat
 
struct  calc
 Bitmasks for MD. More...
 
class  CrdReader
 
class  CrdWriter
 
class  darray
 Device array. More...
 
struct  DeviceAllocator
 
struct  DeviceAttribute
 Device attributes. More...
 
struct  double2
 
struct  double3
 
struct  double4
 
class  dvector
 
struct  EnableEnumBitMask
 Direct mathematical calculation of enum class is prohibited in C++. More...
 
struct  EnableEnumBitMask< Nbl >
 
struct  EnableEnumBitMask< Platform >
 
struct  EnableEnumBitMask< ResourceOperation >
 
class  FatalError
 Errors and exceptions that we do not intend to fix or handle. More...
 
struct  FFTPlan
 FFT plan. More...
 
struct  float2
 
struct  float3
 
struct  float4
 
class  FortranStringView
 Reference to the non-NULL-terminated Fortran strings. Provides a few std::string-style methods to handle the fortran strings. More...
 
class  GenericUnit
 Resource handle. Analogous to Fortran i/o unit represented by a signed integer. More...
 
struct  GenericUnitAlloc
 
struct  GenericUnitAlloc< GenericUnitVersion::DISABLE_ON_DEVICE >
 
struct  GenericUnitAlloc< GenericUnitVersion::ENABLE_ON_DEVICE >
 
struct  Group
 Partitioning of system into atom groups. More...
 
struct  int2
 
struct  int3
 
struct  int4
 
class  IntegratorStaticData
 
class  IsoBaroDevice
 
class  LeapFrogLPIntegrator
 
struct  LocalFrame
 Local axis type and x,y,z-axis defining atoms for each multipole site. More...
 
class  LogVDevice
 
class  LP22Barostat
 
class  LP22Integrator
 
struct  Molecule
 Individual molecules in current system. More...
 
class  MonteCarloBarostat
 
struct  NBList
 Verlet list: pairwise neighbor list indices and storage. More...
 
class  Nhc06Barostat
 
class  Nhc06Integrator
 
class  Nhc06Thermostat
 
class  Nhc96Integrator
 
class  NhcDevice
 Applies a velocity correction as needed for the Nose-Hoover Chains at the half time step. More...
 
struct  OpLogicOr
 
struct  OpPlus
 
struct  PairMPoleGrad
 Components of the pairwise multipole electrostatic gradient between atoms i and k, where i is less than k. More...
 
struct  PairPolarGrad
 
struct  PairRepelGrad
 
class  PbcMono
 
class  PbcOct
 
class  PbcOrtho
 
class  PbcTri
 
class  PbcUnbound
 
struct  PME
 Particle mesh ewald girds and parameters. More...
 
struct  PtrTrait
 
struct  PtrTrait< T * >
 
struct  PtrTrait< T(*)[N]>
 
class  ResourceManagement
 Resource management. Allocates resources in the object constructor and deallocates resources in the object destructor. More...
 
class  RespaDevice
 
class  RespaIntegrator
 
class  Spatial
 
class  TestFile
 Writes a file to disk in its constructor and removes the file in its destructor, unless the file is set to be kept. More...
 
class  TestReference
 Reads reference values from a text file. More...
 
class  TestRemoveFileOnExit
 Removes the file in its destructor as necessary. More...
 
class  Text
 Plain ascii text stored by lines. More...
 
class  ThrustCache
 Device memory cache (allocator) for the Thrust Library. More...
 
class  VerletDevice
 
class  VerletIntegrator
 

Typedefs

typedef BufferTraits< int, 1 > CountBufferTraits
 
typedef BufferTraits< e_prec, 1 > EnergyBufferTraits
 
typedef BufferTraits< v_prec, 6 > VirialBufferTraits
 
typedef CountBufferTraits::type * CountBuffer
 
typedef EnergyBufferTraits::type * EnergyBuffer
 
typedef VirialBufferTraits::type(* VirialBuffer)[VirialBufferTraits::value]
 
typedef GenericUnit< NBList, GenericUnitVersion::ENABLE_ON_DEVICE > NBListUnit
 
using PMEUnit = GenericUnit< PME, GenericUnitVersion::ENABLE_ON_DEVICE >
 
typedef unsigned long long fixed
 
typedef float real
 
typedef double mixed
 
typedef mixed time_prec
 Floating-point type for time. More...
 
typedef mixed T_prec
 Floating-point type for temperature. More...
 
typedef mixed vel_prec
 Floating-point type for velocities. More...
 
typedef mixed pos_prec
 Floating-point type for coordinates. More...
 
typedef real e_prec
 Floating-point type for the pairwise energy components. More...
 
typedef real v_prec
 Floating-point type for the pairwise virial components. More...
 
typedef real g_prec
 Floating-point type for the pairwise gradient components. More...
 
typedef mixed energy_prec
 Floating-point type for total energies. More...
 
typedef mixed virial_prec
 
typedef fixed grad_prec
 
typedef GenericUnit< Spatial, GenericUnitVersion::DISABLE_ON_DEVICE > SpatialUnit
 
typedef std::map< std::string, int > TimeScaleConfig
 
typedef GenericUnit< FFTPlan, GenericUnitVersion::DISABLE_ON_DEVICE > FFTPlanUnit
 
using FstrView = FortranStringView
 An alias of FortranStringView. More...
 
using RcOp = ResourceOperation
 
using RcMan = ResourceManagement
 Type alias. More...
 

Enumerations

enum class  BoxShape {
  BoxShape::UNBOUND , BoxShape::ORTHO , BoxShape::MONO , BoxShape::TRI ,
  BoxShape::OCT
}
 Shapes of the periodic box. More...
 
enum class  Bond : int { Bond::HARMONIC , Bond::MORSE }
 
enum class  Angle : int { Angle::IN_PLANE , Angle::HARMONIC , Angle::LINEAR , Angle::FOURIER }
 
enum class  OPBend : int { OPBend::WDC , OPBend::ALLINGER }
 
enum class  Vdw : int {
  Vdw::DECOUPLE = 0 , Vdw::ANNIHILATE = 1 , Vdw::ATOM_TYPE = 10 , Vdw::ATOM_CLASS = 11 ,
  Vdw::ARITHMETIC = 20 , Vdw::GEOMETRIC = 21 , Vdw::CUBIC_MEAN = 22 , Vdw::HHG = 23 ,
  Vdw::W_H = 24 , Vdw::LJ , Vdw::BUCK , Vdw::MM3HB ,
  Vdw::HAL , Vdw::GAUSS
}
 Constant flags for the VDW energy functions. More...
 
enum class  Nbl { Nbl::UNDEFINED = 0x00 , Nbl::DOUBLE_LOOP = 0x01 , Nbl::VERLET = 0x02 , Nbl::SPATIAL = 0x04 }
 
enum class  Potent {
  Potent::BOND , Potent::ANGLE , Potent::STRBND , Potent::UREY ,
  Potent::ANGANG , Potent::OPBEND , Potent::OPDIST , Potent::IMPROP ,
  Potent::IMPTORS , Potent::TORSION , Potent::PITORS , Potent::STRTOR ,
  Potent::ANGTOR , Potent::TORTOR , Potent::VDW , Potent::REPULS ,
  Potent::DISP , Potent::CHARGE , Potent::CHGDPL , Potent::DIPOLE ,
  Potent::MPOLE , Potent::POLAR , Potent::CHGTRN , Potent::RXNFLD ,
  Potent::SOLV , Potent::METAL , Potent::GEOM , Potent::EXTRA ,
  Potent::CHGFLX , Potent::MUTATE
}
 
enum class  CrdFormat { NONE , TXYZ1 , TXYZ2_PBC , DCD }
 
enum class  Switch {
  Switch::DEFAULT , Switch::VDW , Switch::REPULS , Switch::DISP ,
  Switch::CHARGE , Switch::CHGDPL , Switch::DIPOLE , Switch::MPOLE ,
  Switch::CHGTRN , Switch::EWALD , Switch::DEWALD , Switch::USOLVE ,
  Switch::GKV , Switch::GKSA
}
 
enum  {
  MPL_PME_0 = 0 , MPL_PME_X = 1 , MPL_PME_Y = 2 , MPL_PME_Z = 3 ,
  MPL_PME_XX = 4 , MPL_PME_YY = 5 , MPL_PME_ZZ = 6 , MPL_PME_XY = 7 ,
  MPL_PME_XZ = 8 , MPL_PME_YZ = 9 , MPL_TOTAL = 10 , MPL_PME_YX = MPL_PME_XY ,
  MPL_PME_ZX = MPL_PME_XZ , MPL_PME_ZY = MPL_PME_YZ , LFRM_NONE = 0 , LFRM_Z_ONLY = 1 ,
  LFRM_Z_THEN_X = 2 , LFRM_BISECTOR = 3 , LFRM_Z_BISECT = 4 , LFRM_3_FOLD = 5
}
 
enum class  UPred { NONE , GEAR , ASPC , LSQR }
 
enum class  Chgpen { NONE , GORDON1 , GORDON2 }
 
enum class  Chgtrn { Chgtrn::NONE , Chgtrn::SEPARATE , Chgtrn::COMBINED }
 
enum class  ExpolScr { NONE , S2U , S2 , G }
 
enum class  PropagatorEnum { PropagatorEnum::RESPA , PropagatorEnum::VERLET , PropagatorEnum::m_LOGV }
 
enum class  ThermostatEnum {
  ThermostatEnum::NONE , ThermostatEnum::ANDERSEN , ThermostatEnum::BERENDSEN , ThermostatEnum::BUSSI ,
  ThermostatEnum::NHC , ThermostatEnum::m_LEAPFROGLP , ThermostatEnum::m_LP2022 , ThermostatEnum::m_NHC1996 ,
  ThermostatEnum::m_NHC2006
}
 
enum class  BarostatEnum {
  BarostatEnum::NONE , BarostatEnum::BERENDSEN , BarostatEnum::BUSSI , BarostatEnum::LP2022 ,
  BarostatEnum::MONTECARLO , BarostatEnum::NHC2006 , BarostatEnum::m_LEAPFROGLP , BarostatEnum::m_LOGVISO ,
  BarostatEnum::m_LOGVANISO , BarostatEnum::m_NHC1996
}
 
enum class  IntegratorEnum {
  IntegratorEnum::BEEMAN , IntegratorEnum::RESPA , IntegratorEnum::VERLET , IntegratorEnum::LEAPFROGLP ,
  IntegratorEnum::LP2022 , IntegratorEnum::NHC1996 , IntegratorEnum::NHC2006
}
 
enum class  GenericUnitVersion { DISABLE_ON_DEVICE , ENABLE_ON_DEVICE }
 
enum class  Platform { Platform::UNKNOWN = 0x000 , Platform::ACC = 0x001 , Platform::CUDA = 0x002 }
 
enum class  ResourceOperation { ResourceOperation::DEALLOC = 0x001 , ResourceOperation::ALLOC = 0x002 , ResourceOperation::INIT = 0x004 }
 

Functions

double testGetEps (double epsSingle, double epsDouble)
 Returns tolerance eps depending on the predefined floating-point precision. More...
 
void testBeginWithArgs (int argc, const char **argv)
 Initializes the test. More...
 
void testEnd ()
 Ends the test. More...
 
void testMdInit (double t=0, double atm=0)
 Initializes MD in the test. More...
 
void xAnalyze (int, char **)
 Entry point of the analyze program. More...
 
void xBar (int, char **)
 Entry point of the bar program. More...
 
void xDynamic (int, char **)
 Entry point of the dynamic program. More...
 
void xHelp (int, char **)
 Entry point of the help program. More...
 
void xInfo (int, char **)
 Entry point of the info program. More...
 
void xMinimize (int, char **)
 Entry point of the minimize program. More...
 
void xTestgrad (int, char **)
 Entry point of the testgrad program. More...
 
void promo ()
 Writes a banner message. More...
 
void initial ()
 
void mechanic2 ()
 Sets up extra parameters and options in addition to the Fortran mechanic subroutine. More...
 
void initialize ()
 Sets up host and device environment. More...
 
void finish ()
 Cleans up host and device environment. More...
 
void nData (RcOp)
 
void massData (RcOp)
 
void xyzData (RcOp)
 
void copyPosToXyz ()
 
void copyPosToXyz (bool refreshNBList)
 
void bounds ()
 
void boxData (RcOp)
 Sets up box data on device. More...
 
void boxDataP1 (RcOp)
 Internal function used in the setup. More...
 
void boxExtent (double newExtent)
 
void boxSetCurrent (const Box &p)
 Sets the box by the input and updates the box on device. More...
 
void boxGetCurrent (Box &p)
 Copies the current PBC box to the output variable. More...
 
void boxSetCurrentRecip ()
 
void boxSetTinker (const Box &p)
 Updates the related PBC modules of Tinker by p. More...
 
void boxCopyin ()
 
void boxLattice (Box &p, BoxShape sh, double a, double b, double c, double alphaDeg, double betaDeg, double gammaDeg)
 Sets up the internal PBC data. Similar to Tinker lattice subroutine. More...
 
real boxVolume ()
 
__global__ void pcgUdirV1 (int n, const real *polarity, real(*udir)[3], const real(*field)[3])
 Calculates the direct induced dipoles 2b. More...
 
__global__ void pcgUdirV2 (int n, const real *polarity, real(*udir)[3], real(*udirp)[3], const real(*field)[3], const real(*fieldp)[3])
 Calculates the direct induced dipoles 2b. More...
 
__global__ void pcgRsd0V1 (int n, const real *polarity_inv, real(*rsd)[3], const real(*udir)[3], const real(*uind)[3], const real(*field)[3])
 Calculates the initial residuals for the predictor 3a. More...
 
__global__ void pcgRsd0V2 (int n, const real *polarity_inv, real(*rsd)[3], real(*rsp)[3], const real(*udir)[3], const real(*udip)[3], const real(*uind)[3], const real(*uinp)[3], const real(*field)[3], const real(*fielp)[3])
 Calculates the initial residuals for the predictor 3a. More...
 
__global__ void pcgRsd0V3 (int n, const real *polarity_inv, real(*rsd)[3], const real(*udir)[3], const real(*uind)[3], const real(*field)[3], const real(*polscale)[3][3])
 Calculates the initial residuals for the predictor 3a using the Exchange-Polarization Model. More...
 
__global__ void pcgRsd0 (int n, const real *polarity, real(*rsd)[3], real(*rsdp)[3])
 Sets the residual to zero for atoms with zero polarizability. More...
 
__global__ void pcgRsd1 (int n, const real *polarity, real(*rsd)[3])
 Sets the residual to zero for atoms with zero polarizability. More...
 
__global__ void pcgP1 (int n, const real *polarity_inv, real(*vec)[3], real(*vecp)[3], const real(*conj)[3], const real(*conjp)[3], const real(*field)[3], const real(*fieldp)[3])
 Calculates the vector Ap – step 5a. More...
 
__global__ void pcgP2 (int n, const real *polarity, const real *ka, const real *kap, const real *ksum, const real *ksump, real(*uind)[3], real(*uinp)[3], const real(*conj)[3], const real(*conjp)[3], real(*rsd)[3], real(*rsdp)[3], const real(*vec)[3], const real(*vecp)[3])
 Updates the induced dipoles and residuals – step 5bc. More...
 
__global__ void pcgP3 (int n, const real *ksum, const real *ksump, const real *ksum1, const real *ksump1, real(*conj)[3], real(*conjp)[3], const real(*zrsd)[3], const real(*zrsdp)[3])
 Calculates the scalar b from s0 and s, then updates the vector p – 5ef. More...
 
__global__ void pcgP4 (int n, const real *polarity_inv, real(*vec)[3], const real(*conj)[3], const real(*field)[3])
 Calculates the vector Ap – step 5a. More...
 
__global__ void pcgP5 (int n, const real *polarity, const real *ka, const real *ksum, real(*uind)[3], const real(*conj)[3], real(*rsd)[3], const real(*vec)[3])
 Updates the induced dipoles and residuals – step 5bc. More...
 
__global__ void pcgP6 (int n, const real *ksum, const real *ksum1, real(*conj)[3], const real(*zrsd)[3])
 Calculates the scalar b from s0 and s, then updates the vector p – 5ef. More...
 
__global__ void pcgPeek (int n, float pcgpeek, const real *polarity, real(*uind)[3], real(*uinp)[3], const real(*rsd)[3], const real(*rsdp)[3])
 Applies the peek step. More...
 
__global__ void pcgPeek1 (int n, float pcgpeek, const real *polarity, real(*uind)[3], const real(*rsd)[3])
 Applies the peek step. More...
 
void echargeData (RcOp)
 
void echarge (int vers)
 
void echargeEwaldRecipSelf (int)
 
void echgljData (RcOp)
 
void echglj (int vers)
 
void zeroEGV (int vers=rc_flag)
 Zero out all of the counts, energies, gradients, and virials on device. More...
 
void scaleGradient (double scale, grad_prec *g0x, grad_prec *g0y, grad_prec *g0z)
 g0 *= scale. More...
 
void sumGradient (grad_prec *g0x, grad_prec *g0y, grad_prec *g0z, const grad_prec *g1x, const grad_prec *g1y, const grad_prec *g1z)
 g0 += g1. More...
 
void sumGradient (double scale, grad_prec *g0x, grad_prec *g0y, grad_prec *g0z, const grad_prec *g1x, const grad_prec *g1y, const grad_prec *g1z)
 g0 += scale*g1. More...
 
void copyGradientSync (int vers, double *grdx, double *grdy, double *grdz, const grad_prec *gx_src, const grad_prec *gy_src, const grad_prec *gz_src, int queue)
 Copies the energy gradients from device to host. More...
 
void copyGradient (int vers, double *grdx, double *grdy, double *grdz, const grad_prec *gx_src, const grad_prec *gy_src, const grad_prec *gz_src)
 Copies the energy gradients from device to host. More...
 
void copyGradient (int vers, double *grdx, double *grdy, double *grdz)
 
void copyEnergy (int vers, energy_prec *eng)
 
bool useEwald ()
 
void elecData (RcOp)
 
void energy_core (int vers, unsigned tsflag, const TimeScaleConfig &tsconfig)
 
void energy (int vers)
 
void energy (int vers, unsigned tsflag, const TimeScaleConfig &tsconfig)
 
void energyData (RcOp)
 Entry point to the setup functions of all the potential energy terms. More...
 
bool useEnergyVdw ()
 Logical flag for use of VDW, repulsion, dispersion, etc. terms. More...
 
bool useEnergyElec ()
 Logical flag for use of electrostatic terms. More...
 
void egvData (RcOp)
 Sets up data on device. More...
 
template<class F >
toFloatingPoint (fixed g)
 Converts a fixed-point value g to floating-point value on host. More...
 
template<class F >
toFloatingPoint (double g)
 Converts a double-precision g to floating-point value on host. More...
 
template<class F >
toFloatingPoint (float g)
 Converts a single-precision g to floating-point value on host. More...
 
size_t bufferSize ()
 
void bufferAllocate (int flag, EnergyBuffer *pe, VirialBuffer *pv, grad_prec **px, grad_prec **py, grad_prec **pz)
 
void bufferDeallocate (int flag, EnergyBuffer e, VirialBuffer v, grad_prec *gx, grad_prec *gy, grad_prec *gz)
 
void bufferAllocate (int flag, CountBuffer *pc)
 
void bufferDeallocate (int flag, CountBuffer c)
 
int countReduce (const CountBuffer b)
 
energy_prec energyReduce (const EnergyBuffer b)
 
void virialReduce (virial_prec(&)[VirialBufferTraits::N], const VirialBuffer b)
 
void virialReduce (virial_prec(&)[9], const VirialBuffer b)
 
void virialReshape (virial_prec(&output)[9], const virial_prec(&input)[VirialBufferTraits::N])
 Transforms the shape of a virial variable. More...
 
void evalence (int vers)
 
void ebondData (RcOp)
 
void ebond (int vers)
 
void eangleData (RcOp)
 
void eangle (int vers)
 
void eopbendData (RcOp)
 
void eopbend (int vers)
 
void estrbndData (RcOp)
 
void estrbnd (int vers)
 
void eureyData (RcOp)
 
void eurey (int vers)
 
void eimpropData (RcOp)
 
void eimprop (int vers)
 
void eimptorData (RcOp)
 
void eimptor (int vers)
 
void etorsData (RcOp)
 
void etors (int vers)
 
void epitorsData (RcOp)
 
void epitors (int vers)
 
void estrtorData (RcOp)
 
void estrtor (int vers)
 
void eangtorData (RcOp)
 
void eangtor (int vers)
 
void etortorData (RcOp)
 
void etortor (int vers)
 
void egeomData (RcOp)
 
void egeom (int vers)
 
void vdwSoftcoreData (RcOp)
 
void evdwData (RcOp)
 
void evdw (int vers)
 
void elj (int vers)
 Lennard-Jones 12-6 potential. More...
 
void elj14 (int vers)
 
void ebuck (int vers)
 
void emm3hb (int vers)
 
void egauss (int vers)
 
void ehal (int vers)
 Halgren buffered 14-7 potential. More...
 
void ehalReduceXyz ()
 
void ehalResolveGradient ()
 
__device__ void imageGeneral (real &__restrict__ xr, real &__restrict__ yr, real &__restrict__ zr, BoxShape sh, real3 l1, real3 l2, real3 l3, real3 ra, real3 rb, real3 rc)
 
__device__ real image2General (real &__restrict__ xr, real &__restrict__ yr, real &__restrict__ zr, BoxShape sh, real3 l1, real3 l2, real3 l3, real3 ra, real3 rb, real3 rc)
 
__device__ real imagen2General (real &xr, real &yr, real &zr, BoxShape sh, real3 l1, real3 l2, real3 l3, real3 ra, real3 rb, real3 rc)
 
void coupleData (RcOp)
 
void moleculeData (RcOp)
 
void groupData (RcOp)
 
Nbl vlistVersion ()
 
Nbl clistVersion ()
 
Nbl mlistVersion ()
 For multipole, polarization, repulsion, etc. More...
 
Nbl ulistVersion ()
 For sparse preconditioner. More...
 
Nbl dsplistVersion ()
 For dispersion. More...
 
void nblistData (RcOp)
 Sets up data on device. More...
 
void nblistRefresh ()
 Updates the neighbor lists. More...
 
void pmeData (RcOp)
 
void fftData (RcOp)
 
void fftfront (PMEUnit)
 
void fftback (PMEUnit)
 
bool use (Potent term)
 
int countBondedTerm (Potent term)
 
void spatialUpdate (SpatialUnit)
 
real switchCut (Switch mode)
 
real switchOff (Switch mode)
 
const TimeScaleConfigdefaultTSConfig ()
 
void emplar (int vers)
 Multipole and AMOEBA polarization energy. More...
 
void echgtrnData (RcOp)
 
void echgtrn (int vers)
 
void empoleChgpenData (RcOp)
 
void empoleChgpen (int vers)
 
void empoleChgpenEwaldRecip (int vers, int useCF)
 
void empoleAplusEwald (int vers, int useCF)
 
void empoleAplusNonEwald (int vers, int useCF)
 
void epolarChgpenData (RcOp)
 
void epolarChgpen (int vers)
 
void epolarChgpenEwaldRecipSelf (int vers, int use_cf)
 
void epolarAplusEwald (int vers, int useCF)
 
void epolarAplusNonEwald (int vers, int useCF)
 
void erepelData (RcOp)
 
void erepel (int vers)
 
void repoleInit (int vers)
 
void expolData (RcOp)
 
void alterpol (real(*polscale)[3][3], real(*polinv)[3][3])
 
void dexpol (int vers)
 
void dfieldAplus (real(*field)[3])
 
void ufieldAplus (const real(*uind)[3], real(*field)[3])
 
void sparsePrecondApply3 (const real(*rsd)[3], real(*zrsd)[3])
 
template<int N, class T >
void symlusolve (const T *aUpRowMajor, T *b)
 This subroutine uses the LU decomposition method to solve the linear system Ax = b, returning x in b. A is an n by n real symmetric matrix with its upper triangle (including the diagonal) stored by rows. More...
 
template<class T , class T2 >
maxOf (T a, T2 b)
 
template<class T , class T2 , class... Ts>
maxOf (T a, T2 b, Ts... cs)
 
template<class T , class T2 >
minOf (T a, T2 b)
 
template<class T , class T2 , class... Ts>
minOf (T a, T2 b, Ts... cs)
 
double OUProcess (double t, double x0, double gamma, double a, double b, double R)
 Returns the value of an Ornstein-Uhlenbeck process after time t. More...
 
template<class T >
reduceSum (const T *gpu_a, size_t nelem, int queue)
 Sum over all of the elements of an 1D array. More...
 
template<class HT , size_t HN, class DPTR >
void reduceSum2 (HT(&h_ans)[HN], DPTR v, size_t nelem, int queue)
 Sum over all of the elements of a 2D array. More...
 
template<class T >
void reduceSumOnDevice (T *dp_ans, const T *a, size_t nelem, int queue)
 Sum over all of the elements of an 1D array. This routine will save the result on the device memory in an asynchronous/non-blocking manner. A valid device pointer is required for the result on the device. More...
 
template<class HT , size_t HN, class DPTR >
void reduceSum2OnDevice (HT(&dref)[HN], DPTR v, size_t nelem, int queue)
 Sum over all of the elements of a 2D array. This routine will save the result on the device memory in an asynchronous/non-blocking manner. A valid device array is required for the result on device. More...
 
template<class T >
dotProd (const T *a, const T *b, size_t nelem, int queue)
 Dot product of two linear arrays. More...
 
template<class T >
void dotProd (T *ans, const T *a, const T *b, size_t nelem, int queue)
 Dot product of two linear arrays. More...
 
template<class T >
void scaleArray (T *dst, T scal, size_t nelem, int queue)
 Multiply all of the elements in an 1D array by a scalar. More...
 
template<class T >
reduceSum_acc (const T *gpu_a, size_t nelem, int queue)
 
template<class HT , size_t HN, class DPTR >
void reduceSum2_acc (HT(&h_ans)[HN], DPTR v, size_t nelem, int queue)
 
template<class T >
void reduceSumOnDevice_acc (T *, const T *, size_t, int)
 
template<class HT , size_t HN, class DPTR >
void reduceSum2OnDevice_acc (HT(&)[HN], DPTR, size_t, int)
 
template<class T >
dotProd_acc (const T *a, const T *b, size_t nelem, int queue)
 
template<class T >
void dotProd_acc (T *ans, const T *a, const T *b, size_t nelem, int queue)
 
template<class T >
void scaleArray_acc (T *dst, T scal, size_t nelem, int queue)
 
template<class T >
reduceSum_cu (const T *a, size_t nelem, int queue)
 
template<class HT , size_t HN, class DPTR >
void reduceSum2_cu (HT(&h_ans)[HN], DPTR v, size_t nelem, int queue)
 
template<class T >
void reduceSumOnDevice_cu (T *, const T *, size_t, int)
 
template<class HT , size_t HN, class DPTR >
void reduceSum2OnDevice_cu (HT(&)[HN], DPTR, size_t, int)
 
template<class T >
void dotProd_cu (T *ans, const T *a, const T *b, size_t nelem, int queue)
 
template<class T >
void scaleArray_cu (T *dst, T scal, size_t nelem, int queue)
 
constexpr bool isPow2 (size_t val)
 Return true if and only if val is a power of 2. More...
 
constexpr int pow2 (int val)
 Integer base 2 power. More...
 
constexpr long long pow2ll (int val)
 Long long integer base 2 power. More...
 
constexpr int floorLog2_constexpr (size_t val)
 The base-2 logarithm of val. More...
 
constexpr size_t pow2Le (size_t val)
 A power of 2 that is less than or equal to val. More...
 
constexpr size_t pow2Ge (size_t val)
 A power of 2 that is greater than or equal to val. More...
 
int floorLog2 (int val)
 Non-constexpr floorLog2(int). More...
 
int floorLog2 (long long val)
 Non-constexpr floorLog2(long long). More...
 
int ceilLog2 (int val)
 Non-constexpr log base 2 ceiling. More...
 
int ceilLog2 (long long val)
 Non-constexpr log base 2 ceiling. More...
 
template<class T >
random ()
 Returns a random number on [0,1] from a uniform distribution. More...
 
template<class T >
normal ()
 Returns a random number from a normal Gaussian distribution with a mean of zero and a standard deviation of one. More...
 
template<class T >
normal (T u, T s)
 Returns a random number from a normal Gaussian distribution with a mean of u and a standard deviation of s. More...
 
template<class T >
chiSquared (int k)
 Returns a random number as if the square of k independent standard normal N(0,1) random variables were aggregated. More...
 
void randomData (RcOp)
 
template<class T >
sinhc (T x)
 \( \sinh(x)/x \) More...
 
template<int N>
__device__ void fsinhcCheck ()
 
template<int N, class T >
__device__ T fsinhcPade44 (T x2)
 
template<int N, class T >
__device__ T fsinhcTaylor (T x2)
 
template<int N, class T >
__device__ T fsinhcSeries (T x2)
 
template<class T >
__device__ T fsinhcAnalyt7 (T d, T d13, T y, T z)
 
template<class T >
__device__ T fsinhcAnalyt6 (T d, T d11, T y, T z)
 
template<class T >
__device__ T fsinhcAnalyt5 (T d, T d9, T y, T z)
 
template<class T >
__device__ T fsinhcAnalyt4 (T d, T d7, T y, T z)
 
template<class T >
__device__ T fsinhcAnalyt3 (T d, T d5, T y, T z)
 
template<class T >
__device__ T fsinhcAnalyt2 (T d, T d3, T y, T z)
 
template<class T >
__device__ T fsinhcAnalyt1 (T d, T y, T z)
 
template<int N, class T >
__device__ void fsinhcImpl (T d, T &__restrict__ f1d, T &__restrict__ f2d, T &__restrict__ f3d, T &__restrict__ f4d, T &__restrict__ f5d, T &__restrict__ f6d, T &__restrict__ f7d)
 
template<int DO_DTAPER>
__device__ void switchTaper5 (real rik, real cut, real off, real &__restrict__ taper, real &__restrict__ dtaper)
 Smooth function F: [cut,off]->[1,0]. More...
 
template<class T >
void matmul3 (T R[3][3], T A[3][3], T B[3][3])
 Matrix multiplication of two 3 by 3 matrices. \( R = A B \). Matrices are stored in the row-major order (C-style). More...
 
template<class T >
void matmul3 (T R[3][3], T A[3][3])
 Matrix multiplication of two 3 by 3 matrices. \( R = A R \). Matrices are stored in the row-major order (C-style). More...
 
template<class T >
void trimatExp (T ans[3][3], T m[3][3], T t)
 \( \exp(mt) \). Matrix m is 3 by 3 upper triangular. Matrices are stored in the row-major order (C-style). More...
 
template<class T >
void trimatExpm1c (T ans[3][3], T m[3][3], T t)
 \( (\exp(mt)-I)/(mt) \). Matrix m is 3 by 3 upper triangular. Matrices are stored in the row-major order (C-style). More...
 
template<class T >
void trimatTExpm1c (T ans[3][3], T m[3][3], T t)
 \( t \frac{\exp(mt)-I}{mt} \). Matrix m is 3 by 3 upper triangular. Matrices are stored in the row-major order (C-style). More...
 
void zeroOnHost (int &v)
 Zeros variable on host. More...
 
void zeroOnHost (float &v)
 Zeros variable on host. More...
 
void zeroOnHost (double &v)
 Zeros variable on host. More...
 
void zeroOnHost (unsigned long long &v)
 Zeros variable on host. More...
 
template<class T >
void zeroOnHost (T *&ptr)
 Zeros variable on host. More...
 
template<class T , size_t N>
void zeroOnHost (T(&v)[N])
 Zeros variables on host. More...
 
template<class T , class... Ts>
void zeroOnHost (T &v, Ts &... vs)
 Zeros variables on host. More...
 
template<class T >
void zeroOnDevice3Async_acc (int nelem, T *a1, T *a2, T *a3)
 
template<class T >
void zeroOnDevice3Async_cu (int nelem, T *a1, T *a2, T *a3)
 
template<class T >
void zeroOnDevice3Async (int nelem, T *a1, T *a2, T *a3)
 Zeros variables on device. More...
 
template<class T , int N>
void zeroOnDevice3Async_acc (int nelem, T(*a1)[N], T(*a2)[N], T(*a3)[N])
 
template<class T , int N>
void zeroOnDevice3Async_cu (int nelem, T(*a1)[N], T(*a2)[N], T(*a3)[N])
 
template<class T , int N>
void zeroOnDevice3Async (int nelem, T(*a1)[N], T(*a2)[N], T(*a3)[N])
 Zeros variables on device. More...
 
template<class T >
void zeroOnDevice9Async_acc (int nelem, T *a1, T *a2, T *a3, T *a4, T *a5, T *a6, T *a7, T *a8, T *a9)
 
template<class T >
void zeroOnDevice9Async_cu (int nelem, T *a1, T *a2, T *a3, T *a4, T *a5, T *a6, T *a7, T *a8, T *a9)
 
template<class T >
void zeroOnDevice9Async (int nelem, T *a1, T *a2, T *a3, T *a4, T *a5, T *a6, T *a7, T *a8, T *a9)
 Zeros variables on device. More...
 
void lf_lpiston_npt (int istep, time_prec dt_ps)
 
void kineticEnergy (energy_prec &eksum_out, energy_prec(&ekin_out)[3][3], int n, const double *mass, const vel_prec *vx, const vel_prec *vy, const vel_prec *vz)
 
void kineticExplicit (T_prec &temp_out, energy_prec &eksum_out, energy_prec(&ekin_out)[3][3], const vel_prec *vx, const vel_prec *vy, const vel_prec *vz)
 
void kinetic (T_prec &temp)
 
void bussiThermostat (time_prec dt, T_prec temp)
 
void monteCarloBarostat (energy_prec epot, T_prec temp)
 Applies a box size correction as needed for the Monte Carlo barostat at the half time step. More...
 
void berendsenBarostat (time_prec dt)
 Berendsen barostat by scaling the coordinates and box dimensions via coupling to an external constant pressure bath. Code for anisotropic pressure coupling was provided by Guido Raos, Dipartimento di Chimica, Politecnico di Milano, Italy. More...
 
void mdData (RcOp)
 
void mdIntegrateData (RcOp)
 
void mdrest (int istep)
 
void mdrestPrintP1 (bool prints, double e1, double e2, double e3, double totmass)
 
void mdPropagate (int nsteps, time_prec dt_ps)
 
const TimeScaleConfigrespaTSConfig ()
 
void mdsaveAsync (int istep, time_prec dt)
 
void mdsaveSynchronize ()
 
void mdsaveData (RcOp)
 
void osrw_mech ()
 
void osrwData (RcOp)
 
double osrw_lam_expr0 (int form, double lam)
 
double osrw_lam_expr1 (int form, double lam)
 
double osrw_lam_expr2 (int form, double lam)
 
void osrw_altele (double)
 
void osrw_alttor (double)
 
void osrw_altvdw (double)
 
void osrw_energy (int vers, unsigned tsflag, const TimeScaleConfig &tsconfig)
 
void osrw_energy (int vers)
 
void mdVelData (RcOp)
 
void hcVelIso (vel_prec s)
 Update velocities by \( v_{ui}(t) = v_{ui}(0) + s V_{u}(0) \). More...
 
void hcVelAn (vel_prec s[3][3])
 Update velocities by \( \boldsymbol{v}_{ui}(t) = \boldsymbol{v}_{ui}(0) + \boldsymbol{S} \boldsymbol{V}_{u}(0) \). More...
 
void hcPosIso (pos_prec s)
 
void hcPosAn (pos_prec(*scal)[3])
 
template<class Ver >
__device__ void dk_angle (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deax, grad_prec *__restrict__ deay, grad_prec *__restrict__ deaz, const Angle *__restrict__ angtyp, real angunit, int i, const int(*__restrict__ iang)[4], const real *__restrict__ anat, const real *__restrict__ ak, const real *__restrict__ afld, real cang, real qang, real pang, real sang, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_angtor (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deatx, grad_prec *__restrict__ deaty, grad_prec *__restrict__ deatz, real atorunit, int iangtor, const int(*__restrict__ iat)[3], const real(*__restrict__ kant)[6], const real *__restrict__ anat, const int(*__restrict__ itors)[4], const real(*__restrict__ tors1)[4], const real(*__restrict__ tors2)[4], const real(*__restrict__ tors3)[4], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_bond (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ debx, grad_prec *__restrict__ deby, grad_prec *__restrict__ debz, Bond bndtyp, real bndunit, int i, const int(*__restrict__ ibnd)[2], const real *__restrict__ bl, const real *__restrict__ bk, real cbnd, real qbnd, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<int LEVEL, int bsorder>
__device__ void bsplgen (real w, real *__restrict__ thetai, volatile real *__restrict__ bsbuild_)
 B-spline coefficients and derivatives for a single PME atomic site along a particular direction. See also subroutine bsplgen in pmestuf.f file. More...
 
template<int LEVEL, int bsorder>
__device__ void bsplgen2 (real w, real *__restrict__ thetai, int k, int padded_n, volatile real *__restrict__ bsbuild_)
 
__device__ int intCopysignShift (int a, int b)
 If b < 0, returns -abs(a), otherwise, returns abs(a). Similar to the 32-bit integer version of Fortran SIGN(A,B). More...
 
__device__ int intCopysignIf (int a, int b)
 If b < 0, returns -abs(a), otherwise, returns abs(a). More...
 
__device__ void dmpthole2_a (real r, real pgamma, real pdi, real pdk, real &__restrict__ scale3, real &__restrict__ scale5)
 
__device__ void damp_thole2 (real r, real pdi, real pti, real pdk, real ptk, real &__restrict__ scale3, real &__restrict__ scale5)
 
__device__ void dmpthole3_a (real r, real pgamma, real pdi, real pdk, real &__restrict__ scale3, real &__restrict__ scale5, real &__restrict__ scale7)
 
__device__ void damp_thole3 (real r, real pdi, real pti, real pdk, real ptk, real &__restrict__ scale3, real &__restrict__ scale5, real &__restrict__ scale7)
 
__device__ void dmpthole3g_a (real r, real rr2, real xr, real yr, real zr, real pgamma, real pdi, real pdk, real &__restrict__ scale31, real &__restrict__ scale51, real &__restrict__ scale71, real &__restrict__ rc31, real &__restrict__ rc32, real &__restrict__ rc33, real &__restrict__ rc51, real &__restrict__ rc52, real &__restrict__ rc53, real &__restrict__ rc71, real &__restrict__ rc72, real &__restrict__ rc73)
 
__device__ void damp_thole3g (real r, real rr2, real xr, real yr, real zr, real pdi, real pti, real pdk, real ptk, real &__restrict__ scale31, real &__restrict__ scale51, real &__restrict__ scale71, real &__restrict__ rc31, real &__restrict__ rc32, real &__restrict__ rc33, real &__restrict__ rc51, real &__restrict__ rc52, real &__restrict__ rc53, real &__restrict__ rc71, real &__restrict__ rc72, real &__restrict__ rc73)
 
__device__ void dmpthole4_a (real r, real pgamma, real pdi, real pdk, real &__restrict__ ex3, real &__restrict__ ex5, real &__restrict__ ex7, real &__restrict__ ex9)
 
__device__ void damp_thole4 (real r, real pdi, real pti, real pdk, real ptk, real &__restrict__ ex3, real &__restrict__ ex5, real &__restrict__ ex7, real &__restrict__ ex9)
 
template<int order>
__device__ void damp_ewald (real *__restrict__ bn, real r, real rinv, real rr2, real aewald)
 
template<int DirOrder, int MutOrder>
__device__ void damp_gordon1 (real *__restrict__ dmpij, real *__restrict__ dmpi, real *__restrict__ dmpj, real r, real ai, real aj)
 
template<int ORDER>
__device__ void damp_pole_deprecated (real *__restrict__ dmpik, real *__restrict__ dmpi, real *__restrict__ dmpk, real r, real alphai, real alphak)
 deprecated More...
 
template<int order>
__device__ void damp_pole_v2 (real *__restrict__ dmpij, real *__restrict__ dmpi, real *__restrict__ dmpj, real r, real ai, real aj)
 
__device__ void damp_dir (real *__restrict__ dmpi, real *__restrict__ dmpk, real r, real alphai, real alphak)
 
__device__ void damp_mut (real *__restrict__ dmpik, real r, real alphai, real alphak)
 
template<int order>
__device__ void damp_rep_deprecated (real *__restrict__ dmpik, real r, real rinv, real r2, real rr3, real rr5, real rr7, real rr9, real rr11, real dmpi, real dmpk)
 
template<int order>
__device__ void damp_rep (real *__restrict__ dmpik, real r, real rr1, real r2, real rr3, real rr5, real rr7, real rr9, real rr11, real ai, real aj)
 
template<int DO_G>
__device__ void damp_hippodisp (real *__restrict__ dmpij, real r, real rr1, real ai, real aj)
 
template<int ORDER>
__device__ void damp_gordon2 (real *__restrict__ dmpik, real *__restrict__ dmpi, real *__restrict__ dmpk, real r, real alphai, real alphak)
 
__device__ void damp_aplus3 (real r, real pdi, real ddi, real pdk, real ddk, real &__restrict__ scale3, real &__restrict__ scale5, real &__restrict__ scale7)
 
__device__ void damp_aplus3g (real r, real rr2, real xr, real yr, real zr, real pdi, real ddi, real pdk, real ddk, real &__restrict__ scale31, real &__restrict__ scale51, real &__restrict__ scale71, real &__restrict__ rc31, real &__restrict__ rc32, real &__restrict__ rc33, real &__restrict__ rc51, real &__restrict__ rc52, real &__restrict__ rc53, real &__restrict__ rc71, real &__restrict__ rc72, real &__restrict__ rc73)
 
template<bool do_a>
__global__ void empoleSelf_cu (CountBuffer __restrict__ nem, EnergyBuffer __restrict__ em, const real(*__restrict__ rpole)[10], int n, real f, real aewald)
 
template<bool do_a, bool do_e, int CFLX>
__global__ void empoleChgpenSelf_cu (CountBuffer __restrict__ nem, EnergyBuffer __restrict__ em, const real(*__restrict__ rpole)[10], real *__restrict__ pot, int n, real f, real aewald)
 
__device__ int ffsnShift (int c1, int n)
 Find the position of the n-th least significant bit set in a 32-bit integer. Returns a value from 0 to 32. More...
 
__device__ int ffsnLoop (int c1, int n)
 An alternative implementation of ffsn using loop. More...
 
template<class Ver >
__device__ void dk_geom_group (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ degx, grad_prec *__restrict__ degy, grad_prec *__restrict__ degz, int i, const int(*__restrict__ igfix)[2], const real(*__restrict__ gfix)[3], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z, const double *__restrict__ mass, const int *__restrict__ molec, const int(*__restrict__ igrp)[2], const int *__restrict__ kgrp, const double *__restrict__ grpmass, BoxShape box_shape, real3 lvec1, real3 lvec2, real3 lvec3, real3 recipa, real3 recipb, real3 recipc)
 
template<class Ver >
__device__ void dk_geom_distance (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ degx, grad_prec *__restrict__ degy, grad_prec *__restrict__ degz, int i, const int(*__restrict__ idfix)[2], const real(*__restrict__ dfix)[3], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z, const int *__restrict__ molec, BoxShape box_shape, real3 lvec1, real3 lvec2, real3 lvec3, real3 recipa, real3 recipb, real3 recipc)
 
template<class Ver >
__device__ void dk_geom_angle (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ degx, grad_prec *__restrict__ degy, grad_prec *__restrict__ degz, int i, const int(*__restrict__ iafix)[3], const real(*__restrict__ afix)[3], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_geom_torsion (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ degx, grad_prec *__restrict__ degy, grad_prec *__restrict__ degz, int i, const int(*__restrict__ itfix)[4], const real(*__restrict__ tfix)[3], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_geom_position (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ degx, grad_prec *__restrict__ degy, grad_prec *__restrict__ degz, int i, const int *__restrict__ ipfix, const int(*__restrict__ kpfix)[3], const real *__restrict__ xpfix, const real *__restrict__ ypfix, const real *__restrict__ zpfix, const real(*__restrict__ pfix)[2], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z, BoxShape box_shape, real3 lvec1, real3 lvec2, real3 lvec3, real3 recipa, real3 recipb, real3 recipc)
 
__device__ real3 ftoc_triclinic (real3 f, real3 l1, real3 l2, real3 l3)
 Fractional to cartesian: triclinic. More...
 
__device__ real3 ftoc_monoclinic (real3 f, real3 l1, real3 l2, real3 l3)
 Fractional to cartesian: monoclinic. More...
 
__device__ real3 ftoc_orthogonal (real3 f, real3 l1, real3 l2, real3 l3)
 Fractional to cartesian: orthogonal. More...
 
__device__ real3 ftoc_general (real3 f, real3 l1, real3 l2, real3 l3)
 Fractional to cartesian. More...
 
__device__ real3 imageFrac (real3 f)
 PBC image of the fractional coordinates. More...
 
__device__ real3 ctof_triclinic (real xr, real yr, real zr, real3 ra, real3 rb, real3 rc)
 Cartesian to fractional: triclinic. More...
 
__device__ real3 ctof_monoclinic (real xr, real yr, real zr, real3 ra, real3 rb, real3 rc)
 Cartesian to fractional: monoclinic. More...
 
__device__ real3 ctof_orthogonal (real xr, real yr, real zr, real3 ra, real3 rb, real3 rc)
 Cartesian to fractional: orthogonal. More...
 
__device__ real3 imagectof_general (real xr, real yr, real zr, real3 ra, real3 rb, real3 rc)
 Cartesian to fractional. More...
 
template<class Ver >
__device__ void dk_improp (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deidx, grad_prec *__restrict__ deidy, grad_prec *__restrict__ deidz, real idihunit, int i, const int(*__restrict__ iiprop)[4], const real *__restrict__ kprop, const real *__restrict__ vprop, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_imptor (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deitx, grad_prec *__restrict__ deity, grad_prec *__restrict__ deitz, real itorunit, int i, const int(*__restrict__ iitors)[4], const real(*__restrict__ itors1)[4], const real(*__restrict__ itors2)[4], const real(*__restrict__ itors3)[4], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class K , class... Ts>
void launch_k3s (cudaStream_t st, size_t sh, int bs, int np, K k, Ts &&... a)
 
template<class K , class... Ts>
void launch_k3b (cudaStream_t st, size_t sh, int bs, int np, K k, Ts &&... a)
 
template<class K , class... Ts>
void launch_k2s (cudaStream_t st, int bs, int np, K k, Ts &&... a)
 
template<class K , class... Ts>
void launch_k2b (cudaStream_t st, int bs, int np, K k, Ts &&... a)
 
template<class K , class... Ts>
void launch_k1s (cudaStream_t st, int np, K k, Ts &&... a)
 
template<class K , class... Ts>
void launch_k1b (cudaStream_t st, int np, K k, Ts &&... a)
 
template<class Ver >
__device__ void dk_opbend (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deopbx, grad_prec *__restrict__ deopby, grad_prec *__restrict__ deopbz, OPBend opbtyp, real opbunit, int iopbend, const int *__restrict__ iopb, const real *__restrict__ opbk, const int(*__restrict__ iang)[4], real copb, real qopb, real popb, real sopb, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<bool DO_G>
__device__ void damp_expl (ExpolScr scrtyp, real &__restrict__ s2, real &__restrict__ ds2, real r, real sizik, real alphai, real alphak)
 
__device__ void pair_alterpol (ExpolScr scrtyp, real r, real pscale, real cut, real off, real xr, real yr, real zr, real springi, real sizi, real alphai, real springk, real sizk, real alphak, real ks2i[3][3], real ks2k[3][3])
 
__device__ void pair_dexpol (ExpolScr scrtyp, real r, real pscale, real cut, real off, real xr, real yr, real zr, real uix, real uiy, real uiz, real ukx, real uky, real ukz, real springi, real sizi, real alphai, real springk, real sizk, real alphak, const real f, real frc[3])
 
template<class Ver , class ETYP >
__device__ void pair_charge (real r, real xr, real yr, real zr, real cscale, real chgi, real chgk, real ebuffer, real f, real aewald, real cut, real off, real &__restrict__ grdx, real &__restrict__ grdy, real &__restrict__ grdz, int &__restrict__ ctl, real &__restrict__ etl, real &__restrict__ vtlxx, real &__restrict__ vtlxy, real &__restrict__ vtlxz, real &__restrict__ vtlyy, real &__restrict__ vtlyz, real &__restrict__ vtlzz)
 
template<bool DO_G, class ETYP , int SCALE>
__device__ void pair_chg_v2 (real r, real invr, real cscale, real chgi, real chgk, real f, real aewald, real eccut, real ecoff, real &__restrict__ ec, real &__restrict__ dec)
 
template<bool DO_G, class ETYP , int SCALE>
__device__ void pair_chg_v3 (real r, real cscale, real chgi, real chgk, real ebuffer, real f, real aewald, real eccut, real ecoff, real &__restrict__ ec, real &__restrict__ dec)
 
template<bool DO_G>
__device__ void pair_chgtrn (real r, real cut, real off, real mscale, real f, real alphai, real chgi, real alphak, real chgk, real elambda, e_prec &__restrict__ e, e_prec &__restrict__ de)
 
template<bool DO_G, class DTYP , int SCALE>
__device__ void pair_disp_obsolete (real r, real r2, real rr1, real dspscale, real aewald, real ci, real ai, real ck, real ak, real edcut, real edoff, real &__restrict__ e, real &__restrict__ de)
 
template<bool DO_G, class DTYP , int SCALE, int SOFTCORE>
__device__ void pair_disp (real r, real r2, real rr1, real dspscale, real aewald, real ci, real ai, real ck, real ak, real vlambda, real edcut, real edoff, real &__restrict__ e, real &__restrict__ de)
 
template<class ETYP >
__device__ void pair_dfield (real r2, real xr, real yr, real zr, real dscale, real pscale, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real pdi, real pti, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real pdk, real ptk, real aewald, real3 &__restrict__ fid, real3 &__restrict__ fip, real3 &__restrict__ fkd, real3 &__restrict__ fkp)
 
template<class ETYP >
__device__ void pair_dfield_v2 (real r2, real xr, real yr, real zr, real dscale, real pscale, real aewald, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real pdi, real pti, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real pdk, real ptk, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fipx, real &__restrict__ fipy, real &__restrict__ fipz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz, real &__restrict__ fkpx, real &__restrict__ fkpy, real &__restrict__ fkpz)
 
template<class ETYP >
__device__ void pair_ufield (real r2, real xr, real yr, real zr, real uscale, real uindi0, real uindi1, real uindi2, real uinpi0, real uinpi1, real uinpi2, real pdi, real pti, real uindk0, real uindk1, real uindk2, real uinpk0, real uinpk1, real uinpk2, real pdk, real ptk, real aewald, real3 &__restrict__ fid, real3 &__restrict__ fip, real3 &__restrict__ fkd, real3 &__restrict__ fkp)
 
template<class ETYP >
__device__ void pair_ufield_v2 (real r2, real xr, real yr, real zr, real uscale, real aewald, real uindi0, real uindi1, real uindi2, real uinpi0, real uinpi1, real uinpi2, real pdi, real pti, real uindk0, real uindk1, real uindk2, real uinpk0, real uinpk1, real uinpk2, real pdk, real ptk, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fipx, real &__restrict__ fipy, real &__restrict__ fipz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz, real &__restrict__ fkpx, real &__restrict__ fkpy, real &__restrict__ fkpz)
 
template<class ETYP >
__device__ void pair_dfield_chgpen (real r2, real xr, real yr, real zr, real dscale, real ci, real dix, real diy, real diz, real corei, real vali, real alphai, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real corek, real valk, real alphak, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real aewald, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz)
 
template<class ETYP >
__device__ void pair_ufield_chgpen (real r2, real xr, real yr, real zr, real wscale, real uindi0, real uindi1, real uindi2, real corei, real vali, real alphai, real uindk0, real uindk1, real uindk2, real corek, real valk, real alphak, real aewald, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz)
 
template<bool DO_G>
__device__ void pair_hal (real rik, real rv, real eps, real vscalek, real vlambda, real ghal, real dhal, real scexp, real scalpha, real &__restrict__ e, real &__restrict__ de)
 
template<bool DO_G, int SCALE>
__device__ void pair_hal_v2 (real r, real vscale, real rv, real eps, real evcut, real evoff, real vlambda, real ghal, real dhal, real scexp, real scalpha, real &__restrict__ e, real &__restrict__ de)
 
template<bool DO_G, bool SOFTCORE>
__device__ void pair_lj_v0 (real r, real invr, real vlambda, real rad, real eps, real &__restrict__ ev, real &__restrict__ dev)
 
template<bool DO_G, bool SOFTCORE>
__device__ void pair_lj_v1 (real rik, real vlambda, real rv, real eps, real vscalek, real &__restrict__ e, real &__restrict__ de)
 
template<bool DO_G, bool SOFTCORE, class RADRULE , class EPSRULE , int SCALE>
__device__ void pair_lj_v2 (real r, real invr, real vlambda, real vscale, real radi, real epsi, real radk, real epsk, real evcut, real evoff, real &__restrict__ ev, real &__restrict__ dev)
 
template<bool DO_G, bool SOFTCORE, int SCALE>
__device__ void pair_lj_v3 (real r, real invr, real vlambda, real vscale, real rad, real eps, real evcut, real evoff, real &__restrict__ ev, real &__restrict__ dev)
 
__device__ void zero (PairMPoleGrad &pgrad)
 
template<bool do_e, bool do_g, class ETYP >
__device__ void pair_mpole (real r2, real xr, real yr, real zr, real mscale, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real f, real aewald, real &__restrict__ e, PairMPoleGrad &__restrict__ pgrad)
 OpenACC pairwise multipole electrostatic energy. More...
 
template<class Ver , class ETYP >
__device__ void pair_mpole_v2 (real r2, real xr, real yr, real zr, real mscale, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real f, real aewald, real &__restrict__ frcxi, real &__restrict__ frcyi, real &__restrict__ frczi, real &__restrict__ frcxk, real &__restrict__ frcyk, real &__restrict__ frczk, real &__restrict__ trqxi, real &__restrict__ trqyi, real &__restrict__ trqzi, real &__restrict__ trqxk, real &__restrict__ trqyk, real &__restrict__ trqzk, real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vxy, real &__restrict__ vxz, real &__restrict__ vyy, real &__restrict__ vyz, real &__restrict__ vzz)
 
template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void pair_mpole_chgpen (real r2, real xr, real yr, real zr, real mscale, real ci, real dix, real diy, real diz, real corei, real vali, real alphai, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real corek, real valk, real alphak, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real f, real aewald, real &__restrict__ e, real &__restrict__ poti, real &__restrict__ potk, PairMPoleGrad &__restrict__ pgrad)
 
__device__ void zero (PairPolarGrad &pgrad)
 
template<bool do_e, bool do_g, class ETYP >
__device__ void pair_polar (real r2, real xr, real yr, real zr, real dscale, real pscale, real uscale, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real uix, real uiy, real uiz, real uixp, real uiyp, real uizp, real pdi, real pti, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real ukx, real uky, real ukz, real ukxp, real ukyp, real ukzp, real pdk, real ptk, real f, real aewald, real &__restrict__ e, PairPolarGrad &__restrict__ pgrad)
 
template<class Ver , class ETYP >
__device__ void pair_polar_v2 (real r2, real xr, real yr, real zr, real dscale, real pscale, real uscale, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real uix, real uiy, real uiz, real uixp, real uiyp, real uizp, real pdi, real pti, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real ukx, real uky, real ukz, real ukxp, real ukyp, real ukzp, real pdk, real ptk, real f, real aewald, real &__restrict__ frcxi, real &__restrict__ frcyi, real &__restrict__ frczi, real &__restrict__ frcxk, real &__restrict__ frcyk, real &__restrict__ frczk, real &__restrict__ uf0i, real &__restrict__ uf1i, real &__restrict__ uf2i, real &__restrict__ uf0k, real &__restrict__ uf1k, real &__restrict__ uf2k, real &__restrict__ duf0i, real &__restrict__ duf1i, real &__restrict__ duf2i, real &__restrict__ duf3i, real &__restrict__ duf4i, real &__restrict__ duf5i, real &__restrict__ duf0k, real &__restrict__ duf1k, real &__restrict__ duf2k, real &__restrict__ duf3k, real &__restrict__ duf4k, real &__restrict__ duf5k, real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vxy, real &__restrict__ vxz, real &__restrict__ vyy, real &__restrict__ vyz, real &__restrict__ vzz)
 
template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void pair_polar_chgpen (real r2, real xr, real yr, real zr, real dscale, real wscale, real ci, real dix, real diy, real diz, real corei, real vali, real alphai, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real uix, real uiy, real uiz, real ck, real dkx, real dky, real dkz, real corek, real valk, real alphak, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real ukx, real uky, real ukz, real f, real aewald, real &__restrict__ e, real &__restrict__ poti, real &__restrict__ potk, PairPolarGrad &__restrict__ pgrad)
 
__device__ void zero (PairRepelGrad &pgrad)
 
template<bool do_g, int SOFTCORE>
__device__ void pair_repel (real r2, real rscale, real vlambda, real cut, real off, real xr, real yr, real zr, real sizi, real dmpi, real vali, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real sizk, real dmpk, real valk, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real &__restrict__ e, PairRepelGrad &__restrict__ pgrad)
 
__device__ real pair_vlambda (real vlam, Vdw vcouple, int imut, int kmut)
 
template<bool DO_G>
__device__ void pair_chgtrn_aplus (real r, real cut, real off, real mscale, real f, real alphai, real chgi, real alphak, real chgk, real elambda, e_prec &__restrict__ e, e_prec &__restrict__ de)
 
template<class ETYP >
__device__ void pair_dfield_aplus (real r2, real xr, real yr, real zr, real dscale, real ci, real dix, real diy, real diz, real pdi, real ddi, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real pdk, real ddk, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real aewald, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz)
 
template<class ETYP >
__device__ void pair_dfield_aplus_v2 (real r2, real xr, real yr, real zr, real dscale, real ci, real dix, real diy, real diz, real pdi, real ddi, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real pdk, real ddk, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real aewald, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz)
 
template<class ETYP >
__device__ void pair_ufield_aplus (real r2, real xr, real yr, real zr, real uscale, real uindi0, real uindi1, real uindi2, real pdi, real pti, real uindk0, real uindk1, real uindk2, real pdk, real ptk, real aewald, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz)
 
template<class ETYP >
__device__ void pair_ufield_aplus_v2 (real r2, real xr, real yr, real zr, real uscale, real uindi0, real uindi1, real uindi2, real pdi, real pti, real uindk0, real uindk1, real uindk2, real pdk, real ptk, real aewald, real &__restrict__ fidx, real &__restrict__ fidy, real &__restrict__ fidz, real &__restrict__ fkdx, real &__restrict__ fkdy, real &__restrict__ fkdz)
 
template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void pair_mpole_chgpen_aplus (real r2, real xr, real yr, real zr, real mscale, real ci, real dix, real diy, real diz, real corei, real vali, real alphai, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real ck, real dkx, real dky, real dkz, real corek, real valk, real alphak, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real f, real aewald, real &__restrict__ e, real &__restrict__ poti, real &__restrict__ potk, PairMPoleGrad &__restrict__ pgrad)
 
template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void pair_polar_aplus (real r2, real xr, real yr, real zr, real dscale, real uscale, real ci, real dix, real diy, real diz, real pdi, real pti, real ddi, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real uix, real uiy, real uiz, real ck, real dkx, real dky, real dkz, real pdk, real ptk, real ddk, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real ukx, real uky, real ukz, real f, real aewald, real &__restrict__ e, real &__restrict__ poti, real &__restrict__ potk, PairPolarGrad &__restrict__ pgrad)
 
template<class Ver , class ETYP , int CFLX>
__device__ void pair_polar_aplus_v2 (real r2, real xr, real yr, real zr, real dscale, real uscale, real ci, real dix, real diy, real diz, real qixx, real qixy, real qixz, real qiyy, real qiyz, real qizz, real uix, real uiy, real uiz, real pdi, real pti, real ddi, real ck, real dkx, real dky, real dkz, real qkxx, real qkxy, real qkxz, real qkyy, real qkyz, real qkzz, real ukx, real uky, real ukz, real pdk, real ptk, real ddk, real f, real aewald, real &__restrict__ frcxi, real &__restrict__ frcyi, real &__restrict__ frczi, real &__restrict__ frcxk, real &__restrict__ frcyk, real &__restrict__ frczk, real &__restrict__ uf0i, real &__restrict__ uf1i, real &__restrict__ uf2i, real &__restrict__ uf0k, real &__restrict__ uf1k, real &__restrict__ uf2k, real &__restrict__ duf0i, real &__restrict__ duf1i, real &__restrict__ duf2i, real &__restrict__ duf3i, real &__restrict__ duf4i, real &__restrict__ duf5i, real &__restrict__ duf0k, real &__restrict__ duf1k, real &__restrict__ duf2k, real &__restrict__ duf3k, real &__restrict__ duf4k, real &__restrict__ duf5k, real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vxy, real &__restrict__ vxz, real &__restrict__ vyy, real &__restrict__ vyz, real &__restrict__ vzz, real &__restrict__ poti, real &__restrict__ potk)
 
template<class Ver >
__device__ void dk_pitors (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deptx, grad_prec *__restrict__ depty, grad_prec *__restrict__ deptz, real ptorunit, int i, const int(*__restrict__ ipit)[6], const real *__restrict__ kpit, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class T , unsigned int B, class Op >
__device__ void warp_reduce (volatile T *sd, unsigned int t, Op op)
 
template<class T , unsigned int HN, unsigned int B, class Op >
__device__ void warp_reduce2 (volatile T(*sd)[B], unsigned int t, Op op)
 
template<class T , unsigned int B, class Op >
__global__ void reduce (T *g_odata, const T *g_idata, size_t n, Op op=Op())
 
template<class T , unsigned int B, unsigned int HN, size_t N, class Op >
__global__ void reduce2 (T(*g_odata)[HN], const T(*g_idata)[N], size_t n, Op op=Op())
 
__device__ void chkpoleAtomI (int i, real(*__restrict__ pole)[MPL_TOTAL], LocalFrame *zaxis, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
__device__ void rotpoleNorm (real *a)
 
__device__ void rotpoleAddBy (real *__restrict__ a, const real *__restrict__ b)
 
__device__ void rotpoleAddBy2 (real *__restrict__ a, const real *__restrict__ b, const real *__restrict__ c)
 
__device__ void rotsite (int isite, const real(*__restrict__ a)[3], real(*__restrict__ rpole)[10], const real(*__restrict__ pole)[10])
 
__device__ void rotpoleAtomI (int i, real(*__restrict__ rpole)[MPL_TOTAL], const real(*__restrict__ pole)[MPL_TOTAL], const LocalFrame *__restrict__ zaxis, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class HTYPE >
__device__ void dk_settle1 (time_prec dt, int iw, const pos_prec *__restrict__ xold, const pos_prec *__restrict__ yold, const pos_prec *__restrict__ zold, pos_prec *__restrict__ xnew, pos_prec *__restrict__ ynew, pos_prec *__restrict__ znew, vel_prec *__restrict__ vx, vel_prec *__restrict__ vy, vel_prec *__restrict__ vz, const double *__restrict__ mass, const int(*__restrict__ iratwt)[3], const pos_prec(*__restrict__ kratwt)[3])
 
template<bool DO_V>
__device__ void dk_settle2 (time_prec dt, int iw, vel_prec *__restrict__ vx, vel_prec *__restrict__ vy, vel_prec *__restrict__ vz, const pos_prec *__restrict__ xpos, const pos_prec *__restrict__ ypos, const pos_prec *__restrict__ zpos, const double *__restrict__ mass, const int(*__restrict__ iratwt)[3], double &__restrict__ vxx, double &__restrict__ vyx, double &__restrict__ vzx, double &__restrict__ vyy, double &__restrict__ vzy, double &__restrict__ vzz)
 
template<class Ver >
__device__ void dk_strbnd (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ debax, grad_prec *__restrict__ debay, grad_prec *__restrict__ debaz, real stbnunit, int istrbnd, const int(*__restrict__ isb)[3], const real(*__restrict__ sbk)[2], const real *__restrict__ bl, const int(*__restrict__ iang)[4], const real *__restrict__ anat, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_strtor (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ debtx, grad_prec *__restrict__ debty, grad_prec *__restrict__ debtz, real storunit, int istrtor, const int(*__restrict__ ist)[4], const real(*__restrict__ kst)[9], const real *__restrict__ bl, const int(*__restrict__ itors)[4], const real(*__restrict__ tors1)[4], const real(*__restrict__ tors2)[4], const real(*__restrict__ tors3)[4], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
__device__ real torqueDot (const real *__restrict__ a, const real *__restrict__ b)
 
__device__ void torqueCross (real *__restrict__ ans, const real *__restrict__ u, const real *__restrict__ v)
 
__device__ void torqueNormal (real *__restrict__ a, real _1_na)
 
template<class Ver >
__device__ void dk_tors (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ detx, grad_prec *__restrict__ dety, grad_prec *__restrict__ detz, real torsunit, int i, const int(*__restrict__ itors)[4], const real(*__restrict__ tors1)[4], const real(*__restrict__ tors2)[4], const real(*__restrict__ tors3)[4], const real(*__restrict__ tors4)[4], const real(*__restrict__ tors5)[4], const real(*__restrict__ tors6)[4], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class Ver >
__device__ void dk_tortor (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ dettx, grad_prec *__restrict__ detty, grad_prec *__restrict__ dettz, real ttorunit, int itortor, const int(*__restrict__ itt)[3], const int(*__restrict__ ibitor)[5], const int *__restrict__ chkttor_ia_, const int *__restrict__ tnx, const int *__restrict__ tny, const real(*__restrict__ ttx)[ktrtor::maxtgrd], const real(*__restrict__ tty)[ktrtor::maxtgrd], const real(*__restrict__ tbf)[ktrtor::maxtgrd2], const real(*__restrict__ tbx)[ktrtor::maxtgrd2], const real(*__restrict__ tby)[ktrtor::maxtgrd2], const real(*__restrict__ tbxy)[ktrtor::maxtgrd2], const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
__device__ int xy_to_tri (int x, int y)
 
__device__ void tri_to_xy (int f, int &x, int &y)
 
template<class Ver >
__device__ void dk_urey (real &__restrict__ e, real &__restrict__ vxx, real &__restrict__ vyx, real &__restrict__ vzx, real &__restrict__ vyy, real &__restrict__ vzy, real &__restrict__ vzz, grad_prec *__restrict__ deubx, grad_prec *__restrict__ deuby, grad_prec *__restrict__ deubz, real ureyunit, int i, const int(*__restrict__ iury)[3], const real *__restrict__ uk, const real *__restrict__ ul, real cury, real qury, const real *__restrict__ x, const real *__restrict__ y, const real *__restrict__ z)
 
template<class T >
void atomic_add (T value, T *buffer, size_t offset=0)
 
template<class T , class = typename std::enable_if<std::is_same<T, float>::value || std::is_same<T, double>::value>::type>
void atomic_add (T value, fixed *buffer, size_t offset=0)
 
template<class T >
void atomic_add (T vxx, T vyx, T vzx, T vyy, T vzy, T vzz, T(*buffer)[8], size_t offset=0)
 Adds virial {xx,yx,zx,yy,zy,zz} to buffer[offset][0 to 7]. More...
 
template<class T , class = typename std::enable_if<std::is_same<T, float>::value || std::is_same<T, double>::value>::type>
void atomic_add (T vxx, T vyx, T vzx, T vyy, T vzy, T vzz, fixed(*buffer)[8], size_t offset=0)
 
template<class G , class T >
G floatTo (T val)
 Converts val of floating-point to type G. More...
 
template<class T >
fixedTo (fixed val)
 Converts val of fixed-point to floating-point. More...
 
template<class T >
toFloatGrad (fixed g)
 Converts a fixed-point value g to floating-point value. More...
 
template<class T >
toFloatGrad (double g)
 Converts a double-precision value g to floating-point value. More...
 
template<class T >
toFloatGrad (float g)
 Converts a single-precision value g to floating-point value. More...
 
template<class T , class U >
constexpr bool eq ()
 Used as eq<T1,T2>() for two type identifiers. More...
 
int2 make_int2 (int x, int y)
 
int3 make_int3 (int x, int y, int z)
 
int4 make_int4 (int x, int y, int z, int w)
 
float2 make_float2 (float x, float y)
 
float3 make_float3 (float x, float y, float z)
 
float4 make_float4 (float x, float y, float z, float w)
 
double2 make_double2 (double x, double y)
 
double3 make_double3 (double x, double y, double z)
 
double4 make_double4 (double x, double y, double z, double w)
 
template<class T >
__device__ void atomic_add (T value, T *buffer, size_t offset=0)
 
template<class T , class = typename std::enable_if<std::is_same<T, float>::value || std::is_same<T, double>::value>::type>
__device__ void atomic_add (T value, fixed *buffer, size_t offset=0)
 Adds value to buffer[offset] via fixed-point arithmetic. More...
 
template<class T >
__device__ void atomic_add (T vxx, T vyx, T vzx, T vyy, T vzy, T vzz, T(*buffer)[8], size_t offset=0)
 Adds virial {xx,yx,zx,yy,zy,zz} to buffer[offset][0 to 7]. More...
 
template<class T , class = typename std::enable_if<std::is_same<T, float>::value || std::is_same<T, double>::value>::type>
__device__ void atomic_add (T vxx, T vyx, T vzx, T vyy, T vzy, T vzz, fixed(*buffer)[8], size_t offset=0)
 
template<class G , class T >
__device__ G floatTo (T val)
 Converts val of floating-point to type G. More...
 
template<class T >
__device__ T fixedTo (fixed val)
 Converts val of fixed-point to floating-point. More...
 
template<class T >
__device__ T toFloatGrad (fixed g)
 Converts a fixed-point value g to floating-point value. More...
 
template<class T >
__device__ T toFloatGrad (double g)
 Converts a double-precision value g to floating-point value. More...
 
template<class T >
__device__ T toFloatGrad (float g)
 Converts a single-precision value g to floating-point value. More...
 
template<class T , class U >
__device__ __host__ constexpr bool eq ()
 Used as eq<T1,T2>() for two type identifiers. More...
 
void nextarg (size_t len, char *str, bool &exist)
 
template<size_t Len>
void nextarg (char(&str)[Len], bool &exist)
 
template<class T1 , class T2 >
void getKV (std::string k, T1 &v, T2 vIfKNotFound)
 
template<class T >
void getKV (std::string k, std::vector< T > &v)
 
std::string cxxCompilerName ()
 Returns the name of the C++ compiler. More...
 
std::string accCompilerName ()
 Returns the name of the OpenACC compiler. More...
 
std::string cudaCompilerName ()
 Returns the name of the CUDA compiler. More...
 
void cudalibData (RcOp)
 Sets up the CUDA variables including but not limited to CUDA streams, CUDA library handles, CUDA memory buffers, and integer units for the OpenACC queues. More...
 
void waitFor (int queue)
 Similar to OpenACC wait and CUDA stream synchronize. More...
 
void deviceMemoryCopyinBytesAsync (void *dst, const void *src, size_t nbytes, int queue)
 Similar to OpenACC async copyin, copies data from host to device. More...
 
void deviceMemoryCopyoutBytesAsync (void *dst, const void *src, size_t nbytes, int queue)
 Similar to OpenACC async copyout, copies data from device to host. More...
 
void deviceMemoryCopyBytesAsync (void *dst, const void *src, size_t nbytes, int queue)
 Copies data between two pointers on device. More...
 
void deviceMemoryZeroBytesAsync (void *dst, size_t nbytes, int queue)
 Writes zero bytes on device. More...
 
void deviceMemoryDeallocate (void *ptr)
 Deallocates device pointer. More...
 
void deviceMemoryAllocateBytes (void **pptr, size_t nbytes)
 Allocates device pointer. More...
 
template<class T >
void deviceMemoryCheckType ()
 Sanity check. More...
 
template<class DT , class ST >
void deviceMemoryCopyin1dArray (DT *dst, const ST *src, size_t nelem, int q)
 Copies data to 1D array, host to device. More...
 
template<class DT , class ST >
void deviceMemoryCopyout1dArray (DT *dst, const ST *src, size_t nelem, int q)
 Copies data to 1D array, device to host. More...
 
template<class T >
std::string translateErrorCode (T errcode)
 Translates the error code to text. More...
 
void printError ()
 Writes the current coordinates to a disk file prior to aborting on a serious error. More...
 
void printBacktrace (std::FILE *out=stderr)
 Prints the call stack to a FILE pointer. More...
 
std::string exec (const std::string &cmd)
 Executes a command in shell and returns the output in a string. More...
 
void throwExceptionMissingFunction (const char *functionName, const char *file, int lineNum)
 
std::string gpuCudaRuntimeVersion ()
 
std::string gpuCudaDriverVersion ()
 
std::string gpuThrustVersion ()
 
std::vector< DeviceAttribute > & gpuDeviceAttributes ()
 
void gpuData (RcOp)
 Sets up the GPU card. More...
 
int gpuGridSize (int nthreadsPerBlock)
 
int gpuMaxNParallel (int idev)
 
template<class T >
const T & formatForward (const T &t)
 
const char * formatForward (const std::string &s)
 
template<class F , class... Ts>
void print (std::FILE *out, const F &f, Ts &&... args)
 Formatted output. More...
 
template<class F >
void print (std::FILE *out, const F &f)
 Formatted output. More...
 
template<class F , class... Ts>
std::string format (const F &f, Ts &&... args)
 Writes the formatted output to an std::string object. More...
 
std::string operator* (size_t k, std::string str)
 Duplicates then concatenates multiple copies of string. More...
 
std::string operator* (std::string str, size_t k)
 Duplicates then concatenate multiple copies of string. More...
 
std::string operator""_s (const char *s, size_t len)
 Uses _s suffix to convert a const char* to std::string. More...
 
template<class Arg , class Invalid >
void ioReadStream (Arg &arg, std::string prompt, Arg auto_fill, Invalid &&invalid, std::istream &istream=std::cin)
 Tests the validity of arg. If invalid, read ONE value from an std::istream object. arg will not change until the reading successfully exits. More...
 
template<class T >
void ioRewindStream (T &stream)
 Rewind a stream object. More...
 
void platformData (RcOp)
 
template<class E >
constexpr std::enable_if< EnableEnumBitMask< E >::value, E >::type operator| (E lhs, E rhs)
 
template<class E >
constexpr bool operator& (E lhs, E rhs)
 
void deviceData (RcOp)
 Set up and clean up device environment. More...
 
void bsplineFill (PMEUnit, int level)
 
void gridPchg (PMEUnit, real *pchg)
 
void gridDisp (PMEUnit, real *csix)
 
void gridMpole (PMEUnit, real(*fmp)[10])
 
void gridUind (PMEUnit, real(*find)[3], real(*finp)[3])
 
void pmeConv (PMEUnit)
 
void pmeConv (PMEUnit, VirialBuffer v)
 
void pmeConv (PMEUnit, EnergyBuffer e)
 
void pmeConv (PMEUnit, EnergyBuffer e, VirialBuffer v)
 
void fphiMpole (PMEUnit)
 
void fphiUind (PMEUnit, real(*fdip_phi1)[10], real(*fdip_phi2)[10], real(*fdip_sum_phi)[20])
 
void fphiUind2 (PMEUnit, real(*fdip_phi1)[10], real(*fdip_phi2)[10])
 
void rpoleToCmp ()
 
void cmpToFmp (PMEUnit, const real(*cmp)[10], real(*fmp)[10])
 
void cuindToFuind (PMEUnit, const real(*cind)[3], const real(*cinp)[3], real(*fuind)[3], real(*fuinp)[3])
 
void fphiToCphi (PMEUnit, const real(*fphi)[20], real(*cphi)[10])
 
void pmeStreamStartRecord (bool usePmeStream)
 
void pmeStreamStartWait (bool usePmeStream)
 
void pmeStreamFinishRecord (bool usePmeStream)
 
void pmeStreamFinishWait (bool usePmeStream)
 
void empoleData (RcOp)
 
void empole (int vers)
 
void empoleEwaldRecip (int vers)
 
void torque (int vers, grad_prec *dx, grad_prec *dy, grad_prec *dz)
 
void mpoleInit (int vers)
 
void epolarData (RcOp)
 
void epolar (int vers)
 
void epolarEwaldRecipSelf (int vers)
 
void epolar0DotProd (const real(*uind)[3], const real(*udirp)[3])
 
void dfield (real(*field)[3], real(*fieldp)[3])
 
void dfieldNonEwald (real(*field)[3], real(*fieldp)[3])
 
void dfieldEwald (real(*field)[3], real(*fieldp)[3])
 
void dfieldEwaldRecipSelfP1 (real(*field)[3])
 
void ufield (const real(*uind)[3], const real(*uinp)[3], real(*field)[3], real(*fieldp)[3])
 
void ufieldNonEwald (const real(*uind)[3], const real(*uinp)[3], real(*field)[3], real(*fieldp)[3])
 
void ufieldEwald (const real(*uind)[3], const real(*uinp)[3], real(*field)[3], real(*fieldp)[3])
 
void diagPrecond (const real(*rsd)[3], const real(*rsdp)[3], real(*zrsd)[3], real(*zrsdp)[3])
 
void sparsePrecondBuild ()
 
void sparsePrecondApply (const real(*rsd)[3], const real(*rsdp)[3], real(*zrsd)[3], real(*zrsdp)[3])
 
void ulspredSave (const real(*uind)[3], const real(*uinp)[3])
 
void ulspredSum (real(*uind)[3], real(*uinp)[3])
 
void inducePrint (const real(*ud)[3])
 
void induce (real(*uind)[3], real(*uinp)[3])
 
void cfluxData (RcOp)
 
void alterchg ()
 
void cfluxZeroPot ()
 
void dcflux (int vers, grad_prec *gx, grad_prec *gy, grad_prec *gz, VirialBuffer vir)
 
bool useDEwald ()
 
void edispData (RcOp)
 
void edisp (int vers)
 
void dfieldChgpen (real(*field)[3])
 
void ufieldChgpen (const real(*uind)[3], real(*field)[3])
 
void ufieldChgpenEwaldRecipSelf (const real(*uind)[3], real(*field)[3])
 
void diagPrecond2 (const real(*rsd)[3], real(*zrsd)[3])
 
void sparsePrecondBuild2 ()
 
void sparsePrecondApply2 (const real(*rsd)[3], real(*zrsd)[3])
 
void induce2 (real(*uind)[3])
 
template<class T >
__device__ void fsinhc1 (T d, T &__restrict__ f1d)
 
template<class T >
__device__ void fsinhc2 (T d, T &__restrict__ f1d, T &__restrict__ f2d)
 
template<class T >
__device__ void fsinhc3 (T d, T &__restrict__ f1d, T &__restrict__ f2d, T &__restrict__ f3d)
 
template<class T >
__device__ void fsinhc4 (T d, T &__restrict__ f1d, T &__restrict__ f2d, T &__restrict__ f3d, T &__restrict__ f4d)
 
template<class T >
__device__ void fsinhc5 (T d, T &__restrict__ f1d, T &__restrict__ f2d, T &__restrict__ f3d, T &__restrict__ f4d, T &__restrict__ f5d)
 
template<class T >
__device__ void fsinhc6 (T d, T &__restrict__ f1d, T &__restrict__ f2d, T &__restrict__ f3d, T &__restrict__ f4d, T &__restrict__ f5d, T &__restrict__ f6d)
 
template<class T >
__device__ void fsinhc7 (T d, T &__restrict__ f1d, T &__restrict__ f2d, T &__restrict__ f3d, T &__restrict__ f4d, T &__restrict__ f5d, T &__restrict__ f6d, T &__restrict__ f7d)
 
bool useRattle ()
 
void rattleData (RcOp)
 
void rattle (time_prec dt, const pos_prec *xold, const pos_prec *yold, const pos_prec *zold)
 
void rattle2 (time_prec dt, bool do_v)
 
void shake (time_prec dt, pos_prec *xnew, pos_prec *ynew, pos_prec *znew, const pos_prec *xold, const pos_prec *yold, const pos_prec *zold)
 
void hcKinetic ()
 
void hcVirial ()
 
void hcCenterOfMass (const pos_prec *atomx, const pos_prec *atomy, const pos_prec *atomz, pos_prec *molx, pos_prec *moly, pos_prec *molz)
 
template<class Arg >
int ioReadString (Arg &arg, const char *str, size_t len)
 Reads ONE value from a string and save to arg. arg will not change until the reading successfully exits. More...
 
int ioReadString (std::string &arg, const char *str, size_t len)
 Reads ONE value from a string and save to arg. arg will not change until the reading successfully exits. More...
 
template<class Arg , size_t Len>
int ioReadString (Arg &arg, const char(&src)[Len])
 Reads ONE value from a string and save to arg. arg will not change until the reading successfully exits. More...
 

Variables

int padded_n
 
int n
 Number of atoms padded by WARP_SIZE. More...
 
int trajn
 Number of atoms. More...
 
realx
 Number of the trajectory frames. More...
 
realy
 Current coordinates used in energy evaluation and neighbor lists. More...
 
realz
 Current coordinates used in energy evaluation and neighbor lists. More...
 
realtrajx
 Coordinates of all the trajectory frames. More...
 
realtrajy
 Coordinates of all the trajectory frames. More...
 
realtrajz
 Coordinates of all the trajectory frames. More...
 
pos_precxpos
 
pos_precypos
 
pos_preczpos
 
double * mass
 Atomic mass. More...
 
double * massinv
 Inversed atomic mass. More...
 
BoxShape box_shape
 
real3 lvec1
 
real3 lvec2
 
real3 lvec3
 
real3 recipa
 
real3 recipb
 
real3 recipc
 
Boxtrajbox
 Host pointer to the PBC boxes of a trajectory. More...
 
realpchg
 Magnitude of the partial charges (e-) of each atom. More...
 
CountBuffer nec
 
EnergyBuffer ec
 
VirialBuffer vir_ec
 
grad_precdecx
 
grad_precdecy
 
grad_precdecz
 
energy_prec energy_ec
 
virial_prec virial_ec [9]
 
real ebuffer
 
real c2scale
 
real c3scale
 
real c4scale
 
real c5scale
 
int ncexclude
 
int(* cexclude )[2]
 
realcexclude_scale
 
int ncvexclude
 
int(* cvexclude )[2]
 
real(* cvexclude_scale )[2]
 
bool vdwpr_in_use
 
int * mut_coalesced
 
realchg_coalesced
 
realradeps_coalesced
 
real electric
 
real dielec
 
real elam
 
grad_precgx
 Gradient of valence terms; also works as total gradient array. More...
 
grad_precgy
 Gradient of valence terms; also works as total gradient array. More...
 
grad_precgz
 Gradient of valence terms; also works as total gradient array. More...
 
grad_precgx_vdw
 Gradient of VDW, repulsion, dispersion, etc. terms. More...
 
grad_precgy_vdw
 Gradient of VDW, repulsion, dispersion, etc. terms. More...
 
grad_precgz_vdw
 Gradient of VDW, repulsion, dispersion, etc. terms. More...
 
grad_precgx_elec
 Gradient of electrostatic terms. More...
 
grad_precgy_elec
 Gradient of electrostatic terms. More...
 
grad_precgz_elec
 Gradient of electrostatic terms. More...
 
EnergyBuffer eng_buf
 Energy buffer for the valence terms. More...
 
EnergyBuffer eng_buf_vdw
 Energy buffer for the vdw terms. More...
 
EnergyBuffer eng_buf_elec
 Energy buffer for the electrostatic terms. More...
 
VirialBuffer vir_buf
 Virial buffer for the valence terms. More...
 
VirialBuffer vir_buf_vdw
 Virial buffer for the vdw terms. More...
 
VirialBuffer vir_buf_elec
 Virial buffer for the electrostatic terms. More...
 
energy_prec esum
 Total potential energy. More...
 
energy_prec energy_valence
 Total valence energy. More...
 
energy_prec energy_vdw
 Total vdw energy. More...
 
energy_prec energy_elec
 Total electrostatic energy. More...
 
virial_prec vir [9]
 Total potential virial tensor. More...
 
virial_prec virial_valence [9]
 Total valence virial tensor. More...
 
virial_prec virial_vdw [9]
 Total vdw virial tensor. More...
 
virial_prec virial_elec [9]
 Total electrostatic virial tensor. More...
 
int nelem_buffer
 
Bond bndtyp
 
real bndunit
 
real cbnd
 
real qbnd
 
int nbond
 
int(* ibnd )[2]
 
realbk
 
realbl
 
EnergyBuffer eb
 
VirialBuffer vir_eb
 
grad_precdebx
 
grad_precdeby
 
grad_precdebz
 
energy_prec energy_eb
 
virial_prec virial_eb [9]
 
real angunit
 
real stbnunit
 
real opbunit
 
real cang
 
real qang
 
real pang
 
real sang
 
real copb
 
real qopb
 
real popb
 
real sopb
 
OPBend opbtyp
 
Angleangtyp
 
int nangle
 
int(* iang )[4]
 
realak
 
realanat
 
realafld
 
EnergyBuffer ea
 
VirialBuffer vir_ea
 
grad_precdeax
 
grad_precdeay
 
grad_precdeaz
 
energy_prec energy_ea
 
virial_prec virial_ea [9]
 
int nopbend
 
int * iopb
 
realopbk
 
EnergyBuffer eopb
 
VirialBuffer vir_eopb
 
grad_precdeopbx
 
grad_precdeopby
 
grad_precdeopbz
 
energy_prec energy_eopb
 
virial_prec virial_eopb [9]
 
int nstrbnd
 
int(* isb )[3]
 
real(* sbk )[2]
 
EnergyBuffer eba
 
VirialBuffer vir_eba
 
grad_precdebax
 
grad_precdebay
 
grad_precdebaz
 
energy_prec energy_eba
 
virial_prec virial_eba [9]
 
real ureyunit
 
real cury
 
real qury
 
int nurey
 
int(* iury )[3]
 
realuk
 
realul
 
EnergyBuffer eub
 
VirialBuffer vir_eub
 
grad_precdeubx
 
grad_precdeuby
 
grad_precdeubz
 
energy_prec energy_eub
 
virial_prec virial_eub [9]
 
real idihunit
 
real itorunit
 
real torsunit
 
real ptorunit
 
real storunit
 
real atorunit
 
real ttorunit
 
int(* iiprop )[4]
 
realkprop
 
realvprop
 
int niprop
 
EnergyBuffer eid
 
VirialBuffer vir_eid
 
grad_precdeidx
 
grad_precdeidy
 
grad_precdeidz
 
energy_prec energy_eid
 
virial_prec virial_eid [9]
 
int(* iitors )[4]
 
real(* itors1 )[4]
 
real(* itors2 )[4]
 
real(* itors3 )[4]
 
int nitors
 
EnergyBuffer eit
 
VirialBuffer vir_eit
 
grad_precdeitx
 
grad_precdeity
 
grad_precdeitz
 
energy_prec energy_eit
 
virial_prec virial_eit [9]
 
int ntors
 
int(* itors )[4]
 
real(* tors1 )[4]
 
real(* tors2 )[4]
 
real(* tors3 )[4]
 
real(* tors4 )[4]
 
real(* tors5 )[4]
 
real(* tors6 )[4]
 
EnergyBuffer et
 
VirialBuffer vir_et
 
grad_precdetx
 
grad_precdety
 
grad_precdetz
 
energy_prec energy_et
 
virial_prec virial_et [9]
 
int npitors
 
int(* ipit )[6]
 
realkpit
 
EnergyBuffer ept
 
VirialBuffer vir_ept
 
grad_precdeptx
 
grad_precdepty
 
grad_precdeptz
 
energy_prec energy_ept
 
virial_prec virial_ept [9]
 
int nstrtor
 
int(* ist )[4]
 
real(* kst )[9]
 
EnergyBuffer ebt
 
VirialBuffer vir_ebt
 
grad_precdebtx
 
grad_precdebty
 
grad_precdebtz
 
energy_prec energy_ebt
 
virial_prec virial_ebt [9]
 
int nangtor
 
int(* iat )[3]
 
real(* kant )[6]
 
EnergyBuffer eat
 
VirialBuffer vir_eat
 
grad_precdeatx
 
grad_precdeaty
 
grad_precdeatz
 
energy_prec energy_eat
 
virial_prec virial_eat [9]
 
int nbitor
 
int(* ibitor )[5]
 
int * tnx
 
int * tny
 
real(* ttx )[ktrtor::maxtgrd]
 
real(* tty )[ktrtor::maxtgrd]
 
real(* tbf )[ktrtor::maxtgrd2]
 
real(* tbx )[ktrtor::maxtgrd2]
 
real(* tby )[ktrtor::maxtgrd2]
 
real(* tbxy )[ktrtor::maxtgrd2]
 
int * chkttor_ia_
 
int ntortor
 
int(* itt )[3]
 
EnergyBuffer ett
 
VirialBuffer vir_ett
 
grad_precdettx
 
grad_precdetty
 
grad_precdettz
 
energy_prec energy_ett
 
virial_prec virial_ett [9]
 
int npfix
 
int * ipfix
 
int(* kpfix )[3]
 
realxpfix
 
realypfix
 
realzpfix
 
real(* pfix )[2]
 
int ngfix
 Number of group distance restraints to be applied. More...
 
int(* igfix )[2]
 Group numbers defining each group distance restraint. More...
 
real(* gfix )[3]
 Force constant and target range for each group distance. More...
 
int ndfix
 
int(* idfix )[2]
 
real(* dfix )[3]
 
int nafix
 
int(* iafix )[3]
 
real(* afix )[3]
 
int ntfix
 
int(* itfix )[4]
 
real(* tfix )[3]
 
EnergyBuffer eg
 
VirialBuffer vir_eg
 
grad_precdegx
 
grad_precdegy
 
grad_precdegz
 
energy_prec energy_eg
 
virial_prec virial_eg [9]
 
real ghal
 Value of \( \gamma \) in buffered 14-7 vdw potential. More...
 
real dhal
 Value of \( \delta \) in buffered 14-7 vdw potential. More...
 
real v2scale
 
real v3scale
 
real v4scale
 
real v5scale
 
Vdw vdwtyp
 
Vdw vdwindex
 
Vdw radrule
 
Vdw epsrule
 
energy_prec elrc_vol
 Long-range energy correction (lrc), used as e += lrc/volume. More...
 
virial_prec vlrc_vol
 Long-range virial correction (lrc), used as v(i,i) += lrc/volume. More...
 
int * jvdw
 Type or class index into vdw parameters for each atom. The indices have been sorted and start from 0. More...
 
int * ired
 
realkred
 
realxred
 Halgren buffered 14-7 reduced x, y, z coordinates for each atom. More...
 
realyred
 
realzred
 
realradmin
 Minimum energy distance (radmin) or well depth parameter (epsilon) for each jvdw pair. Element [j1][j2] is accessed by [njvdw*j1 + j2]. More...
 
realepsilon
 
realradmin4
 VDW 1-4 parameters: minimum energy distance and well depth. More...
 
realepsilon4
 
realatom_rad
 
realatom_eps
 
CountBuffer nev
 
EnergyBuffer ev
 
VirialBuffer vir_ev
 
grad_precdevx
 
grad_precdevy
 
grad_precdevz
 
energy_prec energy_ev
 
virial_prec virial_ev [9]
 
int njvdw
 Number of unique values in the jvdw array. More...
 
grad_precgxred
 Halgren buffered 14-7 reduced vdw gradients for each atom. More...
 
grad_precgyred
 
grad_precgzred
 
int nvdw14
 
int(* vdw14ik )[2]
 
int nvexclude
 
int(* vexclude )[2]
 
realvexclude_scale
 
Vdw vcouple
 
real scexp
 Exponential factor for soft core buffered 14-7 potential. More...
 
real scalpha
 Scale factor \( \alpha \) for soft core buffered 14-7 potential. More...
 
real vlam
 
int * mut
 State weighting values (lambda) of all atoms for van der Waals potentials. More...
 
LocalFramezaxis
 
real(* pole )[MPL_TOTAL]
 
real(* rpole )[MPL_TOTAL]
 
realtrqx
 
realtrqy
 
realtrqz
 
VirialBuffer vir_trq
 
CountBuffer nem
 
EnergyBuffer em
 
VirialBuffer vir_em
 
grad_precdemx
 
grad_precdemy
 
grad_precdemz
 
energy_prec energy_em
 
virial_prec virial_em [9]
 
real m2scale
 
real m3scale
 
real m4scale
 
real m5scale
 
int nmexclude
 
int(* mexclude )[2]
 
realmexclude_scale
 
int njpolar
 
int * jpolar
 
realthlval
 
realpolarity
 
realthole
 
realpdamp
 
real(* udir )[3]
 
real(* udirp )[3]
 
real(* uind )[3]
 
real(* uinp )[3]
 
CountBuffer nep
 
EnergyBuffer ep
 
VirialBuffer vir_ep
 
grad_precdepx
 
grad_precdepy
 
grad_precdepz
 
energy_prec energy_ep
 
virial_prec virial_ep [9]
 
realpolarity_inv
 
real(* ufld )[3]
 
real(* dufld )[6]
 
real(* work01_ )[3]
 
real(* work02_ )[3]
 
real(* work03_ )[3]
 
real(* work04_ )[3]
 
real(* work05_ )[3]
 
real(* work06_ )[3]
 
real(* work07_ )[3]
 
real(* work08_ )[3]
 
real(* work09_ )[3]
 
real(* work10_ )[3]
 
real u1scale
 
real u2scale
 
real u3scale
 
real u4scale
 
real d1scale
 
real d2scale
 
real d3scale
 
real d4scale
 
real p2scale
 
real p3scale
 
real p4scale
 
real p5scale
 
real p2iscale
 
real p3iscale
 
real p4iscale
 
real p5iscale
 
real udiag
 
int nuexclude
 
int(* uexclude )[2]
 
realuexclude_scale
 
int ndpexclude
 
int(* dpexclude )[2]
 
real(* dpexclude_scale )[2]
 
int ndpuexclude
 
int(* dpuexclude )[2]
 
real(* dpuexclude_scale )[3]
 
int nmdpuexclude
 
int(* mdpuexclude )[2]
 
real(* mdpuexclude_scale )[4]
 
UPred polpred
 
int maxualt
 
int nualt
 
real(* udalt_00 )[3]
 
real(* udalt_01 )[3]
 
real(* udalt_02 )[3]
 
real(* udalt_03 )[3]
 
real(* udalt_04 )[3]
 
real(* udalt_05 )[3]
 
real(* udalt_06 )[3]
 
real(* udalt_07 )[3]
 
real(* udalt_08 )[3]
 
real(* udalt_09 )[3]
 
real(* udalt_10 )[3]
 
real(* udalt_11 )[3]
 
real(* udalt_12 )[3]
 
real(* udalt_13 )[3]
 
real(* udalt_14 )[3]
 
real(* udalt_15 )[3]
 
real(* upalt_00 )[3]
 
real(* upalt_01 )[3]
 
real(* upalt_02 )[3]
 
real(* upalt_03 )[3]
 
real(* upalt_04 )[3]
 
real(* upalt_05 )[3]
 
real(* upalt_06 )[3]
 
real(* upalt_07 )[3]
 
real(* upalt_08 )[3]
 
real(* upalt_09 )[3]
 
real(* upalt_10 )[3]
 
real(* upalt_11 )[3]
 
real(* upalt_12 )[3]
 
real(* upalt_13 )[3]
 
real(* upalt_14 )[3]
 
real(* upalt_15 )[3]
 
realudalt_lsqr_a
 
realupalt_lsqr_a
 
realudalt_lsqr_b
 
realupalt_lsqr_b
 
realdirdamp
 
Chgpen pentyp
 
realbflx
 
real(* aflx )[2]
 
real(* abflx )[2]
 
int * atomic
 
int(* balist )[2]
 
realmono0
 
realpdelta
 
realpot
 
realdecfx
 
realdecfy
 
realdecfz
 
realpcore
 
realpval
 
realpval0
 
realpalpha
 
real w2scale
 
real w3scale
 
real w4scale
 
real w5scale
 
int nmdwexclude
 
int(* mdwexclude )[2]
 
real(* mdwexclude_scale )[3]
 
int nwexclude
 
int(* wexclude )[2]
 
realwexclude_scale
 
realchgct
 
realdmpct
 
CountBuffer nct
 
EnergyBuffer ect
 
VirialBuffer vir_ect
 
grad_precdectx
 
grad_precdecty
 
grad_precdectz
 
energy_prec energy_ect
 
virial_prec virial_ect [9]
 
Chgtrn ctrntyp
 
realkpep
 
realprepep
 
realdmppep
 
int * lpep
 
real(* polscale )[3][3]
 
real(* polinv )[3][3]
 
ExpolScr scrtyp
 
const int couple_maxn12 = 8
 
int(* couple_i12 )[couple_maxn12]
 
int * couple_n12
 
Molecule molecule
 
Group grp
 
NBListUnit vlist_unit
 
NBListUnit clist_unit
 
NBListUnit mlist_unit
 
NBListUnit ulist_unit
 
NBListUnit dsplist_unit
 
SpatialUnit cspatial_v2_unit
 
SpatialUnit vspatial_v2_unit
 
SpatialUnit uspatial_v2_unit
 
SpatialUnit mspatial_v2_unit
 
SpatialUnit dspspatial_v2_unit
 
constexpr int cspatial_fresh_mask_echglj = 0x00000001
 
real csixpr
 
realcsix
 
realadisp
 
int ndspexclude
 
int(* dspexclude )[2]
 
realdspexclude_scale
 
CountBuffer ndisp
 
EnergyBuffer edsp
 
VirialBuffer vir_edsp
 
grad_precdedspx
 
grad_precdedspy
 
grad_precdedspz
 
energy_prec energy_edsp
 
virial_prec virial_edsp [9]
 
real dsp2scale
 
real dsp3scale
 
real dsp4scale
 
real dsp5scale
 
real elrc_vol_dsp
 
real vlrc_vol_dsp
 
real(* repole )[MPL_TOTAL]
 
real(* rrepole )[MPL_TOTAL]
 
realsizpr
 
realdmppr
 
realelepr
 
int nrepexclude
 
int(* repexclude )[2]
 
realrepexclude_scale
 
CountBuffer nrep
 
EnergyBuffer er
 
VirialBuffer vir_er
 
grad_precderx
 
grad_precdery
 
grad_precderz
 
energy_prec energy_er
 
virial_prec virial_er [9]
 
real r2scale
 
real r3scale
 
real r4scale
 
real r5scale
 
constexpr real pi = M_PI
 \( \pi \) More...
 
constexpr real sqrtpi = 1.77245385090551602730
 \( \sqrt{\pi} \) More...
 
constexpr real radian = 57.2957795130823208768
 \( 180/\pi \) More...
 
constexpr real _1radian = 0.01745329251994329576924
 \( \pi/180 \) More...
 
constexpr int maxnose = bath::maxnose
 Maximum length of the NH chain. More...
 
energy_prec eksum_old
 
energy_prec eksum_mid
 
pos_precleapfrog_x
 
pos_precleapfrog_y
 
pos_precleapfrog_z
 
vel_precleapfrog_vx
 
vel_precleapfrog_vy
 
vel_precleapfrog_vz
 
vel_precleapfrog_vxold
 
vel_precleapfrog_vyold
 
vel_precleapfrog_vzold
 
double hdot_lp
 
double hmass_lp
 
double pnhv_lp
 
double pnhv_pre_lp
 
double pnhm_lp
 
double pnhf_lp
 
double pnh_lp
 
constexpr unsigned RESPA_FAST = 1
 
constexpr unsigned RESPA_SLOW = 2
 
energy_prec eksum
 Kinetic energy. More...
 
energy_prec ekin [3][3]
 Kinetic energy tensor. More...
 
constexpr int OSRW_LAM_LINEAR = 0
 
constexpr int OSRW_LAM_QUADRATIC = 1
 
bool use_osrw
 
double osrw_lambda
 
int osrw_vdw
 
int osrw_ele
 
int osrw_tor
 
energy_prec osrw_du1
 
virial_prec osrw_dv1 [9]
 
grad_precosrw_dgx
 
grad_precosrw_dgy
 
grad_precosrw_dgz
 
realosrw_pchg
 
real(* osrw_pole )[MPL_TOTAL]
 
realosrw_polarity
 
int osrw_ntbnd
 
int(* osrw_itbnd )[2]
 
real(* osrw_tors1 )[4]
 
real(* osrw_tors2 )[4]
 
real(* osrw_tors3 )[4]
 
real(* osrw_tors4 )[4]
 
real(* osrw_tors5 )[4]
 
real(* osrw_tors6 )[4]
 
bool use_pme_stream
 Logical flag for use of a separate CUDA stream for PME. More...
 
void * pinned_buf
 Preallocated pinned host memory. More...
 
void * dptr_buf
 Preallocated device memory. More...
 
cudaEvent_t pme_event_start
 
cudaEvent_t pme_event_finish
 
constexpr unsigned WARP_SIZE = 32
 
constexpr unsigned ALL_LANES = 0xFFFFFFFF
 Mask for all of the lanes in a warp. More...
 
constexpr unsigned BLOCK_DIM = 128
 Default dimension of thread blocks. More...
 
constexpr int PME_BLOCKDIM = 64
 Dimension of the thread blocks for some PME kernels. More...
 
int ndevice
 Total number of visible devices. More...
 
int idevice
 Device ID number in use. More...
 
Platform pltfm_config
 
int rc_flag
 Global bitmask. More...
 
PMEUnit epme_unit
 
PMEUnit ppme_unit
 
PMEUnit pvpme_unit
 
PMEUnit dpme_unit
 
real(* cmp )[10]
 
real(* fmp )[10]
 
real(* cphi )[10]
 
real(* fphi )[20]
 
real(* fuind )[3]
 
real(* fuinp )[3]
 
real(* fdip_phi1 )[10]
 
real(* fdip_phi2 )[10]
 
real(* cphidp )[10]
 
real(* fphidp )[20]
 
VirialBuffer vir_m
 
constexpr int TINKER_CU_THETA_ON_THE_FLY_GRID_MPOLE = 1
 
constexpr int TINKER_CU_THETA_ON_THE_FLY_GRID_UIND = 0
 
pos_precx_pmonte
 Temporary coordinates created for the Monte Carlo barostat. More...
 
pos_precy_pmonte
 Temporary coordinates created for the Monte Carlo barostat. More...
 
pos_precz_pmonte
 Temporary coordinates created for the Monte Carlo barostat. More...
 
double qbar
 Mass of the piston. More...
 
double vbar
 Velocity of the isotropic piston. More...
 
double vbar_matrix [3][3]
 Velocity matrix of the anisotropic piston. More...
 
grad_precgx1
 Gradient for the fast RESPA energy terms. More...
 
grad_precgy1
 Gradient for the fast RESPA energy terms. More...
 
grad_precgz1
 Gradient for the fast RESPA energy terms. More...
 
grad_precgx2
 Gradient for the slow RESPA energy terms. More...
 
grad_precgy2
 Gradient for the slow RESPA energy terms. More...
 
grad_precgz2
 Gradient for the slow RESPA energy terms. More...
 
vel_precvx
 Velocities. More...
 
vel_precvy
 Velocities. More...
 
vel_precvz
 Velocities. More...
 
pos_prec rateps
 
int nratwt
 
int(* iratwt )[3]
 
pos_prec(* kratwt )[3]
 
int nratch
 
int(* iratch )[2]
 
pos_preckratch
 
int nratch2
 
int(* iratch2 )[3]
 
pos_prec(* kratch2 )[2]
 
int nratch3
 
int(* iratch3 )[4]
 
pos_prec(* kratch3 )[3]
 
int nrat
 
int(* irat )[2]
 
pos_preckrat
 
int nratmol
 
int(* iratmol )[2]
 
pos_precrattle_xold
 
pos_precrattle_yold
 
pos_precrattle_zold
 
Molecule rattle_dmol
 
pos_precratcom_x
 
pos_precratcom_y
 
pos_precratcom_z
 
vel_precratcom_vx
 
vel_precratcom_vy
 
vel_precratcom_vz
 
double * ratcom_massfrac
 
energy_prec hc_eksum
 
energy_prec hc_ekin [3][3]
 
virial_prec hc_vir [9]
 
VirialBuffer hc_vir_buf
 
using real2 = float2
 
using real3 = float3
 
using real4 = float4
 
__device__ real3 operator- (real3 a)
 
__device__ real3 operator+ (real3 a, real3 b)
 
__device__ real3 operator- (real3 a, real3 b)
 
__device__ real3 operator* (real a, real3 b)
 
__device__ real3 operator* (real3 b, real a)
 
__device__ void operator+= (real3 &a, real3 b)
 
__device__ void operator-= (real3 &a, real3 b)
 
__device__ void operator*= (real3 &a, real b)
 
__device__ real dot3 (real3 a, real3 b)
 
__device__ real dot3 (real3 a, real bx, real by, real bz)
 
__device__ real dot3 (real ax, real ay, real az, real3 b)
 
__device__ real dot3 (real ax, real ay, real az, real bx, real by, real bz)
 
__device__ real3 matvec (real xx, real xy, real xz, real yy, real yz, real zz, real3 v)
 
__device__ real3 cross (real ax, real ay, real az, real bx, real by, real bz)
 
__device__ real3 cross (real ax, real ay, real az, real3 b)
 
__device__ real3 cross (real3 a, real bx, real by, real bz)
 
__device__ real3 cross (real3 a, real3 b)
 
constexpr int BOUNDS_EVERY_X_STEPS = 500
 Calls bounds() at least every x steps in MD. More...
 
void mdPos (time_prec, pos_prec *, pos_prec *, pos_prec *, const vel_prec *, const vel_prec *, const vel_prec *)
 Updates x, y, z via \( x(t) = x(0) + v(0) t \). More...
 
void mdPos (time_prec dt)
 Calls bounds() at least every x steps in MD. More...
 
void mdPosAxbv (pos_prec a, pos_prec b)
 Updates x, y, z via \( r = a r + b v \). More...
 
void mdPosAxbvAn (pos_prec(*a)[3], pos_prec(*b)[3])
 Updates x, y, z via \( \boldsymbol{r} = \boldsymbol{A}\boldsymbol{r} + \boldsymbol{B}\boldsymbol{v} \). More...
 
void mdDebugPosNorm (pos_prec poseps, time_prec dt, const vel_prec *vx, const vel_prec *vy, const vel_prec *vz)
 Throws an error if one of the atoms moves too far in one position update, and saves the last good coordinates in an external file. More...
 
void mdVel (time_prec dt, const grad_prec *grx, const grad_prec *gry, const grad_prec *grz)
 Updates velocities via \( v(t) = v(0) - (g/m)t \). More...
 
void mdVel2 (time_prec dt, const grad_prec *grx, const grad_prec *gry, const grad_prec *grz, time_prec dt2, const grad_prec *grx2, const grad_prec *gry2, const grad_prec *grz2)
 Updates velocities via \( v = v - (g_1/m) t_1 - (g_2/m) t_2 \). More...
 
void mdVelScale (vel_prec scal, int nelem, vel_prec *vx0, vel_prec *vy0, vel_prec *vz0)
 Updates velocities via \( v = s v \). More...
 
void mdVelAvbf (int nrespa, vel_prec a, vel_prec b, const grad_prec *gx1, const grad_prec *gy1, const grad_prec *gz1, const grad_prec *gx2, const grad_prec *gy2, const grad_prec *gz2)
 Updates velocities via \( v = a v + b (g_1/n + g_2)/m \) (isotropic). If n equals 1, the 2nd set of gradients are ignored. More...
 
void mdVelAvbfAn (int nrespa, vel_prec a[3][3], vel_prec b[3][3], const grad_prec *gx1, const grad_prec *gy1, const grad_prec *gz1, const grad_prec *gx2, const grad_prec *gy2, const grad_prec *gz2)
 Updates velocities via \( \boldsymbol{v} = \boldsymbol{Av} + \boldsymbol{B} (\boldsymbol{g}_1/n + \boldsymbol{g}_2)/m \) (anisotropic). If n equals 1, the 2nd set of gradients are ignored. More...
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MPL_PME_0 
MPL_PME_X 
MPL_PME_Y 
MPL_PME_Z 
MPL_PME_XX 
MPL_PME_YY 
MPL_PME_ZZ 
MPL_PME_XY 
MPL_PME_XZ 
MPL_PME_YZ 
MPL_TOTAL 
MPL_PME_YX 
MPL_PME_ZX 
MPL_PME_ZY 
LFRM_NONE 
LFRM_Z_ONLY 
LFRM_Z_THEN_X 
LFRM_BISECTOR 
LFRM_Z_BISECT 
LFRM_3_FOLD 

◆ Chgpen

enum class tinker::Chgpen
strong
Enumerator
NONE 
GORDON1 

HIPPO.

GORDON2 

AMOEBA Plus.

◆ CrdFormat

enum class tinker::CrdFormat
strong
Enumerator
NONE 
TXYZ1 
TXYZ2_PBC 
DCD 

◆ ExpolScr

enum class tinker::ExpolScr
strong
Enumerator
NONE 
S2U 
S2 

◆ UPred

enum class tinker::UPred
strong
Enumerator
NONE 
GEAR 
ASPC 
LSQR 

Function Documentation

◆ alterpol()

void tinker::alterpol ( real(*)  polscale[3][3],
real(*)  polinv[3][3] 
)

◆ bsplgen2()

template<int LEVEL, int bsorder>
__device__ void tinker::bsplgen2 ( real  w,
real *__restrict__  thetai,
int  k,
int  padded_n,
volatile real *__restrict__  bsbuild_ 
)

◆ chkpoleAtomI()

__device__ void tinker::chkpoleAtomI ( int  i,
real(*)  pole[MPL_TOTAL],
LocalFrame zaxis,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)
inline

◆ damp_aplus3()

__device__ void tinker::damp_aplus3 ( real  r,
real  pdi,
real  ddi,
real  pdk,
real  ddk,
real &__restrict__  scale3,
real &__restrict__  scale5,
real &__restrict__  scale7 
)
inline

◆ damp_aplus3g()

__device__ void tinker::damp_aplus3g ( real  r,
real  rr2,
real  xr,
real  yr,
real  zr,
real  pdi,
real  ddi,
real  pdk,
real  ddk,
real &__restrict__  scale31,
real &__restrict__  scale51,
real &__restrict__  scale71,
real &__restrict__  rc31,
real &__restrict__  rc32,
real &__restrict__  rc33,
real &__restrict__  rc51,
real &__restrict__  rc52,
real &__restrict__  rc53,
real &__restrict__  rc71,
real &__restrict__  rc72,
real &__restrict__  rc73 
)
inline

◆ damp_dir()

__device__ void tinker::damp_dir ( real *__restrict__  dmpi,
real *__restrict__  dmpk,
real  r,
real  alphai,
real  alphak 
)
inline

◆ damp_ewald()

template<int order>
__device__ void tinker::damp_ewald ( real *__restrict__  bn,
real  r,
real  rinv,
real  rr2,
real  aewald 
)
inline

◆ damp_expl()

template<bool DO_G>
__device__ void tinker::damp_expl ( ExpolScr  scrtyp,
real &__restrict__  s2,
real &__restrict__  ds2,
real  r,
real  sizik,
real  alphai,
real  alphak 
)
inline

◆ damp_gordon1()

template<int DirOrder, int MutOrder>
__device__ void tinker::damp_gordon1 ( real *__restrict__  dmpij,
real *__restrict__  dmpi,
real *__restrict__  dmpj,
real  r,
real  ai,
real  aj 
)
inline

◆ damp_gordon2()

template<int ORDER>
__device__ void tinker::damp_gordon2 ( real *__restrict__  dmpik,
real *__restrict__  dmpi,
real *__restrict__  dmpk,
real  r,
real  alphai,
real  alphak 
)
inline

◆ damp_hippodisp()

template<int DO_G>
__device__ void tinker::damp_hippodisp ( real *__restrict__  dmpij,
real  r,
real  rr1,
real  ai,
real  aj 
)
inline

◆ damp_mut()

__device__ void tinker::damp_mut ( real *__restrict__  dmpik,
real  r,
real  alphai,
real  alphak 
)
inline

◆ damp_pole_deprecated()

template<int ORDER>
__device__ void tinker::damp_pole_deprecated ( real *__restrict__  dmpik,
real *__restrict__  dmpi,
real *__restrict__  dmpk,
real  r,
real  alphai,
real  alphak 
)
inline

deprecated

◆ damp_pole_v2()

template<int order>
__device__ void tinker::damp_pole_v2 ( real *__restrict__  dmpij,
real *__restrict__  dmpi,
real *__restrict__  dmpj,
real  r,
real  ai,
real  aj 
)
inline

◆ damp_rep()

template<int order>
__device__ void tinker::damp_rep ( real *__restrict__  dmpik,
real  r,
real  rr1,
real  r2,
real  rr3,
real  rr5,
real  rr7,
real  rr9,
real  rr11,
real  ai,
real  aj 
)
inline

rr1: 1/r ai: dmpi aj: dmpk

◆ damp_rep_deprecated()

template<int order>
__device__ void tinker::damp_rep_deprecated ( real *__restrict__  dmpik,
real  r,
real  rinv,
real  r2,
real  rr3,
real  rr5,
real  rr7,
real  rr9,
real  rr11,
real  dmpi,
real  dmpk 
)
inline

deprecated

◆ damp_thole2()

__device__ void tinker::damp_thole2 ( real  r,
real  pdi,
real  pti,
real  pdk,
real  ptk,
real &__restrict__  scale3,
real &__restrict__  scale5 
)
inline

◆ damp_thole3()

__device__ void tinker::damp_thole3 ( real  r,
real  pdi,
real  pti,
real  pdk,
real  ptk,
real &__restrict__  scale3,
real &__restrict__  scale5,
real &__restrict__  scale7 
)
inline

◆ damp_thole3g()

__device__ void tinker::damp_thole3g ( real  r,
real  rr2,
real  xr,
real  yr,
real  zr,
real  pdi,
real  pti,
real  pdk,
real  ptk,
real &__restrict__  scale31,
real &__restrict__  scale51,
real &__restrict__  scale71,
real &__restrict__  rc31,
real &__restrict__  rc32,
real &__restrict__  rc33,
real &__restrict__  rc51,
real &__restrict__  rc52,
real &__restrict__  rc53,
real &__restrict__  rc71,
real &__restrict__  rc72,
real &__restrict__  rc73 
)
inline

◆ damp_thole4()

__device__ void tinker::damp_thole4 ( real  r,
real  pdi,
real  pti,
real  pdk,
real  ptk,
real &__restrict__  ex3,
real &__restrict__  ex5,
real &__restrict__  ex7,
real &__restrict__  ex9 
)
inline

◆ dexpol()

void tinker::dexpol ( int  vers)

◆ dfieldAplus()

void tinker::dfieldAplus ( real(*)  field[3])

◆ dk_angle()

template<class Ver >
__device__ void tinker::dk_angle ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deax,
grad_prec *__restrict__  deay,
grad_prec *__restrict__  deaz,
const Angle *__restrict__  angtyp,
real  angunit,
int  i,
const int(*)  iang[4],
const real *__restrict__  anat,
const real *__restrict__  ak,
const real *__restrict__  afld,
real  cang,
real  qang,
real  pang,
real  sang,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

Comment Zhi Wang, July 1, 2019

The original Tinker implementation has following expressions xip = xib + xt * delta xap = xia - xip

And they were reorganized to xap = xia - xib - xt * delta for higher accuracy in the single precision mode.

Consider an example where xia = 33.553368, xib = 34.768604 xt = 0.33142909, delta = 0.0044494048, the later expression gives a better numerical result.

◆ dk_angtor()

template<class Ver >
__device__ void tinker::dk_angtor ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deatx,
grad_prec *__restrict__  deaty,
grad_prec *__restrict__  deatz,
real  atorunit,
int  iangtor,
const int(*)  iat[3],
const real(*)  kant[6],
const real *__restrict__  anat,
const int(*)  itors[4],
const real(*)  tors1[4],
const real(*)  tors2[4],
const real(*)  tors3[4],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_bond()

template<class Ver >
__device__ void tinker::dk_bond ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  debx,
grad_prec *__restrict__  deby,
grad_prec *__restrict__  debz,
Bond  bndtyp,
real  bndunit,
int  i,
const int(*)  ibnd[2],
const real *__restrict__  bl,
const real *__restrict__  bk,
real  cbnd,
real  qbnd,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_geom_angle()

template<class Ver >
__device__ void tinker::dk_geom_angle ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  degx,
grad_prec *__restrict__  degy,
grad_prec *__restrict__  degz,
int  i,
const int(*)  iafix[3],
const real(*)  afix[3],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_geom_distance()

template<class Ver >
__device__ void tinker::dk_geom_distance ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  degx,
grad_prec *__restrict__  degy,
grad_prec *__restrict__  degz,
int  i,
const int(*)  idfix[2],
const real(*)  dfix[3],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z,
const int *__restrict__  molec,
BoxShape  box_shape,
real3  lvec1,
real3  lvec2,
real3  lvec3,
real3  recipa,
real3  recipb,
real3  recipc 
)

◆ dk_geom_group()

template<class Ver >
__device__ void tinker::dk_geom_group ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  degx,
grad_prec *__restrict__  degy,
grad_prec *__restrict__  degz,
int  i,
const int(*)  igfix[2],
const real(*)  gfix[3],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z,
const double *__restrict__  mass,
const int *__restrict__  molec,
const int(*)  igrp[2],
const int *__restrict__  kgrp,
const double *__restrict__  grpmass,
BoxShape  box_shape,
real3  lvec1,
real3  lvec2,
real3  lvec3,
real3  recipa,
real3  recipb,
real3  recipc 
)

◆ dk_geom_position()

template<class Ver >
__device__ void tinker::dk_geom_position ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  degx,
grad_prec *__restrict__  degy,
grad_prec *__restrict__  degz,
int  i,
const int *__restrict__  ipfix,
const int(*)  kpfix[3],
const real *__restrict__  xpfix,
const real *__restrict__  ypfix,
const real *__restrict__  zpfix,
const real(*)  pfix[2],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z,
BoxShape  box_shape,
real3  lvec1,
real3  lvec2,
real3  lvec3,
real3  recipa,
real3  recipb,
real3  recipc 
)

◆ dk_geom_torsion()

template<class Ver >
__device__ void tinker::dk_geom_torsion ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  degx,
grad_prec *__restrict__  degy,
grad_prec *__restrict__  degz,
int  i,
const int(*)  itfix[4],
const real(*)  tfix[3],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_improp()

template<class Ver >
__device__ void tinker::dk_improp ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deidx,
grad_prec *__restrict__  deidy,
grad_prec *__restrict__  deidz,
real  idihunit,
int  i,
const int(*)  iiprop[4],
const real *__restrict__  kprop,
const real *__restrict__  vprop,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_imptor()

template<class Ver >
__device__ void tinker::dk_imptor ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deitx,
grad_prec *__restrict__  deity,
grad_prec *__restrict__  deitz,
real  itorunit,
int  i,
const int(*)  iitors[4],
const real(*)  itors1[4],
const real(*)  itors2[4],
const real(*)  itors3[4],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_opbend()

template<class Ver >
__device__ void tinker::dk_opbend ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deopbx,
grad_prec *__restrict__  deopby,
grad_prec *__restrict__  deopbz,
OPBend  opbtyp,
real  opbunit,
int  iopbend,
const int *__restrict__  iopb,
const real *__restrict__  opbk,
const int(*)  iang[4],
real  copb,
real  qopb,
real  popb,
real  sopb,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

Comments Zhi Wang, Jun 25, 2019

The original implementation in Tinker uses ACOS(cosine) to calculate the out-of-plane angle, which is the major source of error in the single precision mode.

These angles (theta) are usually very small (e.g. 0.001 rad), so the value of variable cosine is very close to 1 (cosine = SQRT(1 - eps**2)). As a result, it is much more accurate to use theta = ASIN(eps) instead of theta = ACOS(cosine) to calculate the angles.

◆ dk_pitors()

template<class Ver >
__device__ void tinker::dk_pitors ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deptx,
grad_prec *__restrict__  depty,
grad_prec *__restrict__  deptz,
real  ptorunit,
int  i,
const int(*)  ipit[6],
const real *__restrict__  kpit,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_settle1()

template<class HTYPE >
__device__ void tinker::dk_settle1 ( time_prec  dt,
int  iw,
const pos_prec *__restrict__  xold,
const pos_prec *__restrict__  yold,
const pos_prec *__restrict__  zold,
pos_prec *__restrict__  xnew,
pos_prec *__restrict__  ynew,
pos_prec *__restrict__  znew,
vel_prec *__restrict__  vx,
vel_prec *__restrict__  vy,
vel_prec *__restrict__  vz,
const double *__restrict__  mass,
const int(*)  iratwt[3],
const pos_prec(*)  kratwt[3] 
)

◆ dk_settle2()

template<bool DO_V>
__device__ void tinker::dk_settle2 ( time_prec  dt,
int  iw,
vel_prec *__restrict__  vx,
vel_prec *__restrict__  vy,
vel_prec *__restrict__  vz,
const pos_prec *__restrict__  xpos,
const pos_prec *__restrict__  ypos,
const pos_prec *__restrict__  zpos,
const double *__restrict__  mass,
const int(*)  iratwt[3],
double &__restrict__  vxx,
double &__restrict__  vyx,
double &__restrict__  vzx,
double &__restrict__  vyy,
double &__restrict__  vzy,
double &__restrict__  vzz 
)

◆ dk_strbnd()

template<class Ver >
__device__ void tinker::dk_strbnd ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  debax,
grad_prec *__restrict__  debay,
grad_prec *__restrict__  debaz,
real  stbnunit,
int  istrbnd,
const int(*)  isb[3],
const real(*)  sbk[2],
const real *__restrict__  bl,
const int(*)  iang[4],
const real *__restrict__  anat,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_strtor()

template<class Ver >
__device__ void tinker::dk_strtor ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  debtx,
grad_prec *__restrict__  debty,
grad_prec *__restrict__  debtz,
real  storunit,
int  istrtor,
const int(*)  ist[4],
const real(*)  kst[9],
const real *__restrict__  bl,
const int(*)  itors[4],
const real(*)  tors1[4],
const real(*)  tors2[4],
const real(*)  tors3[4],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_tors()

template<class Ver >
__device__ void tinker::dk_tors ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  detx,
grad_prec *__restrict__  dety,
grad_prec *__restrict__  detz,
real  torsunit,
int  i,
const int(*)  itors[4],
const real(*)  tors1[4],
const real(*)  tors2[4],
const real(*)  tors3[4],
const real(*)  tors4[4],
const real(*)  tors5[4],
const real(*)  tors6[4],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_tortor()

template<class Ver >
__device__ void tinker::dk_tortor ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  dettx,
grad_prec *__restrict__  detty,
grad_prec *__restrict__  dettz,
real  ttorunit,
int  itortor,
const int(*)  itt[3],
const int(*)  ibitor[5],
const int *__restrict__  chkttor_ia_,
const int *__restrict__  tnx,
const int *__restrict__  tny,
const real(*)  ttx[ktrtor::maxtgrd],
const real(*)  tty[ktrtor::maxtgrd],
const real(*)  tbf[ktrtor::maxtgrd2],
const real(*)  tbx[ktrtor::maxtgrd2],
const real(*)  tby[ktrtor::maxtgrd2],
const real(*)  tbxy[ktrtor::maxtgrd2],
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dk_urey()

template<class Ver >
__device__ void tinker::dk_urey ( real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vyx,
real &__restrict__  vzx,
real &__restrict__  vyy,
real &__restrict__  vzy,
real &__restrict__  vzz,
grad_prec *__restrict__  deubx,
grad_prec *__restrict__  deuby,
grad_prec *__restrict__  deubz,
real  ureyunit,
int  i,
const int(*)  iury[3],
const real *__restrict__  uk,
const real *__restrict__  ul,
real  cury,
real  qury,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)

◆ dmpthole2_a()

__device__ void tinker::dmpthole2_a ( real  r,
real  pgamma,
real  pdi,
real  pdk,
real &__restrict__  scale3,
real &__restrict__  scale5 
)
inline

◆ dmpthole3_a()

__device__ void tinker::dmpthole3_a ( real  r,
real  pgamma,
real  pdi,
real  pdk,
real &__restrict__  scale3,
real &__restrict__  scale5,
real &__restrict__  scale7 
)
inline

◆ dmpthole3g_a()

__device__ void tinker::dmpthole3g_a ( real  r,
real  rr2,
real  xr,
real  yr,
real  zr,
real  pgamma,
real  pdi,
real  pdk,
real &__restrict__  scale31,
real &__restrict__  scale51,
real &__restrict__  scale71,
real &__restrict__  rc31,
real &__restrict__  rc32,
real &__restrict__  rc33,
real &__restrict__  rc51,
real &__restrict__  rc52,
real &__restrict__  rc53,
real &__restrict__  rc71,
real &__restrict__  rc72,
real &__restrict__  rc73 
)
inline

◆ dmpthole4_a()

__device__ void tinker::dmpthole4_a ( real  r,
real  pgamma,
real  pdi,
real  pdk,
real &__restrict__  ex3,
real &__restrict__  ex5,
real &__restrict__  ex7,
real &__restrict__  ex9 
)
inline

◆ dotProd_acc() [1/2]

template<class T >
T tinker::dotProd_acc ( const T *  a,
const T *  b,
size_t  nelem,
int  queue 
)

◆ dotProd_acc() [2/2]

template<class T >
void tinker::dotProd_acc ( T *  ans,
const T *  a,
const T *  b,
size_t  nelem,
int  queue 
)

◆ dotProd_cu()

template<class T >
void tinker::dotProd_cu ( T *  ans,
const T *  a,
const T *  b,
size_t  nelem,
int  queue 
)

◆ empoleAplusEwald()

void tinker::empoleAplusEwald ( int  vers,
int  useCF 
)

◆ empoleAplusNonEwald()

void tinker::empoleAplusNonEwald ( int  vers,
int  useCF 
)

◆ empoleChgpenSelf_cu()

template<bool do_a, bool do_e, int CFLX>
__global__ void tinker::empoleChgpenSelf_cu ( CountBuffer __restrict__  nem,
EnergyBuffer __restrict__  em,
const real(*)  rpole[10],
real *__restrict__  pot,
int  n,
real  f,
real  aewald 
)

◆ empoleSelf_cu()

template<bool do_a>
__global__ void tinker::empoleSelf_cu ( CountBuffer __restrict__  nem,
EnergyBuffer __restrict__  em,
const real(*)  rpole[10],
int  n,
real  f,
real  aewald 
)

◆ epolarAplusEwald()

void tinker::epolarAplusEwald ( int  vers,
int  useCF 
)

◆ epolarAplusNonEwald()

void tinker::epolarAplusNonEwald ( int  vers,
int  useCF 
)

◆ expolData()

void tinker::expolData ( RcOp  )

◆ getKV() [1/2]

template<class T >
void tinker::getKV ( std::string  k,
std::vector< T > &  v 
)

◆ getKV() [2/2]

template<class T1 , class T2 >
void tinker::getKV ( std::string  k,
T1 &  v,
T2  vIfKNotFound 
)

◆ lf_lpiston_npt()

void tinker::lf_lpiston_npt ( int  istep,
time_prec  dt_ps 
)

◆ nextarg() [1/2]

template<size_t Len>
void tinker::nextarg ( char(&)  str[Len],
bool &  exist 
)

◆ nextarg() [2/2]

void tinker::nextarg ( size_t  len,
char *  str,
bool &  exist 
)

◆ osrw_altele()

void tinker::osrw_altele ( double  )

◆ osrw_alttor()

void tinker::osrw_alttor ( double  )

◆ osrw_altvdw()

void tinker::osrw_altvdw ( double  )

◆ osrw_energy() [1/2]

void tinker::osrw_energy ( int  vers)

◆ osrw_energy() [2/2]

void tinker::osrw_energy ( int  vers,
unsigned  tsflag,
const TimeScaleConfig tsconfig 
)

◆ osrw_lam_expr0()

double tinker::osrw_lam_expr0 ( int  form,
double  lam 
)

◆ osrw_lam_expr1()

double tinker::osrw_lam_expr1 ( int  form,
double  lam 
)

◆ osrw_lam_expr2()

double tinker::osrw_lam_expr2 ( int  form,
double  lam 
)

◆ osrw_mech()

void tinker::osrw_mech ( )

◆ osrwData()

void tinker::osrwData ( RcOp  )

◆ pair_alterpol()

__device__ void tinker::pair_alterpol ( ExpolScr  scrtyp,
real  r,
real  pscale,
real  cut,
real  off,
real  xr,
real  yr,
real  zr,
real  springi,
real  sizi,
real  alphai,
real  springk,
real  sizk,
real  alphak,
real  ks2i[3][3],
real  ks2k[3][3] 
)
inline

◆ pair_charge()

template<class Ver , class ETYP >
__device__ void tinker::pair_charge ( real  r,
real  xr,
real  yr,
real  zr,
real  cscale,
real  chgi,
real  chgk,
real  ebuffer,
real  f,
real  aewald,
real  cut,
real  off,
real &__restrict__  grdx,
real &__restrict__  grdy,
real &__restrict__  grdz,
int &__restrict__  ctl,
real &__restrict__  etl,
real &__restrict__  vtlxx,
real &__restrict__  vtlxy,
real &__restrict__  vtlxz,
real &__restrict__  vtlyy,
real &__restrict__  vtlyz,
real &__restrict__  vtlzz 
)

◆ pair_chg_v2()

template<bool DO_G, class ETYP , int SCALE>
__device__ void tinker::pair_chg_v2 ( real  r,
real  invr,
real  cscale,
real  chgi,
real  chgk,
real  f,
real  aewald,
real  eccut,
real  ecoff,
real &__restrict__  ec,
real &__restrict__  dec 
)

◆ pair_chg_v3()

template<bool DO_G, class ETYP , int SCALE>
__device__ void tinker::pair_chg_v3 ( real  r,
real  cscale,
real  chgi,
real  chgk,
real  ebuffer,
real  f,
real  aewald,
real  eccut,
real  ecoff,
real &__restrict__  ec,
real &__restrict__  dec 
)

◆ pair_chgtrn()

template<bool DO_G>
__device__ void tinker::pair_chgtrn ( real  r,
real  cut,
real  off,
real  mscale,
real  f,
real  alphai,
real  chgi,
real  alphak,
real  chgk,
real  elambda,
e_prec &__restrict__  e,
e_prec &__restrict__  de 
)

◆ pair_chgtrn_aplus()

template<bool DO_G>
__device__ void tinker::pair_chgtrn_aplus ( real  r,
real  cut,
real  off,
real  mscale,
real  f,
real  alphai,
real  chgi,
real  alphak,
real  chgk,
real  elambda,
e_prec &__restrict__  e,
e_prec &__restrict__  de 
)

◆ pair_dexpol()

__device__ void tinker::pair_dexpol ( ExpolScr  scrtyp,
real  r,
real  pscale,
real  cut,
real  off,
real  xr,
real  yr,
real  zr,
real  uix,
real  uiy,
real  uiz,
real  ukx,
real  uky,
real  ukz,
real  springi,
real  sizi,
real  alphai,
real  springk,
real  sizk,
real  alphak,
const real  f,
real  frc[3] 
)
inline

◆ pair_dfield()

template<class ETYP >
__device__ void tinker::pair_dfield ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  pscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  pdi,
real  pti,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  pdk,
real  ptk,
real  aewald,
real3 &__restrict__  fid,
real3 &__restrict__  fip,
real3 &__restrict__  fkd,
real3 &__restrict__  fkp 
)

◆ pair_dfield_aplus()

template<class ETYP >
__device__ void tinker::pair_dfield_aplus ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  pdi,
real  ddi,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  pdk,
real  ddk,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  aewald,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz 
)

◆ pair_dfield_aplus_v2()

template<class ETYP >
__device__ void tinker::pair_dfield_aplus_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  pdi,
real  ddi,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  pdk,
real  ddk,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  aewald,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz 
)

◆ pair_dfield_chgpen()

template<class ETYP >
__device__ void tinker::pair_dfield_chgpen ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  corei,
real  vali,
real  alphai,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  corek,
real  valk,
real  alphak,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  aewald,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz 
)

◆ pair_dfield_v2()

template<class ETYP >
__device__ void tinker::pair_dfield_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  pscale,
real  aewald,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  pdi,
real  pti,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  pdk,
real  ptk,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fipx,
real &__restrict__  fipy,
real &__restrict__  fipz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz,
real &__restrict__  fkpx,
real &__restrict__  fkpy,
real &__restrict__  fkpz 
)

◆ pair_disp()

template<bool DO_G, class DTYP , int SCALE, int SOFTCORE>
__device__ void tinker::pair_disp ( real  r,
real  r2,
real  rr1,
real  dspscale,
real  aewald,
real  ci,
real  ai,
real  ck,
real  ak,
real  vlambda,
real  edcut,
real  edoff,
real &__restrict__  e,
real &__restrict__  de 
)

◆ pair_disp_obsolete()

template<bool DO_G, class DTYP , int SCALE>
__device__ void tinker::pair_disp_obsolete ( real  r,
real  r2,
real  rr1,
real  dspscale,
real  aewald,
real  ci,
real  ai,
real  ck,
real  ak,
real  edcut,
real  edoff,
real &__restrict__  e,
real &__restrict__  de 
)

◆ pair_mpole_chgpen()

template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void tinker::pair_mpole_chgpen ( real  r2,
real  xr,
real  yr,
real  zr,
real  mscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  corei,
real  vali,
real  alphai,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  corek,
real  valk,
real  alphak,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  f,
real  aewald,
real &__restrict__  e,
real &__restrict__  poti,
real &__restrict__  potk,
PairMPoleGrad &__restrict__  pgrad 
)

◆ pair_mpole_chgpen_aplus()

template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void tinker::pair_mpole_chgpen_aplus ( real  r2,
real  xr,
real  yr,
real  zr,
real  mscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  corei,
real  vali,
real  alphai,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  corek,
real  valk,
real  alphak,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  f,
real  aewald,
real &__restrict__  e,
real &__restrict__  poti,
real &__restrict__  potk,
PairMPoleGrad &__restrict__  pgrad 
)

◆ pair_mpole_v2()

template<class Ver , class ETYP >
__device__ void tinker::pair_mpole_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  mscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  f,
real  aewald,
real &__restrict__  frcxi,
real &__restrict__  frcyi,
real &__restrict__  frczi,
real &__restrict__  frcxk,
real &__restrict__  frcyk,
real &__restrict__  frczk,
real &__restrict__  trqxi,
real &__restrict__  trqyi,
real &__restrict__  trqzi,
real &__restrict__  trqxk,
real &__restrict__  trqyk,
real &__restrict__  trqzk,
real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vxy,
real &__restrict__  vxz,
real &__restrict__  vyy,
real &__restrict__  vyz,
real &__restrict__  vzz 
)

◆ pair_polar()

template<bool do_e, bool do_g, class ETYP >
__device__ void tinker::pair_polar ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  pscale,
real  uscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  uix,
real  uiy,
real  uiz,
real  uixp,
real  uiyp,
real  uizp,
real  pdi,
real  pti,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  ukx,
real  uky,
real  ukz,
real  ukxp,
real  ukyp,
real  ukzp,
real  pdk,
real  ptk,
real  f,
real  aewald,
real &__restrict__  e,
PairPolarGrad &__restrict__  pgrad 
)

◆ pair_polar_aplus()

template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void tinker::pair_polar_aplus ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  uscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  pdi,
real  pti,
real  ddi,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  uix,
real  uiy,
real  uiz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  pdk,
real  ptk,
real  ddk,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  ukx,
real  uky,
real  ukz,
real  f,
real  aewald,
real &__restrict__  e,
real &__restrict__  poti,
real &__restrict__  potk,
PairPolarGrad &__restrict__  pgrad 
)

◆ pair_polar_aplus_v2()

template<class Ver , class ETYP , int CFLX>
__device__ void tinker::pair_polar_aplus_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  uscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  uix,
real  uiy,
real  uiz,
real  pdi,
real  pti,
real  ddi,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  ukx,
real  uky,
real  ukz,
real  pdk,
real  ptk,
real  ddk,
real  f,
real  aewald,
real &__restrict__  frcxi,
real &__restrict__  frcyi,
real &__restrict__  frczi,
real &__restrict__  frcxk,
real &__restrict__  frcyk,
real &__restrict__  frczk,
real &__restrict__  uf0i,
real &__restrict__  uf1i,
real &__restrict__  uf2i,
real &__restrict__  uf0k,
real &__restrict__  uf1k,
real &__restrict__  uf2k,
real &__restrict__  duf0i,
real &__restrict__  duf1i,
real &__restrict__  duf2i,
real &__restrict__  duf3i,
real &__restrict__  duf4i,
real &__restrict__  duf5i,
real &__restrict__  duf0k,
real &__restrict__  duf1k,
real &__restrict__  duf2k,
real &__restrict__  duf3k,
real &__restrict__  duf4k,
real &__restrict__  duf5k,
real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vxy,
real &__restrict__  vxz,
real &__restrict__  vyy,
real &__restrict__  vyz,
real &__restrict__  vzz,
real &__restrict__  poti,
real &__restrict__  potk 
)

◆ pair_polar_chgpen()

template<bool do_e, bool do_g, class ETYP , int CFLX>
__device__ void tinker::pair_polar_chgpen ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  wscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  corei,
real  vali,
real  alphai,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  uix,
real  uiy,
real  uiz,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  corek,
real  valk,
real  alphak,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  ukx,
real  uky,
real  ukz,
real  f,
real  aewald,
real &__restrict__  e,
real &__restrict__  poti,
real &__restrict__  potk,
PairPolarGrad &__restrict__  pgrad 
)

◆ pair_polar_v2()

template<class Ver , class ETYP >
__device__ void tinker::pair_polar_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  dscale,
real  pscale,
real  uscale,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  uix,
real  uiy,
real  uiz,
real  uixp,
real  uiyp,
real  uizp,
real  pdi,
real  pti,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real  ukx,
real  uky,
real  ukz,
real  ukxp,
real  ukyp,
real  ukzp,
real  pdk,
real  ptk,
real  f,
real  aewald,
real &__restrict__  frcxi,
real &__restrict__  frcyi,
real &__restrict__  frczi,
real &__restrict__  frcxk,
real &__restrict__  frcyk,
real &__restrict__  frczk,
real &__restrict__  uf0i,
real &__restrict__  uf1i,
real &__restrict__  uf2i,
real &__restrict__  uf0k,
real &__restrict__  uf1k,
real &__restrict__  uf2k,
real &__restrict__  duf0i,
real &__restrict__  duf1i,
real &__restrict__  duf2i,
real &__restrict__  duf3i,
real &__restrict__  duf4i,
real &__restrict__  duf5i,
real &__restrict__  duf0k,
real &__restrict__  duf1k,
real &__restrict__  duf2k,
real &__restrict__  duf3k,
real &__restrict__  duf4k,
real &__restrict__  duf5k,
real &__restrict__  e,
real &__restrict__  vxx,
real &__restrict__  vxy,
real &__restrict__  vxz,
real &__restrict__  vyy,
real &__restrict__  vyz,
real &__restrict__  vzz 
)

◆ pair_repel()

template<bool do_g, int SOFTCORE>
__device__ void tinker::pair_repel ( real  r2,
real  rscale,
real  vlambda,
real  cut,
real  off,
real  xr,
real  yr,
real  zr,
real  sizi,
real  dmpi,
real  vali,
real  ci,
real  dix,
real  diy,
real  diz,
real  qixx,
real  qixy,
real  qixz,
real  qiyy,
real  qiyz,
real  qizz,
real  sizk,
real  dmpk,
real  valk,
real  ck,
real  dkx,
real  dky,
real  dkz,
real  qkxx,
real  qkxy,
real  qkxz,
real  qkyy,
real  qkyz,
real  qkzz,
real &__restrict__  e,
PairRepelGrad &__restrict__  pgrad 
)

◆ pair_ufield()

template<class ETYP >
__device__ void tinker::pair_ufield ( real  r2,
real  xr,
real  yr,
real  zr,
real  uscale,
real  uindi0,
real  uindi1,
real  uindi2,
real  uinpi0,
real  uinpi1,
real  uinpi2,
real  pdi,
real  pti,
real  uindk0,
real  uindk1,
real  uindk2,
real  uinpk0,
real  uinpk1,
real  uinpk2,
real  pdk,
real  ptk,
real  aewald,
real3 &__restrict__  fid,
real3 &__restrict__  fip,
real3 &__restrict__  fkd,
real3 &__restrict__  fkp 
)

◆ pair_ufield_aplus()

template<class ETYP >
__device__ void tinker::pair_ufield_aplus ( real  r2,
real  xr,
real  yr,
real  zr,
real  uscale,
real  uindi0,
real  uindi1,
real  uindi2,
real  pdi,
real  pti,
real  uindk0,
real  uindk1,
real  uindk2,
real  pdk,
real  ptk,
real  aewald,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz 
)

◆ pair_ufield_aplus_v2()

template<class ETYP >
__device__ void tinker::pair_ufield_aplus_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  uscale,
real  uindi0,
real  uindi1,
real  uindi2,
real  pdi,
real  pti,
real  uindk0,
real  uindk1,
real  uindk2,
real  pdk,
real  ptk,
real  aewald,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz 
)

◆ pair_ufield_chgpen()

template<class ETYP >
__device__ void tinker::pair_ufield_chgpen ( real  r2,
real  xr,
real  yr,
real  zr,
real  wscale,
real  uindi0,
real  uindi1,
real  uindi2,
real  corei,
real  vali,
real  alphai,
real  uindk0,
real  uindk1,
real  uindk2,
real  corek,
real  valk,
real  alphak,
real  aewald,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz 
)

◆ pair_ufield_v2()

template<class ETYP >
__device__ void tinker::pair_ufield_v2 ( real  r2,
real  xr,
real  yr,
real  zr,
real  uscale,
real  aewald,
real  uindi0,
real  uindi1,
real  uindi2,
real  uinpi0,
real  uinpi1,
real  uinpi2,
real  pdi,
real  pti,
real  uindk0,
real  uindk1,
real  uindk2,
real  uinpk0,
real  uinpk1,
real  uinpk2,
real  pdk,
real  ptk,
real &__restrict__  fidx,
real &__restrict__  fidy,
real &__restrict__  fidz,
real &__restrict__  fipx,
real &__restrict__  fipy,
real &__restrict__  fipz,
real &__restrict__  fkdx,
real &__restrict__  fkdy,
real &__restrict__  fkdz,
real &__restrict__  fkpx,
real &__restrict__  fkpy,
real &__restrict__  fkpz 
)

◆ reduce()

template<class T , unsigned int B, class Op >
__global__ void tinker::reduce ( T *  g_odata,
const T *  g_idata,
size_t  n,
Op  op = Op() 
)

◆ reduce2()

template<class T , unsigned int B, unsigned int HN, size_t N, class Op >
__global__ void tinker::reduce2 ( T(*)  g_odata[HN],
const T(*)  g_idata[N],
size_t  n,
Op  op = Op() 
)

◆ reduceSum2_acc()

template<class HT , size_t HN, class DPTR >
void tinker::reduceSum2_acc ( HT(&)  h_ans[HN],
DPTR  v,
size_t  nelem,
int  queue 
)

◆ reduceSum2_cu()

template<class HT , size_t HN, class DPTR >
void tinker::reduceSum2_cu ( HT(&)  h_ans[HN],
DPTR  v,
size_t  nelem,
int  queue 
)

◆ reduceSum2OnDevice_acc()

template<class HT , size_t HN, class DPTR >
void tinker::reduceSum2OnDevice_acc ( HT(&)  [HN],
DPTR  ,
size_t  ,
int   
)

◆ reduceSum2OnDevice_cu()

template<class HT , size_t HN, class DPTR >
void tinker::reduceSum2OnDevice_cu ( HT(&)  [HN],
DPTR  ,
size_t  ,
int   
)

◆ reduceSum_acc()

template<class T >
T tinker::reduceSum_acc ( const T *  gpu_a,
size_t  nelem,
int  queue 
)

◆ reduceSum_cu()

template<class T >
T tinker::reduceSum_cu ( const T *  a,
size_t  nelem,
int  queue 
)

◆ reduceSumOnDevice_acc()

template<class T >
void tinker::reduceSumOnDevice_acc ( T *  ,
const T *  ,
size_t  ,
int   
)

◆ reduceSumOnDevice_cu()

template<class T >
void tinker::reduceSumOnDevice_cu ( T *  ,
const T *  ,
size_t  ,
int   
)

◆ rotpoleAddBy()

__device__ void tinker::rotpoleAddBy ( real *__restrict__  a,
const real *__restrict__  b 
)
inline

◆ rotpoleAddBy2()

__device__ void tinker::rotpoleAddBy2 ( real *__restrict__  a,
const real *__restrict__  b,
const real *__restrict__  c 
)
inline

◆ rotpoleAtomI()

__device__ void tinker::rotpoleAtomI ( int  i,
real(*)  rpole[MPL_TOTAL],
const real(*)  pole[MPL_TOTAL],
const LocalFrame *__restrict__  zaxis,
const real *__restrict__  x,
const real *__restrict__  y,
const real *__restrict__  z 
)
inline

◆ rotpoleNorm()

__device__ void tinker::rotpoleNorm ( real a)
inline

◆ rotsite()

__device__ void tinker::rotsite ( int  isite,
const real(*)  a[3],
real(*)  rpole[10],
const real(*)  pole[10] 
)
inline

◆ scaleArray_acc()

template<class T >
void tinker::scaleArray_acc ( T *  dst,
scal,
size_t  nelem,
int  queue 
)

◆ scaleArray_cu()

template<class T >
void tinker::scaleArray_cu ( T *  dst,
scal,
size_t  nelem,
int  queue 
)

◆ sparsePrecondApply3()

void tinker::sparsePrecondApply3 ( const real(*)  rsd[3],
real(*)  zrsd[3] 
)

◆ torqueCross()

__device__ void tinker::torqueCross ( real *__restrict__  ans,
const real *__restrict__  u,
const real *__restrict__  v 
)
inline

◆ torqueDot()

__device__ real tinker::torqueDot ( const real *__restrict__  a,
const real *__restrict__  b 
)
inline

◆ torqueNormal()

__device__ void tinker::torqueNormal ( real *__restrict__  a,
real  _1_na 
)
inline

◆ tri_to_xy()

__device__ void tinker::tri_to_xy ( int  f,
int &  x,
int &  y 
)
inline

◆ ufieldAplus()

void tinker::ufieldAplus ( const real(*)  uind[3],
real(*)  field[3] 
)

◆ warp_reduce()

template<class T , unsigned int B, class Op >
__device__ void tinker::warp_reduce ( volatile T *  sd,
unsigned int  t,
Op  op 
)
inline

◆ warp_reduce2()

template<class T , unsigned int HN, unsigned int B, class Op >
__device__ void tinker::warp_reduce2 ( volatile T(*)  sd[B],
unsigned int  t,
Op  op 
)
inline

◆ xy_to_tri()

__device__ int tinker::xy_to_tri ( int  x,
int  y 
)
inline

◆ zero() [1/3]

__device__ void tinker::zero ( PairMPoleGrad pgrad)
inline

◆ zero() [2/3]

__device__ void tinker::zero ( PairPolarGrad pgrad)
inline

◆ zero() [3/3]

__device__ void tinker::zero ( PairRepelGrad pgrad)
inline

◆ zeroOnDevice3Async_acc() [1/2]

template<class T >
void tinker::zeroOnDevice3Async_acc ( int  nelem,
T *  a1,
T *  a2,
T *  a3 
)

◆ zeroOnDevice3Async_acc() [2/2]

template<class T , int N>
void tinker::zeroOnDevice3Async_acc ( int  nelem,
T(*)  a1[N],
T(*)  a2[N],
T(*)  a3[N] 
)

◆ zeroOnDevice3Async_cu() [1/2]

template<class T >
void tinker::zeroOnDevice3Async_cu ( int  nelem,
T *  a1,
T *  a2,
T *  a3 
)

◆ zeroOnDevice3Async_cu() [2/2]

template<class T , int N>
void tinker::zeroOnDevice3Async_cu ( int  nelem,
T(*)  a1[N],
T(*)  a2[N],
T(*)  a3[N] 
)

◆ zeroOnDevice9Async_acc()

template<class T >
void tinker::zeroOnDevice9Async_acc ( int  nelem,
T *  a1,
T *  a2,
T *  a3,
T *  a4,
T *  a5,
T *  a6,
T *  a7,
T *  a8,
T *  a9 
)

◆ zeroOnDevice9Async_cu()

template<class T >
void tinker::zeroOnDevice9Async_cu ( int  nelem,
T *  a1,
T *  a2,
T *  a3,
T *  a4,
T *  a5,
T *  a6,
T *  a7,
T *  a8,
T *  a9 
)

Variable Documentation

◆ abflx

real(* tinker::abflx)[2]
extern

◆ adisp

real* tinker::adisp
extern

◆ aflx

real(* tinker::aflx)[2]
extern

◆ atom_eps

real* tinker::atom_eps
extern

◆ atom_rad

real* tinker::atom_rad
extern

◆ atomic

int* tinker::atomic
extern

◆ balist

int(* tinker::balist)[2]
extern

◆ bflx

real* tinker::bflx
extern

◆ c2scale

real tinker::c2scale
extern

◆ c3scale

real tinker::c3scale

◆ c4scale

real tinker::c4scale

◆ c5scale

real tinker::c5scale

◆ cexclude

int(* tinker::cexclude)[2]
extern

◆ cexclude_scale

real* tinker::cexclude_scale
extern

◆ chg_coalesced

real* tinker::chg_coalesced
extern

◆ chgct

real* tinker::chgct
extern

◆ csix

real* tinker::csix
extern

◆ csixpr

real tinker::csixpr
extern

◆ ctrntyp

Chgtrn tinker::ctrntyp
extern

◆ cvexclude

int(* tinker::cvexclude)[2]
extern

◆ cvexclude_scale

real(* tinker::cvexclude_scale)[2]
extern

◆ d1scale

real tinker::d1scale
extern

◆ d2scale

real tinker::d2scale
extern

◆ d3scale

real tinker::d3scale
extern

◆ d4scale

real tinker::d4scale
extern

◆ decfx

real* tinker::decfx
extern

◆ decfy

real* tinker::decfy
extern

◆ decfz

real* tinker::decfz
extern

◆ dectx

grad_prec* tinker::dectx
extern

◆ decty

grad_prec* tinker::decty
extern

◆ dectz

grad_prec* tinker::dectz
extern

◆ decx

grad_prec* tinker::decx
extern

◆ decy

grad_prec* tinker::decy
extern

◆ decz

grad_prec* tinker::decz
extern

◆ dedspx

grad_prec* tinker::dedspx
extern

◆ dedspy

grad_prec* tinker::dedspy
extern

◆ dedspz

grad_prec* tinker::dedspz
extern

◆ demx

grad_prec* tinker::demx
extern

◆ demy

grad_prec* tinker::demy
extern

◆ demz

grad_prec* tinker::demz
extern

◆ depx

grad_prec* tinker::depx
extern

◆ depy

grad_prec* tinker::depy
extern

◆ depz

grad_prec* tinker::depz
extern

◆ derx

grad_prec* tinker::derx
extern

◆ dery

grad_prec* tinker::dery
extern

◆ derz

grad_prec* tinker::derz
extern

◆ devx

grad_prec* tinker::devx
extern

◆ devy

grad_prec* tinker::devy
extern

◆ devz

grad_prec* tinker::devz
extern

◆ dirdamp

real* tinker::dirdamp
extern

◆ dmpct

real* tinker::dmpct
extern

◆ dmppep

real* tinker::dmppep
extern

◆ dmppr

real* tinker::dmppr
extern

◆ dpexclude

int(* tinker::dpexclude)[2]
extern

◆ dpexclude_scale

real(* tinker::dpexclude_scale)[2]
extern

◆ dpuexclude

int(* tinker::dpuexclude)[2]
extern

◆ dpuexclude_scale

real(* tinker::dpuexclude_scale)[3]
extern

◆ dsp2scale

real tinker::dsp2scale
extern

◆ dsp3scale

real tinker::dsp3scale
extern

◆ dsp4scale

real tinker::dsp4scale
extern

◆ dsp5scale

real tinker::dsp5scale
extern

◆ dspexclude

int(* tinker::dspexclude)[2]
extern

◆ dspexclude_scale

real* tinker::dspexclude_scale
extern

◆ dufld

real(* tinker::dufld)[6]
extern

◆ ebuffer

real tinker::ebuffer
extern

◆ ec

EnergyBuffer tinker::ec
extern

◆ ect

EnergyBuffer tinker::ect
extern

◆ edsp

EnergyBuffer tinker::edsp
extern

◆ eksum_mid

energy_prec tinker::eksum_mid
extern

◆ eksum_old

energy_prec tinker::eksum_old
extern

◆ elepr

real* tinker::elepr
extern

◆ elrc_vol_dsp

real tinker::elrc_vol_dsp
extern

◆ em

EnergyBuffer tinker::em
extern

◆ energy_ec

energy_prec tinker::energy_ec
extern

◆ energy_ect

energy_prec tinker::energy_ect
extern

◆ energy_edsp

energy_prec tinker::energy_edsp
extern

◆ energy_em

energy_prec tinker::energy_em
extern

◆ energy_ep

energy_prec tinker::energy_ep
extern

◆ energy_er

energy_prec tinker::energy_er
extern

◆ energy_ev

energy_prec tinker::energy_ev
extern

◆ ep

EnergyBuffer tinker::ep
extern

◆ epsilon

real* tinker::epsilon
extern

◆ epsilon4

real* tinker::epsilon4
extern

◆ epsrule

Vdw tinker::epsrule
extern

◆ er

EnergyBuffer tinker::er
extern

◆ ev

EnergyBuffer tinker::ev
extern

◆ gyred

grad_prec* tinker::gyred
extern

◆ gzred

grad_prec* tinker::gzred
extern

◆ hdot_lp

double tinker::hdot_lp
extern

◆ hmass_lp

double tinker::hmass_lp
extern

◆ ired

int* tinker::ired
extern

◆ jpolar

int* tinker::jpolar
extern

◆ kpep

real* tinker::kpep
extern

◆ kred

real* tinker::kred
extern

◆ leapfrog_vx

vel_prec* tinker::leapfrog_vx
extern

◆ leapfrog_vxold

vel_prec* tinker::leapfrog_vxold
extern

◆ leapfrog_vy

vel_prec* tinker::leapfrog_vy
extern

◆ leapfrog_vyold

vel_prec* tinker::leapfrog_vyold
extern

◆ leapfrog_vz

vel_prec* tinker::leapfrog_vz
extern

◆ leapfrog_vzold

vel_prec* tinker::leapfrog_vzold
extern

◆ leapfrog_x

pos_prec* tinker::leapfrog_x
extern

◆ leapfrog_y

pos_prec* tinker::leapfrog_y
extern

◆ leapfrog_z

pos_prec* tinker::leapfrog_z
extern

◆ lpep

int* tinker::lpep
extern

◆ m2scale

real tinker::m2scale
extern

◆ m3scale

real tinker::m3scale
extern

◆ m4scale

real tinker::m4scale
extern

◆ m5scale

real tinker::m5scale
extern

◆ maxualt

int tinker::maxualt
extern

◆ mdpuexclude

int(* tinker::mdpuexclude)[2]
extern

◆ mdpuexclude_scale

real(* tinker::mdpuexclude_scale)[4]
extern

◆ mdwexclude

int(* tinker::mdwexclude)[2]
extern

◆ mdwexclude_scale

real(* tinker::mdwexclude_scale)[3]
extern

◆ mexclude

int(* tinker::mexclude)[2]
extern

◆ mexclude_scale

real* tinker::mexclude_scale
extern

◆ mono0

real* tinker::mono0
extern

◆ mut_coalesced

int* tinker::mut_coalesced
extern

◆ ncexclude

int tinker::ncexclude
extern

◆ nct

CountBuffer tinker::nct
extern

◆ ncvexclude

int tinker::ncvexclude
extern

◆ ndisp

CountBuffer tinker::ndisp
extern

◆ ndpexclude

int tinker::ndpexclude
extern

◆ ndpuexclude

int tinker::ndpuexclude
extern

◆ ndspexclude

int tinker::ndspexclude
extern

◆ nec

CountBuffer tinker::nec
extern

◆ nem

CountBuffer tinker::nem
extern

◆ nep

CountBuffer tinker::nep
extern

◆ nev

CountBuffer tinker::nev
extern

◆ njpolar

int tinker::njpolar
extern

◆ nmdpuexclude

int tinker::nmdpuexclude
extern

◆ nmdwexclude

int tinker::nmdwexclude
extern

◆ nmexclude

int tinker::nmexclude
extern

◆ nrep

CountBuffer tinker::nrep
extern

◆ nrepexclude

int tinker::nrepexclude
extern

◆ nualt

int tinker::nualt
extern

◆ nuexclude

int tinker::nuexclude
extern

◆ nvdw14

int tinker::nvdw14
extern

◆ nvexclude

int tinker::nvexclude
extern

◆ nwexclude

int tinker::nwexclude
extern

◆ osrw_dgx

grad_prec* tinker::osrw_dgx
extern

◆ osrw_dgy

grad_prec * tinker::osrw_dgy

◆ osrw_dgz

grad_prec * tinker::osrw_dgz

◆ osrw_du1

energy_prec tinker::osrw_du1
extern

◆ osrw_dv1

virial_prec tinker::osrw_dv1[9]
extern

◆ osrw_ele

int tinker::osrw_ele
extern

◆ osrw_itbnd

int(* tinker::osrw_itbnd)[2]
extern

◆ OSRW_LAM_LINEAR

constexpr int tinker::OSRW_LAM_LINEAR = 0
constexpr

◆ OSRW_LAM_QUADRATIC

constexpr int tinker::OSRW_LAM_QUADRATIC = 1
constexpr

◆ osrw_lambda

double tinker::osrw_lambda
extern

◆ osrw_ntbnd

int tinker::osrw_ntbnd
extern

◆ osrw_pchg

real* tinker::osrw_pchg
extern

◆ osrw_polarity

real* tinker::osrw_polarity
extern

◆ osrw_pole

real(* tinker::osrw_pole)[MPL_TOTAL]
extern

◆ osrw_tor

int tinker::osrw_tor
extern

◆ osrw_tors1

real(* tinker::osrw_tors1)[4]
extern

◆ osrw_tors2

real(* tinker::osrw_tors2)[4]
extern

◆ osrw_tors3

real(* tinker::osrw_tors3)[4]
extern

◆ osrw_tors4

real(* tinker::osrw_tors4)[4]
extern

◆ osrw_tors5

real(* tinker::osrw_tors5)[4]
extern

◆ osrw_tors6

real(* tinker::osrw_tors6)[4]
extern

◆ osrw_vdw

int tinker::osrw_vdw
extern

◆ p2iscale

real tinker::p2iscale
extern

◆ p2scale

real tinker::p2scale
extern

◆ p3iscale

real tinker::p3iscale
extern

◆ p3scale

real tinker::p3scale
extern

◆ p4iscale

real tinker::p4iscale
extern

◆ p4scale

real tinker::p4scale
extern

◆ p5iscale

real tinker::p5iscale
extern

◆ p5scale

real tinker::p5scale
extern

◆ palpha

real* tinker::palpha
extern

◆ pcore

real* tinker::pcore
extern

◆ pdamp

real* tinker::pdamp
extern

◆ pdelta

real* tinker::pdelta
extern

◆ pentyp

Chgpen tinker::pentyp
extern

◆ pnh_lp

double tinker::pnh_lp
extern

◆ pnhf_lp

double tinker::pnhf_lp
extern

◆ pnhm_lp

double tinker::pnhm_lp
extern

◆ pnhv_lp

double tinker::pnhv_lp
extern

◆ pnhv_pre_lp

double tinker::pnhv_pre_lp
extern

◆ polarity

real* tinker::polarity
extern

◆ polarity_inv

real* tinker::polarity_inv
extern

◆ pole

real(* tinker::pole)[MPL_TOTAL]
extern

◆ polinv

real(* tinker::polinv)[3][3]
extern

◆ polpred

UPred tinker::polpred
extern

◆ polscale

real(* tinker::polscale)[3][3]
extern

◆ pot

real* tinker::pot
extern

◆ prepep

real* tinker::prepep
extern

◆ pval

real* tinker::pval
extern

◆ pval0

real* tinker::pval0
extern

◆ r2scale

real tinker::r2scale
extern

◆ r3scale

real tinker::r3scale
extern

◆ r4scale

real tinker::r4scale
extern

◆ r5scale

real tinker::r5scale
extern

◆ radeps_coalesced

real* tinker::radeps_coalesced
extern

◆ radrule

Vdw tinker::radrule
extern

◆ repexclude

int(* tinker::repexclude)[2]
extern

◆ repexclude_scale

real* tinker::repexclude_scale
extern

◆ repole

real(* tinker::repole)[MPL_TOTAL]
extern

◆ rpole

real(* tinker::rpole)[MPL_TOTAL]
extern

◆ rrepole

real(* tinker::rrepole)[MPL_TOTAL]
extern

◆ scrtyp

ExpolScr tinker::scrtyp
extern

◆ sizpr

real* tinker::sizpr
extern

◆ thlval

real* tinker::thlval
extern

◆ thole

real* tinker::thole
extern

◆ trqx

real* tinker::trqx
extern

◆ trqy

real* tinker::trqy
extern

◆ trqz

real* tinker::trqz
extern

◆ u1scale

real tinker::u1scale
extern

◆ u2scale

real tinker::u2scale
extern

◆ u3scale

real tinker::u3scale
extern

◆ u4scale

real tinker::u4scale
extern

◆ udalt_00

real(* tinker::udalt_00)[3]
extern

◆ udalt_01

real(* tinker::udalt_01)[3]
extern

◆ udalt_02

real(* tinker::udalt_02)[3]
extern

◆ udalt_03

real(* tinker::udalt_03)[3]
extern

◆ udalt_04

real(* tinker::udalt_04)[3]
extern

◆ udalt_05

real(* tinker::udalt_05)[3]
extern

◆ udalt_06

real(* tinker::udalt_06)[3]
extern

◆ udalt_07

real(* tinker::udalt_07)[3]
extern

◆ udalt_08

real(* tinker::udalt_08)[3]
extern

◆ udalt_09

real(* tinker::udalt_09)[3]
extern

◆ udalt_10

real(* tinker::udalt_10)[3]
extern

◆ udalt_11

real(* tinker::udalt_11)[3]
extern

◆ udalt_12

real(* tinker::udalt_12)[3]
extern

◆ udalt_13

real(* tinker::udalt_13)[3]
extern

◆ udalt_14

real(* tinker::udalt_14)[3]
extern

◆ udalt_15

real(* tinker::udalt_15)[3]
extern

◆ udalt_lsqr_a

real* tinker::udalt_lsqr_a
extern

◆ udalt_lsqr_b

real* tinker::udalt_lsqr_b
extern

◆ udiag

real tinker::udiag
extern

◆ udir

real(* tinker::udir)[3]
extern

◆ udirp

real(* tinker::udirp)[3]
extern

◆ uexclude

int(* tinker::uexclude)[2]
extern

◆ uexclude_scale

real* tinker::uexclude_scale
extern

◆ ufld

real(* tinker::ufld)[3]
extern

◆ uind

real(* tinker::uind)[3]
extern

◆ uinp

real(* tinker::uinp)[3]
extern

◆ upalt_00

real(* tinker::upalt_00)[3]
extern

◆ upalt_01

real(* tinker::upalt_01)[3]
extern

◆ upalt_02

real(* tinker::upalt_02)[3]
extern

◆ upalt_03

real(* tinker::upalt_03)[3]
extern

◆ upalt_04

real(* tinker::upalt_04)[3]
extern

◆ upalt_05

real(* tinker::upalt_05)[3]
extern

◆ upalt_06

real(* tinker::upalt_06)[3]
extern

◆ upalt_07

real(* tinker::upalt_07)[3]
extern

◆ upalt_08

real(* tinker::upalt_08)[3]
extern

◆ upalt_09

real(* tinker::upalt_09)[3]
extern

◆ upalt_10

real(* tinker::upalt_10)[3]
extern

◆ upalt_11

real(* tinker::upalt_11)[3]
extern

◆ upalt_12

real(* tinker::upalt_12)[3]
extern

◆ upalt_13

real(* tinker::upalt_13)[3]
extern

◆ upalt_14

real(* tinker::upalt_14)[3]
extern

◆ upalt_15

real(* tinker::upalt_15)[3]
extern

◆ upalt_lsqr_a

real* tinker::upalt_lsqr_a
extern

◆ upalt_lsqr_b

real* tinker::upalt_lsqr_b
extern

◆ use_osrw

bool tinker::use_osrw
extern

◆ v2scale

real tinker::v2scale
extern

◆ v3scale

real tinker::v3scale
extern

◆ v4scale

real tinker::v4scale
extern

◆ v5scale

real tinker::v5scale
extern

◆ vcouple

Vdw tinker::vcouple
extern

◆ vdw14ik

int(* tinker::vdw14ik)[2]
extern

◆ vdwindex

Vdw tinker::vdwindex
extern

◆ vdwpr_in_use

bool tinker::vdwpr_in_use
extern

◆ vdwtyp

Vdw tinker::vdwtyp
extern

◆ vexclude

int(* tinker::vexclude)[2]
extern

◆ vexclude_scale

real* tinker::vexclude_scale
extern

◆ vir_ec

VirialBuffer tinker::vir_ec
extern

◆ vir_ect

VirialBuffer tinker::vir_ect
extern

◆ vir_edsp

VirialBuffer tinker::vir_edsp
extern

◆ vir_em

VirialBuffer tinker::vir_em
extern

◆ vir_ep

VirialBuffer tinker::vir_ep
extern

◆ vir_er

VirialBuffer tinker::vir_er
extern

◆ vir_ev

VirialBuffer tinker::vir_ev
extern

◆ vir_trq

VirialBuffer tinker::vir_trq
extern

◆ virial_ec

virial_prec tinker::virial_ec[9]
extern

◆ virial_ect

virial_prec tinker::virial_ect[9]
extern

◆ virial_edsp

virial_prec tinker::virial_edsp[9]
extern

◆ virial_em

virial_prec tinker::virial_em[9]
extern

◆ virial_ep

virial_prec tinker::virial_ep[9]
extern

◆ virial_er

virial_prec tinker::virial_er[9]
extern

◆ virial_ev

virial_prec tinker::virial_ev[9]
extern

◆ vlam

real tinker::vlam
extern

◆ vlrc_vol_dsp

real tinker::vlrc_vol_dsp
extern

◆ w2scale

real tinker::w2scale
extern

◆ w3scale

real tinker::w3scale
extern

◆ w4scale

real tinker::w4scale
extern

◆ w5scale

real tinker::w5scale
extern

◆ wexclude

int(* tinker::wexclude)[2]
extern

◆ wexclude_scale

real* tinker::wexclude_scale
extern

◆ work01_

real(* tinker::work01_)[3]
extern

◆ work02_

real(* tinker::work02_)[3]
extern

◆ work03_

real(* tinker::work03_)[3]
extern

◆ work04_

real(* tinker::work04_)[3]
extern

◆ work05_

real(* tinker::work05_)[3]
extern

◆ work06_

real(* tinker::work06_)[3]
extern

◆ work07_

real(* tinker::work07_)[3]
extern

◆ work08_

real(* tinker::work08_)[3]
extern

◆ work09_

real(* tinker::work09_)[3]
extern

◆ work10_

real(* tinker::work10_)[3]
extern

◆ yred

real* tinker::yred
extern

◆ zaxis

LocalFrame* tinker::zaxis
extern

◆ zred

real* tinker::zred
extern