Skip to content

BUG: MappedFile: different fieldTable names are not possible in parallel or restart runs

Summary

In MappedFile.C, fieldTableName_ is written outside the Coeffs block when MappedFile writes out its metadata, say for decomposePar/redistributePar executions.

This does not cause any issues when fieldTableName_ does not differ from the entryName, which is the default value.

However, when the simulation is being run in parallel or is being restarted, fieldTable entry is not being read by the caller, but the default value only. Therefore, any parallel or restart run in such configuration becomes problematic.

        os.writeEntryIfDifferent
        (
            "fieldTable",
            this->name(),
            fieldTableName_
        );

        os.beginBlock(word(this->name() + "Coeffs"));

        //--> fieldTableName_ should be written herein.

        writeEntries(os);
        os.endBlock();

Environment information

base0    = base
base1    = develop
api      = 2112
patch    = 0
HEAD     = 34e226dfe3
version  = com
compiler = Clang (system)
         = clang version 9.0.1 
mpi      = SYSTEMOPENMPI
         = mpirun (Open MPI) 1.10.7.0.5e373bf1fd
OS       = Description:     openSUSE Leap 15.3
opts     = linux64ClangDPInt32Opt

Possible fixes

A tested potential-fix patch (FYI: @mark ): 0001-BUG-MappedFile-ensure-correct-fieldTableName-can-be-.patch

Edited by Kutalmış Berçin