Commit 3d1dd6bc authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Fix MPI chunk-size in direction dependent output vectors

parent e2e95b84
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1369,8 +1369,8 @@ int ClusterOutputInfo::mpireceive(const mixMPI *mpidata, int pid) {
    MPI_Send(&result, 1, MPI_INT32_T, pid, 10, MPI_COMM_WORLD);
    MPI_Recv(&xi1, 1, MPI_INT32_T, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(&chunk_size, 1, MPI_INT32_T, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    offset = xi1 - _first_xi;
    // Receive vectors of single values per scale
    offset = xi1 - _first_xi;
    MPI_Recv(vec_jxi + offset, chunk_size, MPI_INT32_T, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_ier + offset, chunk_size, MPI_SHORT, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_vk + offset, chunk_size, MPI_DOUBLE, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
@@ -1417,8 +1417,8 @@ int ClusterOutputInfo::mpireceive(const mixMPI *mpidata, int pid) {
    MPI_Recv(vec_fkc2 + offset, chunk_size, MPI_DOUBLE, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

    // Receive vectors of multiple configuration values per scale
    offset = (xi1 - _first_xi) * configurations;
    MPI_Recv(&chunk_size, 1, MPI_INT32_T, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    offset = (xi1 - _first_xi) * configurations;
    MPI_Recv(vec_sphere_sizes + offset, chunk_size, MPI_DOUBLE, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_sphere_ref_indices + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_sphere_scs + offset, chunk_size, MPI_DOUBLE, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
@@ -1441,7 +1441,7 @@ int ClusterOutputInfo::mpireceive(const mixMPI *mpidata, int pid) {

    // Receive vectors whose sizes depend on directions and configurations.
    MPI_Recv(&chunk_size, 1, MPI_INT32_T, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    offset = (xi1 - _first_xi) * chunk_size;
    offset = (xi1 - _first_xi) * ndirs * configurations;
    MPI_Recv(vec_dir_sas11 + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_dir_sas21 + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_dir_sas12 + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
@@ -1451,7 +1451,7 @@ int ClusterOutputInfo::mpireceive(const mixMPI *mpidata, int pid) {

    // Receive vectors whose sizes depend on directions and scales.
    MPI_Recv(&chunk_size, 1, MPI_INT32_T, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    offset = (xi1 - _first_xi) * ndirs * chunk_size;
    offset = (xi1 - _first_xi) * ndirs;
    MPI_Recv(vec_dir_sat11 + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_dir_sat21 + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    MPI_Recv(vec_dir_sat12 + offset, chunk_size, MPI_C_DOUBLE_COMPLEX, pid, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE);