Commit 8d5905c4 authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@5469 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent 3c17a270
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "stdint.h"
#include <sys/time.h>
#include "mpi.h"

@@ -90,6 +91,19 @@ double MPI_Wtime()

/* ---------------------------------------------------------------------- */

int MPI_Type_size(MPI_Datatype datatype, int *size)
{
  if (datatype == MPI_INT) *size = sizeof(int);
  else if (datatype == MPI_FLOAT) *size = sizeof(float);
  else if (datatype == MPI_DOUBLE) *size = sizeof(double);
  else if (datatype == MPI_CHAR) *size = sizeof(char);
  else if (datatype == MPI_BYTE) *size = sizeof(char);
  else if (datatype == MPI_UNSIGNED_LONG) *size = sizeof(uint64_t);
  else if (datatype == MPI_DOUBLE_INT) *size = sizeof(double_int);
}

/* ---------------------------------------------------------------------- */

int MPI_Send(void *buf, int count, MPI_Datatype datatype,
             int dest, int tag, MPI_Comm comm)
{
@@ -247,6 +261,7 @@ int MPI_Allreduce(void *sendbuf, void *recvbuf, int count,
  else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
  else if (datatype == MPI_CHAR) n = count*sizeof(char);
  else if (datatype == MPI_BYTE) n = count*sizeof(char);
  else if (datatype == MPI_UNSIGNED_LONG) n = count*sizeof(uint64_t);
  else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -267,6 +282,7 @@ int MPI_Reduce(void *sendbuf, void *recvbuf, int count,
  else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
  else if (datatype == MPI_CHAR) n = count*sizeof(char);
  else if (datatype == MPI_BYTE) n = count*sizeof(char);
  else if (datatype == MPI_UNSIGNED_LONG) n = count*sizeof(uint64_t);
  else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -285,6 +301,7 @@ int MPI_Scan(void *sendbuf, void *recvbuf, int count,
  else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
  else if (datatype == MPI_CHAR) n = count*sizeof(char);
  else if (datatype == MPI_BYTE) n = count*sizeof(char);
  else if (datatype == MPI_UNSIGNED_LONG) n = count*sizeof(uint64_t);
  else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -305,6 +322,7 @@ int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
  else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
  else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
  else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
  else if (sendtype == MPI_UNSIGNED_LONG) n = sendcount*sizeof(uint64_t);
  else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -325,6 +343,7 @@ int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
  else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
  else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
  else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
  else if (sendtype == MPI_UNSIGNED_LONG) n = sendcount*sizeof(uint64_t);
  else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -344,6 +363,7 @@ int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
  else if (datatype == MPI_DOUBLE) n = *recvcounts*sizeof(double);
  else if (datatype == MPI_CHAR) n = *recvcounts*sizeof(char);
  else if (datatype == MPI_BYTE) n = *recvcounts*sizeof(char);
  else if (datatype == MPI_UNSIGNED_LONG) n = *recvcounts*sizeof(uint64_t);
  else if (datatype == MPI_DOUBLE_INT) n = *recvcounts*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -364,6 +384,7 @@ int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
  else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
  else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
  else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
  else if (sendtype == MPI_UNSIGNED_LONG) n = sendcount*sizeof(uint64_t);
  else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
@@ -384,6 +405,7 @@ int MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
  else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
  else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
  else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
  else if (sendtype == MPI_UNSIGNED_LONG) n = sendcount*sizeof(uint64_t);
  else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);

  memcpy(recvbuf,sendbuf,n);
+4 −1
Original line number Diff line number Diff line
@@ -25,7 +25,8 @@
#define MPI_DOUBLE 3
#define MPI_CHAR 4
#define MPI_BYTE 5
#define MPI_DOUBLE_INT 6
#define MPI_UNSIGNED_LONG 6
#define MPI_DOUBLE_INT 7

#define MPI_SUM 1
#define MPI_MAX 2
@@ -57,6 +58,8 @@ int MPI_Abort(MPI_Comm comm, int errorcode);
int MPI_Finalize();
double MPI_Wtime();

int MPI_Type_size(int, int *);

int MPI_Send(void *buf, int count, MPI_Datatype datatype,
             int dest, int tag, MPI_Comm comm);
int MPI_Rsend(void *buf, int count, MPI_Datatype datatype,
+2 −2
Original line number Diff line number Diff line
@@ -199,10 +199,10 @@ void Min::setup()
  // ndoftotal = total dof for entire minimization problem
  // dof for atoms, extra per-atom, extra global

  double ndofme = 3.0*atom->nlocal;
  bigint ndofme = 3*atom->nlocal;
  for (int m = 0; m < nextra_atom; m++)
    ndofme += extra_peratom[m]*atom->nlocal;
  MPI_Allreduce(&ndofme,&ndoftotal,1,MPI_DOUBLE,MPI_SUM,world);
  MPI_Allreduce(&ndofme,&ndoftotal,1,MPI_UNSIGNED_LONG,MPI_SUM,world);
  ndoftotal += nextra_global;

  // setup domain, communication and neighboring
+2 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#define LMP_MIN_H

#include "pointers.h"
#include "lmptype.h"

namespace LAMMPS_NS {

@@ -70,7 +71,7 @@ class Min : protected Pointers {
  class Compute *pe_compute;        // compute for potential energy
  double ecurrent;                  // current potential energy

  double ndoftotal;           // total dof for entire problem
  bigint ndoftotal;           // total dof for entire problem

  int nvec;                   // local atomic dof = length of xvec
  double *xvec;               // variables for atomic dof, as 1d vector
+0 −1
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@

#include "stdlib.h"
#include "string.h"
#include "stdint.h"
#include "replicate.h"
#include "lmptype.h"
#include "atom.h"