#include "MpiBodyComm.hpp" namespace nbody { MpiBodyComm::MpiBodyComm() { this->buffer.push_back(Body()); this->buffer.back().mass = 0.0; this->datatypes[0] = MPI::DOUBLE; this->datatypes[1] = MPI::DOUBLE; this->datatypes[2] = MPI::DOUBLE; this->blocklengths[0] = 3; this->blocklengths[1] = 3; this->blocklengths[2] = 1; this->displacements[0] = MPI::Get_address(&(this->buffer[0].position[0])); this->displacements[1] = MPI::Get_address(&(this->buffer[0].velocity[0])); this->displacements[2] = MPI::Get_address(&(this->buffer[0].mass)); this->commBodyType = this->commBodyType.Create_struct(3, this->blocklengths, this->displacements, this->datatypes); this->commBodyType.Commit(); this->request = MPI::REQUEST_NULL; } MpiBodyComm::~MpiBodyComm() { this->commBodyType.Free(); if (this->request != MPI::REQUEST_NULL) { this->request.Free(); } } bool MpiBodyComm::sendBlocking(int target, vector<Body> bodies) { return true; } bool MpiBodyComm::sendUnblocking(int target, vector<Body> bodies) { return true; } }