Skip to content
Snippets Groups Projects
  • Kurt A. O'Hearn's avatar
    e9a996b2
    PG-PuReMD: fixes to SAI preconditioner computation (message size mismatch).... · e9a996b2
    Kurt A. O'Hearn authored
    PG-PuReMD: fixes to SAI preconditioner computation (message size mismatch). Rework MPI communications to not exchange data over MPI when messages are exchanged with oneself (i.e., neighboring processor is oneself via periodic boundary conditions). Backport hydrogen bond fix from sPuReMD (omit interactions when no valid parameters in force field file). Other code clean-up.
    e9a996b2
    History
    PG-PuReMD: fixes to SAI preconditioner computation (message size mismatch)....
    Kurt A. O'Hearn authored
    PG-PuReMD: fixes to SAI preconditioner computation (message size mismatch). Rework MPI communications to not exchange data over MPI when messages are exchanged with oneself (i.e., neighboring processor is oneself via periodic boundary conditions). Backport hydrogen bond fix from sPuReMD (omit interactions when no valid parameters in force field file). Other code clean-up.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
basic_comm.h 1.62 KiB
/*----------------------------------------------------------------------
  PuReMD - Purdue ReaxFF Molecular Dynamics Program

  Copyright (2010) Purdue University
  Hasan Metin Aktulga, haktulga@cs.purdue.edu
  Joseph Fogarty, jcfogart@mail.usf.edu
  Sagar Pandit, pandit@usf.edu
  Ananth Y Grama, ayg@cs.purdue.edu

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License as
  published by the Free Software Foundation; either version 2 of
  the License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the GNU General Public License for more details:
  <http://www.gnu.org/licenses/>.
  ----------------------------------------------------------------------*/

#ifndef __BASIC_COMM_H_
#define __BASIC_COMM_H_

#include "reax_types.h"


enum pointer_type
{
    INT_PTR_TYPE = 0,
    REAL_PTR_TYPE = 1,
    RVEC_PTR_TYPE = 2,
    RVEC2_PTR_TYPE = 3,
};


#ifdef __cplusplus
extern "C" {
#endif

void Dist( reax_system const * const, mpi_datatypes * const,
        void const * const, int, MPI_Datatype );

void Coll( reax_system const * const, mpi_datatypes * const,
        void * const , int, MPI_Datatype );

real Parallel_Dot( const real * const, const real * const, const int, MPI_Comm );

#if defined(TEST_FORCES)
void Coll_ids_at_Master( reax_system*, storage*, mpi_datatypes* );

void Coll_rvecs_at_Master( reax_system*, storage*, mpi_datatypes*, rvec* );
#endif

#ifdef __cplusplus
}
#endif


#endif