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

Fix wrong MPI_COMM_WORLD specifications

parent 8f4d6a56
Loading
Loading
Loading
Loading
+28 −28
Original line number Diff line number Diff line
@@ -1779,7 +1779,7 @@ ParticleDescriptor::ParticleDescriptor(const mixMPI *mpidata) {
  int last_layer_index = 0;
  for (int rci = 0; rci < _num_configurations; rci++) {
    rc[rci] = vec_rc + last_layer_index;
    last_layer_index += rhs.nshl[rci];
    last_layer_index += nshl[rci];
    if (rci == 0 && tot_nshl < _num_layers) last_layer_index++;
  }
  vint = new dcomplex[16];
@@ -1796,7 +1796,7 @@ ParticleDescriptor::ParticleDescriptor(const mixMPI *mpidata) {
  MPI_Bcast(ros, _num_configurations, MPI_DOUBLE, 0, MPI_COMM_WORLD);
}

ParticleDescriptor::mpibcast(const mixMPI *mpidata) {
void ParticleDescriptor::mpibcast(const mixMPI *mpidata) {
  MPI_Bcast(&_class_type, 1, MPI_SHORT, 0, MPI_COMM_WORLD);
  MPI_Bcast(&_nsph, 1, MPI_INT, 0, MPI_COMM_WORLD);
  MPI_Bcast(&_li, 1, MPI_INT, 0, MPI_COMM_WORLD);
@@ -1871,14 +1871,14 @@ ParticleDescriptor::mpibcast(const mixMPI *mpidata) {
  }
  // >>> NEEDED BY INCLU <<< //
  if (_class_type == INCLUSION_TYPE) {
    MPI_Bcast(rm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(re0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(rmw, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(rew, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(tm, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(te, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(tm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(te0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
    MPI_Bcast(rm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(re0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(rmw, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(rew, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(tm, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(te, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(tm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
    MPI_Bcast(te0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  }
}
#endif // MPI_VERSION
@@ -2424,21 +2424,21 @@ ParticleDescriptorInclusion::ParticleDescriptorInclusion(const mixMPI *mpidata)
  for (int ii = 0; ii <= _lm; ii++) ind3j[ii] = vec_ind3j + (_lm * ii);
  // >>> NEEDED BY INCLU <<< //
  rm0 = new dcomplex[_le];
  MPI_Bcast(rm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(rm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  re0 = new dcomplex[_le];
  MPI_Bcast(re0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(re0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  rmw = new dcomplex[_le];
  MPI_Bcast(rmw, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(rmw, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  rew = new dcomplex[_le];
  MPI_Bcast(rew, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(rew, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  tm = new dcomplex[_le];
  MPI_Bcast(tm, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(tm, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  te = new dcomplex[_le];
  MPI_Bcast(te, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(te, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  tm0 = new dcomplex[_le];
  MPI_Bcast(tm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(tm0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  te0 = new dcomplex[_le];
  MPI_Bcast(te0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMMWORLD);
  MPI_Bcast(te0, _le, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
}
#endif // MPI_VERSION
// >>> End of ParticleDescriptorInclusion class implementation. <<< //
@@ -2506,26 +2506,26 @@ ParticleDescriptorSphere::ParticleDescriptorSphere(const ParticleDescriptorSpher
ParticleDescriptorSphere::ParticleDescriptorSphere(const mixMPI *mpidata) : ParticleDescriptor(mpidata) {
  // >>> NEEDED BY SPHERE AND CLUSTER <<< //
  vec_sas = new dcomplex[4 * _nsph];
  MPI_Bcast(vec_sas, 4 * _nsph, MPI_C_DOUBLE_COMPLEX, 0 MPI_COMM_WORLD);
  MPI_Bcast(vec_sas, 4 * _nsph, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  vec_vints = new dcomplex[16 * _nsph];
  MPI_Bcast(vec_vints, 16 * _nsph, MPI_C_DOUBLE_COMPLEX, 0 MPI_COMM_WORLD);
  MPI_Bcast(vec_vints, 16 * _nsph, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  
  fsas = new dcomplex[_nsph];
  MPI_Bcast(fsas, _nsph, MPI_C_DOUBLE_COMPLEX, 0 MPI_COMM_WORLD);
  MPI_Bcast(fsas, _nsph, MPI_C_DOUBLE_COMPLEX, 0, MPI_COMM_WORLD);
  sscs = new double[_nsph];
  MPI_Bcast(sscs, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(sscs, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  sexs = new double[_nsph];
  MPI_Bcast(sexs, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(sexs, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  sabs = new double[_nsph];
  MPI_Bcast(sabs, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(sabs, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  sqscs = new double[_nsph];
  MPI_Bcast(sqscs, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(sqscs, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  sqexs = new double[_nsph];
  MPI_Bcast(sqexs, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(sqexs, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  sqabs = new double[_nsph];
  MPI_Bcast(sqabs, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(sqabs, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  gcsv = new double[_nsph];
  MPI_Bcast(gcsv, _nsph, MPI_DOUBLE, 0 MPI_COMM_WORLD);
  MPI_Bcast(gcsv, _nsph, MPI_DOUBLE, 0, MPI_COMM_WORLD);
  sas = new dcomplex**[_nsph];
  vints = new dcomplex*[_nsph];
  for (int vi = 0; vi < nsph; vi++) {