NAMD
Classes | Typedefs | Functions
MShakeKernel.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include "CudaUtils.h"
#include "common.h"
#include <cuda.h>

Go to the source code of this file.

Classes

struct  SettleParameters
 
struct  CudaRattleParam
 
struct  CudaRattleElem
 
class  isWater< doFixed >
 
struct  notZero
 
struct  isEmpty
 
struct  validRattle
 

Typedefs

typedef float Real
 
typedef double BigReal
 

Functions

void Settle (const bool doEnergy, int numAtoms, const double dt, const double invdt, const int nSettles, const double *vel_x, const double *vel_y, const double *vel_z, const double *pos_x, const double *pos_y, const double *pos_z, double *velNew_x, double *velNew_y, double *velNew_z, double *posNew_x, double *posNew_y, double *posNew_z, double *f_normal_x, double *f_normal_y, double *f_normal_z, cudaTensor *virial, const float *mass, const int *hydrogenGroupSize, const float *rigidBondLength, const int *atomFixed, int *settleList, const SettleParameters *sp, const WaterModel water_model, cudaStream_t stream)
 
__global__ void Settle_fp32 (int numAtoms, float dt, float invdt, int nSettles, const double *__restrict vel_x, const double *__restrict vel_y, const double *__restrict vel_z, const double *__restrict pos_x, const double *__restrict pos_y, const double *__restrict pos_z, double *__restrict velNew_x, double *__restrict velNew_y, double *__restrict velNew_z, double *__restrict posNew_x, double *__restrict posNew_y, double *__restrict posNew_z, const int *__restrict hydrogenGroupSize, const float *__restrict rigidBondLength, const int *__restrict atomFixed, int *__restrict settleList, const SettleParameters *__restrict sp)
 
__global__ void rattlePair (int nRattlePairs, const double *__restrict vel_x, const double *__restrict vel_y, const double *__restrict vel_z, const double *__restrict pos_x, const double *__restrict pos_y, const double *__restrict pos_z, double *__restrict velNew_x, double *__restrict velNew_y, double *__restrict velNew_z, double *__restrict posNew_x, double *__restrict posNew_y, double *__restrict posNew_z, const int *__restrict hydrogenGroupSize, const float *__restrict rigidBondLength, const int *__restrict atomFixed, int *consFailure)
 
__global__ void CheckConstraints (int *consFailure, int size)
 
void MSHAKE_CUDA (const bool doEnergy, const bool doFixed, const CudaRattleElem *rattleList, const int size, const int *hydrogenGroupSize, const int *atomFixed, const double *refx, const double *refy, const double *refz, double *posx, double *posy, double *posz, const double *ref_velx, const double *ref_vely, const double *ref_velz, double *velx, double *vely, double *velz, double *f_normal_x, double *f_normal_y, double *f_normal_z, cudaTensor *rigidVirial, const float *mass, const double invdt, const BigReal tol2, const int maxiter, int *consFailure_d, int *consFailure, cudaStream_t stream)
 
void CallRattle1Kernel (int numAtoms, const double dt, const double invdt, const int nSettles, double *vel_x, double *vel_y, double *vel_z, const double *pos_x, const double *pos_y, const double *pos_z, double *f_normal_x, double *f_normal_y, double *f_normal_z, const float *mass, const int *hydrogenGroupSize, const float *rigidBondLength, const int *atomFixed, int *settleList, const SettleParameters *sp, const CudaRattleElem *rattleList, const int nShakes, const BigReal tol2_d, const int maxiter_d, int *consFailure, const int nSettleBlocks, const int nShakeBlocks, const WaterModel water_model, cudaStream_t stream)
 

Typedef Documentation

◆ BigReal

typedef double BigReal

Definition at line 27 of file MShakeKernel.h.

◆ Real

typedef float Real

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

Definition at line 23 of file MShakeKernel.h.

Function Documentation

◆ CallRattle1Kernel()

void CallRattle1Kernel ( int  numAtoms,
const double  dt,
const double  invdt,
const int  nSettles,
double *  vel_x,
double *  vel_y,
double *  vel_z,
const double *  pos_x,
const double *  pos_y,
const double *  pos_z,
double *  f_normal_x,
double *  f_normal_y,
double *  f_normal_z,
const float *  mass,
const int *  hydrogenGroupSize,
const float *  rigidBondLength,
const int *  atomFixed,
int *  settleList,
const SettleParameters sp,
const CudaRattleElem rattleList,
const int  nShakes,
const BigReal  tol2_d,
const int  maxiter_d,
int *  consFailure,
const int  nSettleBlocks,
const int  nShakeBlocks,
const WaterModel  water_model,
cudaStream_t  stream 
)

◆ CheckConstraints()

__global__ void CheckConstraints ( int *  consFailure,
int  size 
)

◆ MSHAKE_CUDA()

void MSHAKE_CUDA ( const bool  doEnergy,
const bool  doFixed,
const CudaRattleElem rattleList,
const int  size,
const int *  hydrogenGroupSize,
const int *  atomFixed,
const double *  refx,
const double *  refy,
const double *  refz,
double *  posx,
double *  posy,
double *  posz,
const double *  ref_velx,
const double *  ref_vely,
const double *  ref_velz,
double *  velx,
double *  vely,
double *  velz,
double *  f_normal_x,
double *  f_normal_y,
double *  f_normal_z,
cudaTensor rigidVirial,
const float *  mass,
const double  invdt,
const BigReal  tol2,
const int  maxiter,
int *  consFailure_d,
int *  consFailure,
cudaStream_t  stream 
)

◆ rattlePair()

__global__ void rattlePair ( int  nRattlePairs,
const double *__restrict  vel_x,
const double *__restrict  vel_y,
const double *__restrict  vel_z,
const double *__restrict  pos_x,
const double *__restrict  pos_y,
const double *__restrict  pos_z,
double *__restrict  velNew_x,
double *__restrict  velNew_y,
double *__restrict  velNew_z,
double *__restrict  posNew_x,
double *__restrict  posNew_y,
double *__restrict  posNew_z,
const int *__restrict  hydrogenGroupSize,
const float *__restrict  rigidBondLength,
const int *__restrict  atomFixed,
int *  consFailure 
)

◆ Settle()

void Settle ( const bool  doEnergy,
int  numAtoms,
const double  dt,
const double  invdt,
const int  nSettles,
const double *  vel_x,
const double *  vel_y,
const double *  vel_z,
const double *  pos_x,
const double *  pos_y,
const double *  pos_z,
double *  velNew_x,
double *  velNew_y,
double *  velNew_z,
double *  posNew_x,
double *  posNew_y,
double *  posNew_z,
double *  f_normal_x,
double *  f_normal_y,
double *  f_normal_z,
cudaTensor virial,
const float *  mass,
const int *  hydrogenGroupSize,
const float *  rigidBondLength,
const int *  atomFixed,
int *  settleList,
const SettleParameters sp,
const WaterModel  water_model,
cudaStream_t  stream 
)

◆ Settle_fp32()

__global__ void Settle_fp32 ( int  numAtoms,
float  dt,
float  invdt,
int  nSettles,
const double *__restrict  vel_x,
const double *__restrict  vel_y,
const double *__restrict  vel_z,
const double *__restrict  pos_x,
const double *__restrict  pos_y,
const double *__restrict  pos_z,
double *__restrict  velNew_x,
double *__restrict  velNew_y,
double *__restrict  velNew_z,
double *__restrict  posNew_x,
double *__restrict  posNew_y,
double *__restrict  posNew_z,
const int *__restrict  hydrogenGroupSize,
const float *__restrict  rigidBondLength,
const int *__restrict  atomFixed,
int *__restrict  settleList,
const SettleParameters *__restrict  sp 
)