Merge pull request #2767 from joakim-hove/rst-deck-output

Rst deck output
This commit is contained in:
Joakim Hove 2021-10-20 08:01:21 +02:00 committed by GitHub
commit 24d1f58aca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 4 additions and 13 deletions

View File

@ -34,7 +34,7 @@ namespace Opm {
DeckKeyword::DeckKeyword(const ParserKeyword& parserKeyword) :
m_keywordName(parserKeyword.getName()),
m_isDataKeyword(false),
m_slashTerminated(true)
m_slashTerminated(!parserKeyword.hasFixedSize())
{
}
@ -70,7 +70,7 @@ namespace Opm {
void add_deckvalue( DeckItem deck_item, DeckRecord& deck_record, const ParserItem& parser_item, const std::vector<DeckValue>& input_record, size_t j) {
if (j >= input_record.size() || input_record[j].is_default()) {
if (parser_item.hasDefault())
deck_item.push_back( parser_item.getDefault<T>() );
deck_item.push_backDefault( parser_item.getDefault<T>() );
else
deck_item.push_backDummyDefault<T>();
}

View File

@ -382,7 +382,7 @@ void FileDeck::rst_solution(const std::string& rst_base, int report_step) {
{
Opm::UnitSystem units;
std::vector<DeckValue> values{ DeckValue{rst_base}, DeckValue{report_step} };
DeckKeyword restart(ParserKeywords::RESTART(), std::vector<std::vector<DeckValue>>{ values }, units, units);
DeckKeyword restart(ParserKeywords::RESTART{}, std::vector<std::vector<DeckValue>>{ values }, units, units);
auto solution = this->find("SOLUTION").value();
this->insert(++solution, restart);

View File

@ -766,7 +766,7 @@ void set_dimensions( ParserItem& item,
bool ParserKeyword::hasFixedSize() const {
auto size_type = this->keyword_size.size_type();
return (size_type == FIXED || size_type == FIXED_CODE);
return (size_type == FIXED || size_type == FIXED_CODE || this->m_records.empty());
}
enum ParserKeywordSizeEnum ParserKeyword::getSizeType() const {

View File

@ -1590,20 +1590,12 @@ BOOST_AUTO_TEST_CASE(getFixedSize_sizeObjectHasFixedSize_sizeReturned) {
}
BOOST_AUTO_TEST_CASE(getFixedSize_sizeObjectDoesNotHaveFixedSizeObjectSet_ExceptionThrown) {
const auto& parserKeyword = createDynamicSized("JA");
BOOST_CHECK_THROW(parserKeyword.getFixedSize(), std::logic_error);
}
BOOST_AUTO_TEST_CASE(hasFixedSize_hasFixedSizeObject_returnstrue) {
const auto& parserKeyword = createFixedSized("JA", (size_t) 2);
BOOST_CHECK(parserKeyword.hasFixedSize());
}
BOOST_AUTO_TEST_CASE(hasFixedSize_sizeObjectDoesNotHaveFixedSize_returnsfalse) {
const auto& parserKeyword = createDynamicSized("JA");
BOOST_CHECK(!parserKeyword.hasFixedSize());
}
/******/
/* Tables: */
@ -1615,7 +1607,6 @@ BOOST_AUTO_TEST_CASE(DefaultIsNot_TableKeyword) {
BOOST_AUTO_TEST_CASE(ConstructorIsTableCollection) {
auto parserKeyword = createTable("JA" , "TABDIMS" , "NTPVT" , true);
BOOST_CHECK(parserKeyword.isTableCollection());
BOOST_CHECK(!parserKeyword.hasFixedSize());
auto keyword_size = parserKeyword.getKeywordSize();
BOOST_CHECK_EQUAL( parserKeyword.getSizeType() , OTHER_KEYWORD_IN_DECK);