diff --git a/packages/seacas/applications/exodiff/ED_Version.h b/packages/seacas/applications/exodiff/ED_Version.h index 64e837111a..4efbd0b7b7 100644 --- a/packages/seacas/applications/exodiff/ED_Version.h +++ b/packages/seacas/applications/exodiff/ED_Version.h @@ -5,5 +5,5 @@ // See packages/seacas/LICENSE for details #pragma once -static std::string version("3.27"); -static std::string verdate("2023-11-08"); +static std::string version("3.28"); +static std::string verdate("2023-11-14"); diff --git a/packages/seacas/applications/exodiff/check.C b/packages/seacas/applications/exodiff/check.C index 39e02b1ae5..e6a4ed0259 100644 --- a/packages/seacas/applications/exodiff/check.C +++ b/packages/seacas/applications/exodiff/check.C @@ -402,9 +402,11 @@ namespace { is_same = false; } if (!interFace.by_name && assembly1->Name() != assembly2->Name()) { - Warning(fmt::format(".. Assembly {} names don't agree ('{}' != '{}').\n", assembly1->Id(), - assembly1->Name(), assembly2->Name())); - is_same = false; + if (!assembly1->generatedName_ && !assembly2->generatedName_) { + Warning(fmt::format(".. Assembly {} names don't agree ('{}' != '{}').\n", assembly1->Id(), + assembly1->Name(), assembly2->Name())); + is_same = false; + } } if (assembly1->Type() != assembly2->Type()) { Warning(fmt::format(".. Assembly '{}': entity types don't agree ({} != {}).\n", @@ -441,12 +443,18 @@ namespace { if (interFace.by_name && block1->Id() != block2->Id()) { Warning(fmt::format(".. Block '{}' ids don't agree ({} != {}).\n", block1->Name(), block1->Id(), block2->Id())); - is_same = false; + if (interFace.pedantic) { + is_same = false; + } } if (!interFace.by_name && block1->Name() != block2->Name()) { - Warning(fmt::format(".. Block {} names don't agree ({} != {}).\n", block1->Id(), - block1->Name(), block2->Name())); - is_same = false; + if (!block1->generatedName_ && !block2->generatedName_) { + Warning(fmt::format(".. Block {} names don't agree ({} != {}).\n", block1->Id(), + block1->Name(), block2->Name())); + if (interFace.pedantic) { + is_same = false; + } + } } if (!(no_case_equals(block1->Element_Type(), block2->Element_Type()))) { if (!interFace.short_block_check || @@ -521,6 +529,22 @@ namespace { is_same = false; } } + if (interFace.by_name && set1->Id() != set2->Id()) { + Warning(fmt::format(".. Nodeset '{}' ids don't agree ({} != {}).\n", set1->Name(), + set1->Id(), set2->Id())); + if (interFace.pedantic) { + is_same = false; + } + } + if (!interFace.by_name && set1->Name() != set2->Name()) { + if (!set1->generatedName_ && !set2->generatedName_) { + Warning(fmt::format(".. Nodeset {} names don't agree ({} != {}).\n", set1->Id(), + set1->Name(), set2->Name())); + if (interFace.pedantic) { + is_same = false; + } + } + } } } @@ -631,6 +655,22 @@ namespace { is_same = false; } } + if (interFace.by_name && set1->Id() != set2->Id()) { + Warning(fmt::format(".. Sideset '{}' ids don't agree ({} != {}).\n", set1->Name(), + set1->Id(), set2->Id())); + if (interFace.pedantic) { + is_same = false; + } + } + if (!interFace.by_name && set1->Name() != set2->Name()) { + if (!set1->generatedName_ && !set2->generatedName_) { + Warning(fmt::format(".. Sideset {} names don't agree ({} != {}).\n", set1->Id(), + set1->Name(), set2->Name())); + if (interFace.pedantic) { + is_same = false; + } + } + } } } diff --git a/packages/seacas/applications/exodiff/exo_entity.h b/packages/seacas/applications/exodiff/exo_entity.h index 6a1d7b38ab..e48ed77f28 100644 --- a/packages/seacas/applications/exodiff/exo_entity.h +++ b/packages/seacas/applications/exodiff/exo_entity.h @@ -63,6 +63,8 @@ class Exo_Entity // Return "block", "nodelist", "surface", depending on underlying type. virtual const char *short_label() const = 0; + bool generatedName_{true}; + protected: std::string name_{}; int fileId{-1};