예제 #1
0
static std::shared_ptr< Deck > deckWithGRUPTREE() {
    DeckPtr deck = createDeck();
    DeckKeyword gruptreeKeyword("GRUPTREE");

    DeckRecord recordChildOfField;
    auto itemChild1 = DeckItem::make< std::string >( "CHILD_GROUP" );
    itemChild1.push_back(std::string("BARNET"));
    auto itemParent1 = DeckItem::make< std::string >( "PARENT_GROUP" );
    itemParent1.push_back(std::string("FAREN"));

    recordChildOfField.addItem( std::move( itemChild1 ) );
    recordChildOfField.addItem( std::move( itemParent1 ) );
    gruptreeKeyword.addRecord( std::move( recordChildOfField ) );
    deck->addKeyword( std::move( gruptreeKeyword ) );

    return deck;
}
예제 #2
0
static Opm::EquilRecord mkEquilRecord( double datd, double datp,
                                       double zwoc, double pcow_woc,
                                       double zgoc, double pcgo_goc ) {
    using namespace Opm;

    auto dd = DeckItem::make< double >( "datdep" );
    dd.push_back( datd  );
    auto dd_dim = std::make_shared< Opm::Dimension >( "dddim", 1 );
    dd.push_backDimension( dd_dim, dd_dim );

    auto dp = DeckItem::make< double >( "datps" );
    dp.push_back( datp );
    auto dp_dim = std::make_shared< Opm::Dimension >( "dpdim", 1 );
    dp.push_backDimension( dp_dim, dp_dim );

    auto zw = DeckItem::make< double >( "zwoc" );
    zw.push_back( zwoc );
    auto zw_dim = std::make_shared< Opm::Dimension >( "zwdim", 1 );
    zw.push_backDimension( zw_dim, zw_dim );

    auto pcow = DeckItem::make< double >( "pcow" );
    pcow.push_back( pcow_woc );
    auto pcow_dim = std::make_shared< Opm::Dimension >( "pcowdim", 1 );
    pcow.push_backDimension( pcow_dim, pcow_dim );

    auto zg = DeckItem::make< double >( "zgoc" );
    zg.push_back( zgoc );
    auto zg_dim = std::make_shared< Opm::Dimension >( "zgdim", 1 );
    zg.push_backDimension( zg_dim, zg_dim );

    auto pcgo = DeckItem::make< double >( "pcgo" );
    pcgo.push_back( pcgo_goc );
    auto pcgo_dim = std::make_shared< Opm::Dimension >( "pcgodim", 1 );
    pcgo.push_backDimension( pcgo_dim, pcgo_dim );

    auto i1 = DeckItem::make< int >( "i1" );
    auto i2 = DeckItem::make< int >( "i2" );
    auto i3 = DeckItem::make< int >( "i3" );
    i1.push_back( 0 );
    i2.push_back( 0 );
    i3.push_back( 0 );

    DeckRecord rec;
    rec.addItem( std::move( dd ) );
    rec.addItem( std::move( dp ) );
    rec.addItem( std::move( zw ) );
    rec.addItem( std::move( pcow ) );
    rec.addItem( std::move( zg ) );
    rec.addItem( std::move( pcgo ) );
    rec.addItem( std::move( i1 ) );
    rec.addItem( std::move( i2 ) );
    rec.addItem( std::move( i3 ) );

    return EquilRecord( rec );
}