opm-common/opm/output/eclipse/VectorItems/action.hpp
2021-09-15 14:29:28 +02:00

108 lines
2.6 KiB
C++

/*
Copyright (c) 2021 Equinor 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_OUTPUT_ECLIPSE_VECTOR_ACTION_HPP
#define OPM_OUTPUT_ECLIPSE_VECTOR_ACTION_HPP
#include <vector>
namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems {
namespace IACN {
enum index : std::vector<int>::size_type {
LHSQuantityType = 10,
RHSQuantityType = 11,
FirstGreater = 12,
TerminalLogic = 13,
Paren = 15,
Comparator = 16,
BoolLink = 17
};
// The same enum is used for both lefthand side and righthand side quantities;
// although not all values can be used on both sides.
namespace Value {
enum QuantityType {
Field = 1,
Well = 2,
Group = 3,
Const = 8,
Day = 10,
Month = 11,
Year = 12
};
enum ParenType {
None = 0,
Open = 1,
Close = 2
};
}
constexpr std::size_t ConditionSize = 26;
}
namespace SACN {
enum index : std::vector<int>::size_type {
LHSValue0 = 0,
RHSValue0 = 2,
LHSValue1 = 4,
RHSValue1 = 5,
LHSValue2 = 6,
RHSValue2 = 7,
LHSValue3 = 8,
RHSValue3 = 9
};
constexpr std::size_t ConditionSize = 16;
}
namespace ZACN {
enum index : std::vector<int>::size_type {
Quantity = 0,
LHSQuantity = 0,
RHSQuantity = 1,
Comparator = 2,
Well = 3,
LHSWell = 3,
RHSWell = 4,
Group = 5,
LHSGroup = 5,
RHSGroup = 6
};
constexpr std::size_t RHSOffset = 1;
constexpr std::size_t ConditionSize = 13;
}
namespace ZLACT {
constexpr std::size_t max_line_length = 128;
}
}}}} // Opm::RestartIO::Helpers::VectorItems
#endif