Commit 6044c3e2 authored by Jason Wang's avatar Jason Wang
Browse files

heat transfer worked for both major modes

parent 24b51b18
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ protected:

    bool m_IsLittleEndian;
    bool m_IsRowMajor;
    bool m_ContiguousMajor = true;
    bool m_ContiguousMajor = false;

    transport::FileFStream m_FileTransport;

+24 −12
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ void DataManReader::GetSyncCommon(Variable<T> &variable, T *data)
template <class T>
void DataManReader::GetDeferredCommon(Variable<T> &variable, T *data)
{
    if (m_IsRowMajor || m_ContiguousMajor)
    if (m_IsRowMajor)
    {
        while (m_DataManDeserializer.Get(data, variable.m_Name,
                                         variable.m_Start, variable.m_Count,
@@ -42,6 +42,8 @@ void DataManReader::GetDeferredCommon(Variable<T> &variable, T *data)
        }
    }
    else
    {
        if (m_ContiguousMajor)
        {
            Dims start = variable.m_Start;
            Dims count = variable.m_Count;
@@ -51,12 +53,22 @@ void DataManReader::GetDeferredCommon(Variable<T> &variable, T *data)
            std::reverse(count.begin(), count.end());
            std::reverse(memstart.begin(), memstart.end());
            std::reverse(memcount.begin(), memcount.end());
        while (m_DataManDeserializer.Get(data, variable.m_Name, start, count,
                                         m_CurrentStep, memstart,
            while (m_DataManDeserializer.Get(data, variable.m_Name, start,
                                             count, m_CurrentStep, memstart,
                                             memcount) != 0)
            {
            }
        }
        else
        {
            while (m_DataManDeserializer.Get(
                       data, variable.m_Name, variable.m_Start,
                       variable.m_Count, m_CurrentStep, variable.m_MemoryStart,
                       variable.m_MemoryCount) != 0)
            {
            }
        }
    }
}

template <typename T>
+28 −16
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ void DataManWriter::PutDeferredCommon(Variable<T> &variable, const T *values)
        variable.m_Start.assign(variable.m_Count.size(), 0);
    }

    if (m_IsRowMajor || m_ContiguousMajor)
    if (m_IsRowMajor)
    {
        for (size_t i = 0; i < m_TransportChannels; ++i)
        {
@@ -61,6 +61,8 @@ void DataManWriter::PutDeferredCommon(Variable<T> &variable, const T *values)
        }
    }
    else
    {
        if (m_ContiguousMajor)
        {
            Dims start = variable.m_Start;
            Dims count = variable.m_Count;
@@ -74,12 +76,22 @@ void DataManWriter::PutDeferredCommon(Variable<T> &variable, const T *values)
            std::reverse(memcount.begin(), memcount.end());
            for (size_t i = 0; i < m_TransportChannels; ++i)
            {
            m_DataManSerializer[i]->Put(variable.m_Data, variable.m_Name, shape,
                                        start, count, memstart, memcount,
                                        m_Name, CurrentStep(), m_MPIRank, "",
                m_DataManSerializer[i]->Put(
                    variable.m_Data, variable.m_Name, shape, start, count,
                    memstart, memcount, m_Name, CurrentStep(), m_MPIRank, "",
                    m_IO.m_TransportsParameters[i]);
            }
        }
        else
        {
            for (size_t i = 0; i < m_TransportChannels; ++i)
            {
                m_DataManSerializer[i]->Put(variable, m_Name, CurrentStep(),
                                            m_MPIRank, "",
                                            m_IO.m_TransportsParameters[i]);
            }
        }
    }
}

} // end namespace engine
+14 −13
Original line number Diff line number Diff line
@@ -899,7 +899,8 @@ int NdCopy(const char *in, const Dims &inStart, const Dims &inCount,
            // get reversed order outOvlpStart
            Dims revOvlpStart(ovlpStart);
            std::reverse(revOvlpStart.begin(), revOvlpStart.end());
            GetRltvOvlpStartPos(outRltvOvlpStartPos, outMemStartNC, revOvlpStart);
            GetRltvOvlpStartPos(outRltvOvlpStartPos, outMemStartNC,
                                revOvlpStart);
        }
        // col-major ==> row-major mode
        else if (!inIsRowMajor && outIsRowMajor)