/******************************************************** % % Written by: % -- % John L. Weatherwax 2006-09-03 % % email: wax@alum.mit.edu % % Please send comments and especially bug reports to the % above email address. % %----- */ #include #include #include "mpi.h" #include "global_grid.h" #include "sim_consts.h" #include "createSpaceForEvictedParticlesToReceive.h" /* creates arrays for data that will be received by each when a particle is evicted: 1) The particles themselves (i.e. their x & y coordinates and x & y velocities) are stored consecutively */ void createSpaceForEvictedParticlesToReceive(void){ /* create NW array */ procInfo.partRefugeeDataToReceive[NW] = (double*) malloc( 4*procInfo.numRefugeeToReceive[NW]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[NW] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create N array */ procInfo.partRefugeeDataToReceive[N] = (double*) malloc( 4*procInfo.numRefugeeToReceive[N]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[N] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create NE array */ procInfo.partRefugeeDataToReceive[NE] = (double*) malloc( 4*procInfo.numRefugeeToReceive[NE]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[NE] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create W array */ procInfo.partRefugeeDataToReceive[W] = (double*) malloc( 4*procInfo.numRefugeeToReceive[W]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[W] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create I array ... not needed I don't send to myself ... */ procInfo.partRefugeeDataToReceive[I] = NULL; /* create E array */ procInfo.partRefugeeDataToReceive[E] = (double*) malloc( 4*procInfo.numRefugeeToReceive[E]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[E] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create SW array */ procInfo.partRefugeeDataToReceive[SW] = (double*) malloc( 4*procInfo.numRefugeeToReceive[SW]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[SW] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create S array */ procInfo.partRefugeeDataToReceive[S] = (double*) malloc( 4*procInfo.numRefugeeToReceive[S]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[S] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } /* create SE array */ procInfo.partRefugeeDataToReceive[SE] = (double*) malloc( 4*procInfo.numRefugeeToReceive[SE]*sizeof(double) ); if( !procInfo.partRefugeeDataToReceive[SE] ){ fprintf(stderr,"No memory!\n"); MPI_Abort(MPI_COMM_WORLD,1); } }