diff --git a/source/adios2/ADIOSTypes.h b/source/adios2/ADIOSTypes.h index bb806e56960f57681c2edd4ff500a94fc67103d5..0078b66b855ec5728cae3e43ad883c0d27fa1ddb 100644 --- a/source/adios2/ADIOSTypes.h +++ b/source/adios2/ADIOSTypes.h @@ -166,6 +166,13 @@ constexpr float DefaultBufferGrowthFactor(1.05f); * 2Gb - 100Kb (tolerance)*/ constexpr size_t DefaultMaxFileBatchSize(2147381248); +constexpr char PathSeparator = +#ifdef _WIN32 + '\\'; +#else + '/'; +#endif + // adios alias values and types constexpr bool DebugON = true; constexpr bool DebugOFF = false; diff --git a/source/adios2/toolkit/format/bp1/BP1Base.cpp b/source/adios2/toolkit/format/bp1/BP1Base.cpp index ecc990f38bef44f499eb417f0e9e609845ae5a6c..19e9ec190785e1b0f3fd45b248741afe239939f7 100644 --- a/source/adios2/toolkit/format/bp1/BP1Base.cpp +++ b/source/adios2/toolkit/format/bp1/BP1Base.cpp @@ -111,8 +111,11 @@ BP1Base::GetBPNames(const std::vector<std::string> &baseNames) const noexcept const int rank) -> std::string { const std::string bpBaseName = AddExtension(baseName, ".bp"); - // name.bp.dir/name.bp.rank - const std::string bpName(bpBaseName + ".dir/" + bpBaseName + "." + + // path/root.bp.dir/root.bp.rank + const std::string bpRootName = + bpBaseName.substr(bpBaseName.find_last_of(PathSeparator)); + + const std::string bpName(bpBaseName + ".dir/" + bpRootName + "." + std::to_string(rank)); return bpName; };