Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <% Simulation.cpp>
- #include"Simulation.h"
- Simulation::Simulation() {}
- Simulation::~Simulation() {}
- void Simulation::setParticles( double *x, double *y, double *z, int numberOfParticles )
- {
- this->x = x;
- this->y = y;
- this->z = z;
- this->numberOfParticles = numberOfParticles;
- }
- double Simulation::getAvgMinDistance( void )
- {
- return 0.0;
- }
- void Simulation::remove( int numberOfPairsToRemove )
- {
- int myid, numproc;
- MPI_Comm_rank(MPI_COMM_WORLD, &myid);
- MPI_Comm_size(MPI_COMM_WORLD, &numproc);
- MPI_Bcast(numberOfParticles, 1, MPI_INT, 0, MPI_COMM_WORLD);
- MPI_Bcast(x, numberOfParticles, MPI_DOUBLE, 0, MPI_COMM_WORLD);
- MPI_Bcast(y, numberOfParticles, MPI_DOUBLE, 0, MPI_COMM_WORLD);
- MPI_Bcast(z, numberOfParticles, MPI_DOUBLE, 0, MPI_COMM_WORLD);
- double local_min_dist=1000.0;
- double global_min_dist=1000.0;
- double min_dist;
- int A, B;
- if(numberOfPairsToRemove)
- {
- //for
- // for
- {
- min_dist = Helper::getDistance(x,y,z,i,j);
- if(min_dist < local_min_dist)
- {
- A=i;
- B=j;
- local_min_dist = min_dist;
- }
- }
- MPI_Reduce(&local_min_dist, &global_min_dist, MPI_DOUBLE, MPI_MIN, 0, MPI_COMM_WORLD);
- {//remove
- }
- --numberOfPairsToRemove;
- --numberOfParticles;
- }
- }
- void Simulation::calcAvgMinDistance( void ) {
- int myid, numproc;
- MPI_Comm_rank(MPI_COMM_WORLD, &myid);
- MPI_Comm_size(MPI_COMM_WORLD, &numproc);
- MPI_Bcast(numberOfParticles, 1, MPI_INT, 0, MPI_COMM_WORLD);
- MPI_Bcast(x, numberOfParticles, MPI_DOUBLE, 0, MPI_COMM_WORLD);
- MPI_Bcast(y, numberOfParticles, MPI_DOUBLE, 0, MPI_COMM_WORLD);
- MPI_Bcast(z, numberOfParticles, MPI_DOUBLE, 0, MPI_COMM_WORLD);
- double local_min_dist=1000.0;
- double global_min_dist=1000.0;
- double avg_min_dist, min_dist;
- //for
- //for
- {
- min_dist = Helper::getDistance(x,y,z,i,j);
- if(min_dist < local_min_dist)
- {
- local_min_dist = min_dist;
- }
- }
- MPI_Reduce(&local_min_dist, &avg_min_dist, MPI_DOUBLE, MPI_AVG, 0, MPI_COMM_WORLD);
- }
Add Comment
Please, Sign In to add comment