Skip to content
Snippets Groups Projects
  • Kurt A. O'Hearn's avatar
    f144ed9a
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for... · f144ed9a
    Kurt A. O'Hearn authored
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for simulation accuracy. Small correction to lone pair energy calculation. PuReMD: code formatting changes to better align with sPuReMD. sPuReMD: fix issue with valence angle calculations not setting list indices under certain sitations (taking previous continue statement missed index assignment).
    f144ed9a
    History
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for...
    Kurt A. O'Hearn authored
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for simulation accuracy. Small correction to lone pair energy calculation. PuReMD: code formatting changes to better align with sPuReMD. sPuReMD: fix issue with valence angle calculations not setting list indices under certain sitations (taking previous continue statement missed index assignment).
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
basic_comm.h 1.97 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 Dist_FS( 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 );

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

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

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

real Parallel_Vector_Acc( 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