Sanchayan Maity
0f4b39775c
During the last commit of splash2 benchmark it seems before committing when we ran "make clean", it effectively undid what the patch at below link did http://www.capsl.udel.edu/splash/Download.html Fix this since without this it is not possible to build the arcane splash2 benchmark.
71 lines
2.6 KiB
C
71 lines
2.6 KiB
C
/*************************************************************************/
|
|
/* */
|
|
/* Copyright (c) 1994 Stanford University */
|
|
/* */
|
|
/* All rights reserved. */
|
|
/* */
|
|
/* Permission is given to use, copy, and modify this software for any */
|
|
/* non-commercial purpose as long as this copyright notice is not */
|
|
/* removed. All other uses, including redistribution in whole or in */
|
|
/* part, are forbidden without prior written permission. */
|
|
/* */
|
|
/* This software is provided with absolutely no warranty and no */
|
|
/* support. */
|
|
/* */
|
|
/*************************************************************************/
|
|
|
|
EXTERN_ENV
|
|
|
|
#include <math.h>
|
|
#include "mdvar.h"
|
|
#include "parameters.h"
|
|
#include "mddata.h"
|
|
#include "split.h"
|
|
#include "global.h"
|
|
|
|
/* this routine computes kinetic energy in each of the three spatial
|
|
dimensions, and puts the computed values in the SUM array */
|
|
void KINETI(double *SUM, double HMAS, double OMAS, long ProcID)
|
|
{
|
|
long dir, i, j, k;
|
|
double S;
|
|
struct link *curr_ptr;
|
|
struct list_of_boxes *curr_box;
|
|
double *tempptr;
|
|
|
|
/* Loop over three directions */
|
|
|
|
for (dir = XDIR; dir <= ZDIR; dir++) {
|
|
S=0.0;
|
|
|
|
/* loop over processor's boxes */
|
|
curr_box = my_boxes[ProcID];
|
|
|
|
while (curr_box) {
|
|
|
|
i = curr_box->coord[XDIR]; /* X coordinate of box */
|
|
j = curr_box->coord[YDIR]; /* Y coordinate of box */
|
|
k = curr_box->coord[ZDIR]; /* Z coordinate of box */
|
|
|
|
/* loop over the molecules */
|
|
|
|
curr_ptr = BOX[i][j][k].list;
|
|
while (curr_ptr) {
|
|
tempptr = curr_ptr->mol.F[VEL][dir];
|
|
S += (tempptr[H1] * tempptr[H1] +
|
|
tempptr[H2] * tempptr[H2] ) * HMAS +
|
|
(tempptr[O] * tempptr[O]) * OMAS;
|
|
curr_ptr = curr_ptr->next_mol;
|
|
} /* while curr_ptr */
|
|
|
|
curr_box = curr_box->next_box;
|
|
|
|
} /* while curr_box */
|
|
|
|
LOCK(gl->KinetiSumLock);
|
|
SUM[dir]+=S;
|
|
UNLOCK(gl->KinetiSumLock);
|
|
|
|
} /* for dir */
|
|
|
|
} /* end of subroutine KINETI */
|