The main content of this commit is that the loading of restart files is based on map of keys passed in from calling scope. This way the selection of keywords to save and load is fully under control of calling scope, but in addition there are many small refactorings: - The EclipseWriter class and implementation has been renamed EclipseIO. - The loading and saving of restart files has been moved to file and namespace RestartIO, which contains two loose functions load( ) and save( ). - The Summary() and RFT( ) data get their own copies of the data::Cells vector. - Removed some abstractions and wrrappers around C / ert datastructures. Using ecl_file_view when loading restart files, instead of bare ecl_file. Simplified opening of unified restart files. - Removed the ability to save restart keywords in double precision.
36 lines
842 B
C++
36 lines
842 B
C++
#ifndef ECLIPSE_IO_UTIL_HPP
|
|
#define ECLIPSE_IO_UTIL_HPP
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
#include <iostream>
|
|
|
|
|
|
namespace Opm
|
|
{
|
|
namespace EclipseIOUtil
|
|
{
|
|
|
|
template <typename T>
|
|
void addToStripedData(const std::vector<T>& data, std::vector<T>& result, size_t offset, size_t stride) {
|
|
int dataindex = 0;
|
|
for (size_t index = offset; index < result.size(); index += stride) {
|
|
result[index] = data[dataindex];
|
|
++dataindex;
|
|
}
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
void extractFromStripedData(const std::vector<T>& data, std::vector<T>& result, size_t offset, size_t stride) {
|
|
for (size_t index = offset; index < data.size(); index += stride) {
|
|
result.push_back(data[index]);
|
|
}
|
|
}
|
|
|
|
|
|
} //namespace EclipseIOUtil
|
|
} //namespace Opm
|
|
|
|
#endif //ECLIPSE_IO_UTIL_HPP
|