Skip to content

Commit 226666f

Browse files
gdsjaargsjaardema
authored andcommitted
IOSS: Fix field suffix setting and node ownership
1 parent c985cb2 commit 226666f

File tree

4 files changed

+9
-10
lines changed

4 files changed

+9
-10
lines changed

packages/seacas/libraries/ioss/src/exodus/Ioex_BaseDatabaseIO.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1795,7 +1795,7 @@ namespace Ioex {
17951795
ex_entity_type type, Ioss::NameList &names)
17961796
{
17971797
std::vector<Ioss::Field> fields;
1798-
if (!entity->get_database()->get_field_recognition()) {
1798+
if (!using_parallel_io() || !entity->get_database()->get_field_recognition()) {
17991799
return fields;
18001800
}
18011801
// See if this entity is using enhanced field attributes...

packages/seacas/libraries/ioss/src/exodus/Ioex_DatabaseIO.C

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2311,9 +2311,7 @@ namespace Ioex {
23112311
for (size_t i = 0; i < ent_proc.size(); i += 2) {
23122312
int64_t node = ent_proc[i + 0];
23132313
int64_t proc = ent_proc[i + 1];
2314-
if (proc < myProcessor) {
2315-
idata[node - 1] = proc;
2316-
}
2314+
idata[node - 1] = std::min(idata[node - 1], static_cast<int>(proc));
23172315
}
23182316
}
23192317
else {
@@ -2325,9 +2323,7 @@ namespace Ioex {
23252323
for (size_t i = 0; i < ent_proc.size(); i += 2) {
23262324
int node = ent_proc[i + 0];
23272325
int proc = ent_proc[i + 1];
2328-
if (proc < myProcessor) {
2329-
idata[node - 1] = proc;
2330-
}
2326+
idata[node - 1] = std::min(idata[node - 1], proc);
23312327
}
23322328
}
23332329
}

packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.C

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1940,7 +1940,7 @@ namespace Ioex {
19401940
// map for all locally-owned nodes and also determine how many
19411941
// of my nodes are owned by which other processors.
19421942

1943-
global_implicit_map.resize(owning_proc.size());
1943+
global_implicit_map.resize(owning_proc.size(), -1);
19441944

19451945
std::vector<int64_t> snd_count(m_processorCount);
19461946
std::vector<int64_t> rcv_count(m_processorCount);
@@ -1969,7 +1969,9 @@ namespace Ioex {
19691969
}
19701970

19711971
for (auto &i : global_implicit_map) {
1972-
i += *processor_offset + 1;
1972+
if (i >= 0) {
1973+
i += *processor_offset + 1;
1974+
}
19731975
}
19741976

19751977
// Now, tell the other processors how many nodes I will be sending
@@ -2003,7 +2005,9 @@ namespace Ioex {
20032005
// Iterate rcv_list and convert global ids to the global-implicit position...
20042006
for (auto &i : rcv_list) {
20052007
int64_t local_id = node_map.global_to_local(i) - 1;
2008+
SMART_ASSERT(local_id >= 0)(local_id)(i);
20062009
int64_t rcv_position = global_implicit_map[local_id];
2010+
SMART_ASSERT(rcv_position >= 0)(rcv_position)(local_id)(i);
20072011
i = rcv_position;
20082012
}
20092013

packages/seacas/libraries/ioss/src/main/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ if (TPL_ENABLE_MPI)
107107
set(PJOIN_ARG --compose --netcdf5)
108108
set(NPROCS 4)
109109
set(NPROCS_BUG 1)
110-
set(SERIALIZE_ARG --serialize_io_size=2)
111110
else()
112111
set(COMPOSE_ARG )
113112
set(NPROCS 1)

0 commit comments

Comments
 (0)