@@ -542,8 +542,8 @@ mpc_data<T> create_contact_slip_condition(
542
542
const std::size_t out_collision_slaves = slave_indices_remote.size ();
543
543
std::vector<std::int32_t > num_slaves_recv (indegree + 1 );
544
544
MPI_Neighbor_allgather (
545
- &out_collision_slaves, 1 , dolfinx::MPI::mpi_type <std::int32_t >() ,
546
- num_slaves_recv.data (), 1 , dolfinx::MPI::mpi_type <std::int32_t >() ,
545
+ &out_collision_slaves, 1 , dolfinx::MPI::mpi_t <std::int32_t >,
546
+ num_slaves_recv.data (), 1 , dolfinx::MPI::mpi_t <std::int32_t >,
547
547
neighborhood_comms[0 ]);
548
548
num_slaves_recv.pop_back ();
549
549
@@ -555,9 +555,9 @@ mpc_data<T> create_contact_slip_condition(
555
555
// Send data to neighbors and receive data
556
556
std::vector<std::int32_t > recv_rems (disp.back ());
557
557
MPI_Neighbor_allgatherv (send_rems.data (), (int )send_rems.size (),
558
- dolfinx::MPI::mpi_type <std::int32_t >(),
559
- recv_rems. data (), num_slaves_recv.data (), disp.data (),
560
- dolfinx::MPI::mpi_type <std::int32_t >() ,
558
+ dolfinx::MPI::mpi_t <std::int32_t >, recv_rems. data (),
559
+ num_slaves_recv.data (), disp.data (),
560
+ dolfinx::MPI::mpi_t <std::int32_t >,
561
561
neighborhood_comms[0 ]);
562
562
563
563
// Multiply recv size by three to accommodate vector coordinates and
@@ -574,14 +574,14 @@ mpc_data<T> create_contact_slip_condition(
574
574
// Send slave normal and coordinate to neighbors
575
575
std::vector<U> recv_coords (disp.back () * 3 );
576
576
MPI_Neighbor_allgatherv (coordinates_send.data (), (int )coordinates_send.size (),
577
- dolfinx::MPI::mpi_type <U>() , recv_coords.data (),
577
+ dolfinx::MPI::mpi_t <U>, recv_coords.data (),
578
578
num_slaves_recv3.data (), disp3.data (),
579
- dolfinx::MPI::mpi_type <U>() , neighborhood_comms[0 ]);
579
+ dolfinx::MPI::mpi_t <U>, neighborhood_comms[0 ]);
580
580
std::vector<U> slave_normals (disp.back () * 3 );
581
581
MPI_Neighbor_allgatherv (normals_send.data (), (int )normals_send.size (),
582
- dolfinx::MPI::mpi_type <U>() , slave_normals.data (),
582
+ dolfinx::MPI::mpi_t <U>, slave_normals.data (),
583
583
num_slaves_recv3.data (), disp3.data (),
584
- dolfinx::MPI::mpi_type <U>() , neighborhood_comms[0 ]);
584
+ dolfinx::MPI::mpi_t <U>, neighborhood_comms[0 ]);
585
585
586
586
// Compute off-process contributions
587
587
mpc_data<T> remote_data;
@@ -667,31 +667,30 @@ mpc_data<T> create_contact_slip_condition(
667
667
std::vector<std::int32_t > remote_colliding_offsets (inc_disp_offsets.back ());
668
668
MPI_Ineighbor_alltoallv (
669
669
offsets_remote.data (), num_out_offsets.data (), send_disp_offsets.data (),
670
- dolfinx::MPI::mpi_type <std::int32_t >() , remote_colliding_offsets.data (),
670
+ dolfinx::MPI::mpi_t <std::int32_t >, remote_colliding_offsets.data (),
671
671
num_inc_offsets.data (), inc_disp_offsets.data (),
672
- dolfinx::MPI::mpi_type<std::int32_t >(), neighborhood_comms[1 ],
673
- &requests[0 ]);
672
+ dolfinx::MPI::mpi_t <std::int32_t >, neighborhood_comms[1 ], &requests[0 ]);
674
673
// Receive colliding masters and relevant data from other processor
675
674
std::vector<std::int64_t > remote_colliding_masters (disp_inc_masters.back ());
676
675
MPI_Ineighbor_alltoallv (
677
676
remote_data.masters .data (), num_collision_masters.data (),
678
- send_disp_masters.data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
677
+ send_disp_masters.data (), dolfinx::MPI::mpi_t <std::int64_t >,
679
678
remote_colliding_masters.data (), inc_num_collision_masters.data (),
680
- disp_inc_masters.data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
679
+ disp_inc_masters.data (), dolfinx::MPI::mpi_t <std::int64_t >,
681
680
neighborhood_comms[1 ], &requests[1 ]);
682
681
std::vector<T> remote_colliding_coeffs (disp_inc_masters.back ());
683
682
MPI_Ineighbor_alltoallv (
684
683
remote_data.coeffs .data (), num_collision_masters.data (),
685
- send_disp_masters.data (), dolfinx::MPI::mpi_type <T>() ,
684
+ send_disp_masters.data (), dolfinx::MPI::mpi_t <T>,
686
685
remote_colliding_coeffs.data (), inc_num_collision_masters.data (),
687
- disp_inc_masters.data (), dolfinx::MPI::mpi_type <T>() ,
688
- neighborhood_comms[ 1 ], &requests[2 ]);
686
+ disp_inc_masters.data (), dolfinx::MPI::mpi_t <T>, neighborhood_comms[ 1 ] ,
687
+ &requests[2 ]);
689
688
std::vector<std::int32_t > remote_colliding_owners (disp_inc_masters.back ());
690
689
MPI_Ineighbor_alltoallv (
691
690
remote_data.owners .data (), num_collision_masters.data (),
692
- send_disp_masters.data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
691
+ send_disp_masters.data (), dolfinx::MPI::mpi_t <std::int32_t >,
693
692
remote_colliding_owners.data (), inc_num_collision_masters.data (),
694
- disp_inc_masters.data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
693
+ disp_inc_masters.data (), dolfinx::MPI::mpi_t <std::int32_t >,
695
694
neighborhood_comms[1 ], &requests[3 ]);
696
695
697
696
// Wait for offsets to be sent
@@ -1137,8 +1136,8 @@ mpc_data<T> create_contact_inelastic_condition(
1137
1136
const auto num_colliding_blocks = (int )blocks_wo_local_collision.size ();
1138
1137
std::vector<std::int32_t > num_slave_blocks (indegree + 1 );
1139
1138
MPI_Neighbor_allgather (
1140
- &num_colliding_blocks, 1 , dolfinx::MPI::mpi_type <std::int32_t >() ,
1141
- num_slave_blocks.data (), 1 , dolfinx::MPI::mpi_type <std::int32_t >() ,
1139
+ &num_colliding_blocks, 1 , dolfinx::MPI::mpi_t <std::int32_t >,
1140
+ num_slave_blocks.data (), 1 , dolfinx::MPI::mpi_t <std::int32_t >,
1142
1141
neighborhood_comms[0 ]);
1143
1142
num_slave_blocks.pop_back ();
1144
1143
@@ -1151,9 +1150,9 @@ mpc_data<T> create_contact_inelastic_condition(
1151
1150
std::vector<std::int64_t > remote_slave_blocks (disp.back ());
1152
1151
MPI_Neighbor_allgatherv (
1153
1152
blocks_wo_local_collision.data (), num_colliding_blocks,
1154
- dolfinx::MPI::mpi_type <std::int64_t >() , remote_slave_blocks.data (),
1155
- num_slave_blocks.data (), disp.data (),
1156
- dolfinx::MPI::mpi_type<std:: int64_t >(), neighborhood_comms[0 ]);
1153
+ dolfinx::MPI::mpi_t <std::int64_t >, remote_slave_blocks.data (),
1154
+ num_slave_blocks.data (), disp.data (), dolfinx::MPI:: mpi_t <std:: int64_t >,
1155
+ neighborhood_comms[0 ]);
1157
1156
1158
1157
// Multiply recv size by three to accommodate block coordinates
1159
1158
std::vector<std::int32_t > num_block_coordinates (indegree);
@@ -1165,11 +1164,10 @@ mpc_data<T> create_contact_inelastic_condition(
1165
1164
1166
1165
// Send slave coordinates to neighbors
1167
1166
std::vector<U> recv_coords (disp.back () * 3 );
1168
- MPI_Neighbor_allgatherv (distribute_coordinates.data (),
1169
- (int )distribute_coordinates.size (),
1170
- dolfinx::MPI::mpi_type<U>(), recv_coords.data (),
1171
- num_block_coordinates.data (), coordinate_disp.data (),
1172
- dolfinx::MPI::mpi_type<U>(), neighborhood_comms[0 ]);
1167
+ MPI_Neighbor_allgatherv (
1168
+ distribute_coordinates.data (), (int )distribute_coordinates.size (),
1169
+ dolfinx::MPI::mpi_t <U>, recv_coords.data (), num_block_coordinates.data (),
1170
+ coordinate_disp.data (), dolfinx::MPI::mpi_t <U>, neighborhood_comms[0 ]);
1173
1171
1174
1172
// Vector for processes with slaves, mapping slaves with
1175
1173
// collision on this process
@@ -1334,9 +1332,9 @@ mpc_data<T> create_contact_inelastic_condition(
1334
1332
disp_inc_slave_blocks.back ());
1335
1333
MPI_Neighbor_alltoallv (
1336
1334
found_slave_blocks.data (), num_found_slave_blocks.data (),
1337
- send_disp_slave_blocks.data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
1335
+ send_disp_slave_blocks.data (), dolfinx::MPI::mpi_t <std::int64_t >,
1338
1336
remote_colliding_blocks.data (), inc_num_found_slave_blocks.data (),
1339
- disp_inc_slave_blocks.data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
1337
+ disp_inc_slave_blocks.data (), dolfinx::MPI::mpi_t <std::int64_t >,
1340
1338
neighborhood_comms[1 ]);
1341
1339
std::vector<std::int32_t > recv_blocks_as_local (
1342
1340
remote_colliding_blocks.size ());
@@ -1345,31 +1343,30 @@ mpc_data<T> create_contact_inelastic_condition(
1345
1343
disp_inc_slave_blocks.back ());
1346
1344
MPI_Neighbor_alltoallv (
1347
1345
offset_for_blocks.data (), num_found_slave_blocks.data (),
1348
- send_disp_slave_blocks.data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
1346
+ send_disp_slave_blocks.data (), dolfinx::MPI::mpi_t <std::int32_t >,
1349
1347
remote_colliding_offsets.data (), inc_num_found_slave_blocks.data (),
1350
- disp_inc_slave_blocks.data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
1348
+ disp_inc_slave_blocks.data (), dolfinx::MPI::mpi_t <std::int32_t >,
1351
1349
neighborhood_comms[1 ]);
1352
1350
// Receive colliding masters and relevant data from other processor
1353
1351
std::vector<std::int64_t > remote_colliding_masters (disp_inc_masters.back ());
1354
1352
MPI_Neighbor_alltoallv (
1355
1353
found_masters.data (), num_collision_masters.data (),
1356
- send_disp_masters.data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
1354
+ send_disp_masters.data (), dolfinx::MPI::mpi_t <std::int64_t >,
1357
1355
remote_colliding_masters.data (), num_inc_masters.data (),
1358
- disp_inc_masters.data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
1356
+ disp_inc_masters.data (), dolfinx::MPI::mpi_t <std::int64_t >,
1359
1357
neighborhood_comms[1 ]);
1360
1358
std::vector<T> remote_colliding_coeffs (disp_inc_masters.back ());
1361
1359
MPI_Neighbor_alltoallv (found_coefficients.data (),
1362
1360
num_collision_masters.data (), send_disp_masters.data (),
1363
- dolfinx::MPI::mpi_type<T>(),
1364
- remote_colliding_coeffs.data (), num_inc_masters.data (),
1365
- disp_inc_masters.data (), dolfinx::MPI::mpi_type<T>(),
1366
- neighborhood_comms[1 ]);
1361
+ dolfinx::MPI::mpi_t <T>, remote_colliding_coeffs.data (),
1362
+ num_inc_masters.data (), disp_inc_masters.data (),
1363
+ dolfinx::MPI::mpi_t <T>, neighborhood_comms[1 ]);
1367
1364
std::vector<std::int32_t > remote_colliding_owners (disp_inc_masters.back ());
1368
1365
MPI_Neighbor_alltoallv (
1369
1366
found_owners.data (), num_collision_masters.data (),
1370
- send_disp_masters.data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
1367
+ send_disp_masters.data (), dolfinx::MPI::mpi_t <std::int32_t >,
1371
1368
remote_colliding_owners.data (), num_inc_masters.data (),
1372
- disp_inc_masters.data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
1369
+ disp_inc_masters.data (), dolfinx::MPI::mpi_t <std::int32_t >,
1373
1370
neighborhood_comms[1 ]);
1374
1371
1375
1372
// Create receive displacement of data per slave block
@@ -1390,9 +1387,9 @@ mpc_data<T> create_contact_inelastic_condition(
1390
1387
std::vector<std::int32_t > block_dofs_recv (inc_block_disp.back ());
1391
1388
MPI_Neighbor_alltoallv (
1392
1389
offsets_in_blocks.data (), num_found_blocks.data (), send_block_disp.data (),
1393
- dolfinx::MPI::mpi_type <std::int32_t >() , block_dofs_recv.data (),
1390
+ dolfinx::MPI::mpi_t <std::int32_t >, block_dofs_recv.data (),
1394
1391
recv_num_found_blocks.data (), inc_block_disp.data (),
1395
- dolfinx::MPI::mpi_type <std::int32_t >() , neighborhood_comms[1 ]);
1392
+ dolfinx::MPI::mpi_t <std::int32_t >, neighborhood_comms[1 ]);
1396
1393
1397
1394
// Iterate through the processors
1398
1395
for (std::size_t i = 0 ; i < src_ranks_rev.size (); ++i)
@@ -1591,19 +1588,19 @@ mpc_data<T> create_contact_inelastic_condition(
1591
1588
disp_send_ghost_slaves.begin () + 1 );
1592
1589
1593
1590
std::vector<std::int64_t > in_ghost_slaves (disp_recv_ghost_slaves.back ());
1594
- MPI_Neighbor_alltoallv (
1595
- out_ghost_slaves. data (), num_send_slaves .data (),
1596
- disp_send_ghost_slaves. data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
1597
- in_ghost_slaves.data (), inc_num_slaves.data (),
1598
- disp_recv_ghost_slaves.data (), dolfinx::MPI::mpi_type<std:: int64_t > (),
1599
- slave_to_ghost);
1591
+ MPI_Neighbor_alltoallv (out_ghost_slaves. data (), num_send_slaves. data (),
1592
+ disp_send_ghost_slaves .data (),
1593
+ dolfinx::MPI::mpi_t <std::int64_t >,
1594
+ in_ghost_slaves.data (), inc_num_slaves.data (),
1595
+ disp_recv_ghost_slaves.data (),
1596
+ dolfinx::MPI:: mpi_t <std:: int64_t >, slave_to_ghost);
1600
1597
std::vector<std::int32_t > in_ghost_offsets (disp_recv_ghost_slaves.back ());
1601
- MPI_Neighbor_alltoallv (
1602
- out_ghost_offsets. data (), num_send_slaves .data (),
1603
- disp_send_ghost_slaves. data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
1604
- in_ghost_offsets.data (), inc_num_slaves.data (),
1605
- disp_recv_ghost_slaves.data (), dolfinx::MPI::mpi_type<std:: int32_t > (),
1606
- slave_to_ghost);
1598
+ MPI_Neighbor_alltoallv (out_ghost_offsets. data (), num_send_slaves. data (),
1599
+ disp_send_ghost_slaves .data (),
1600
+ dolfinx::MPI::mpi_t <std::int32_t >,
1601
+ in_ghost_offsets.data (), inc_num_slaves.data (),
1602
+ disp_recv_ghost_slaves.data (),
1603
+ dolfinx::MPI:: mpi_t <std:: int32_t >, slave_to_ghost);
1607
1604
1608
1605
// Communicate size of communication of masters
1609
1606
std::vector<int > inc_num_masters (src_ranks_ghost.size () + 1 );
@@ -1620,25 +1617,25 @@ mpc_data<T> create_contact_inelastic_condition(
1620
1617
std::partial_sum (num_send_masters.begin (), num_send_masters.end (),
1621
1618
disp_send_ghost_masters.begin () + 1 );
1622
1619
std::vector<std::int64_t > in_ghost_masters (disp_recv_ghost_masters.back ());
1623
- MPI_Neighbor_alltoallv (
1624
- out_ghost_masters. data (), num_send_masters .data (),
1625
- disp_send_ghost_masters. data (), dolfinx::MPI::mpi_type <std::int64_t >() ,
1626
- in_ghost_masters.data (), inc_num_masters.data (),
1627
- disp_recv_ghost_masters.data (), dolfinx::MPI::mpi_type<std:: int64_t > (),
1628
- slave_to_ghost);
1620
+ MPI_Neighbor_alltoallv (out_ghost_masters. data (), num_send_masters. data (),
1621
+ disp_send_ghost_masters .data (),
1622
+ dolfinx::MPI::mpi_t <std::int64_t >,
1623
+ in_ghost_masters.data (), inc_num_masters.data (),
1624
+ disp_recv_ghost_masters.data (),
1625
+ dolfinx::MPI:: mpi_t <std:: int64_t >, slave_to_ghost);
1629
1626
std::vector<T> in_ghost_coeffs (disp_recv_ghost_masters.back ());
1630
1627
MPI_Neighbor_alltoallv (out_ghost_coeffs.data (), num_send_masters.data (),
1631
- disp_send_ghost_masters.data (),
1632
- dolfinx::MPI::mpi_type<T> (), in_ghost_coeffs .data (),
1633
- inc_num_masters .data (), disp_recv_ghost_masters. data () ,
1634
- dolfinx::MPI::mpi_type<T>(), slave_to_ghost);
1628
+ disp_send_ghost_masters.data (), dolfinx::MPI:: mpi_t <T>,
1629
+ in_ghost_coeffs. data (), inc_num_masters .data (),
1630
+ disp_recv_ghost_masters .data (), dolfinx::MPI:: mpi_t <T> ,
1631
+ slave_to_ghost);
1635
1632
std::vector<std::int32_t > in_ghost_owners (disp_recv_ghost_masters.back ());
1636
- MPI_Neighbor_alltoallv (
1637
- out_ghost_owners. data (), num_send_masters .data (),
1638
- disp_send_ghost_masters. data (), dolfinx::MPI::mpi_type <std::int32_t >() ,
1639
- in_ghost_owners.data (), inc_num_masters.data (),
1640
- disp_recv_ghost_masters.data (), dolfinx::MPI::mpi_type<std:: int32_t > (),
1641
- slave_to_ghost);
1633
+ MPI_Neighbor_alltoallv (out_ghost_owners. data (), num_send_masters. data (),
1634
+ disp_send_ghost_masters .data (),
1635
+ dolfinx::MPI::mpi_t <std::int32_t >,
1636
+ in_ghost_owners.data (), inc_num_masters.data (),
1637
+ disp_recv_ghost_masters.data (),
1638
+ dolfinx::MPI:: mpi_t <std:: int32_t >, slave_to_ghost);
1642
1639
1643
1640
// Accumulate offsets of masters from different processors
1644
1641
std::vector<std::int32_t > ghost_offsets = {0 };
0 commit comments