UDQConfig object has merged DEFINE & ASSIGN Log use of UDA for output purposes Output UDQ keywords to restart file Add size() method to UDQConfig Add UDQVarTYpe member to UDQInput class Add UDQIndex type to keep track of sequence number of variable types Add unit to UDQInput class use maps Add operator[] to UDQConfig class Use UDQInput class when creating restart file UDQInput: use correct input index Add UDQActive::get() method Make sure UDQ DEFINE overwrite correctly WIP WIP - further code to output IGPH vector WIP Fix IUAD input index Output use_index for IUAD Fix bug with size of IUAD array UAD usage hashing based on udqstring and controltype Add UDQ test and input file Refactor UDQActive - handles vanishing UDA minor correction for iuad[1] and for test_UDQ_x.cpp Further work for making unit tests for UDQ restart data WIP Further work unit tests WIP some minor corrections WIP changes to add first version of BOOST test for IUDQ WIP Added code to write InteHead and DoubHead data as well as IGPH to restart file, Further added unit tests to the writing of UDQ data add code to output IUAP array Fixed group-group2 transition, disable Restart output WIP Initial changes to add DUDW array to restart output WIP further work on DUDW data WIP - further work to output and test DUDW vector data to restart file Further changes to write DUDW array to Restartfile
77 lines
2.1 KiB
C++
Executable File
77 lines
2.1 KiB
C++
Executable File
/*
|
|
Copyright 2018 Statoil ASA.
|
|
|
|
This file is part of the Open Porous Media Project (OPM).
|
|
|
|
OPM is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
OPM is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef OPM_DOUBHEAD_HEADER_INCLUDED
|
|
#define OPM_DOUBHEAD_HEADER_INCLUDED
|
|
|
|
#include <chrono>
|
|
#include <cstddef>
|
|
#include <vector>
|
|
|
|
namespace Opm {
|
|
class Tuning;
|
|
class Schedule;
|
|
class UDQParams;
|
|
}
|
|
|
|
namespace Opm { namespace RestartIO {
|
|
|
|
class DoubHEAD
|
|
{
|
|
public:
|
|
struct TimeStamp {
|
|
std::chrono::time_point<std::chrono::system_clock> start;
|
|
std::chrono::duration<double, std::chrono::seconds::period> elapsed;
|
|
};
|
|
|
|
DoubHEAD();
|
|
|
|
~DoubHEAD() = default;
|
|
DoubHEAD(const DoubHEAD& rhs) = default;
|
|
DoubHEAD(DoubHEAD&& rhs) = default;
|
|
|
|
DoubHEAD& operator=(const DoubHEAD& rhs) = default;
|
|
DoubHEAD& operator=(DoubHEAD&& rhs) = default;
|
|
|
|
DoubHEAD& tuningParameters(const Tuning& tuning,
|
|
const std::size_t lookup_step,
|
|
const double cnvT);
|
|
|
|
DoubHEAD& timeStamp(const TimeStamp& ts);
|
|
DoubHEAD& nextStep(const double nextTimeStep);
|
|
|
|
DoubHEAD& drsdt(const Schedule& sched,
|
|
const std::size_t lookup_step,
|
|
const double cnvT);
|
|
|
|
DoubHEAD& udq_param(const UDQParams& udqPar);
|
|
|
|
const std::vector<double>& data() const
|
|
{
|
|
return this->data_;
|
|
}
|
|
|
|
private:
|
|
std::vector<double> data_;
|
|
};
|
|
|
|
}} // Opm::RestartIO
|
|
|
|
#endif // OPM_DOUBHEAD_HEADER_INCLUDED
|