Remove python sub-folder

This commit is contained in:
Magne Sjaastad
2020-11-16 16:09:02 +01:00
parent b0ec2895be
commit 54480d8406
335 changed files with 0 additions and 540888 deletions

View File

@@ -1,40 +0,0 @@
#include <opm/parser/eclipse/EclipseState/Schedule/Well/Connection.hpp>
#include "export.hpp"
namespace {
std::string state( const Connection& c ) {
return Connection::State2String( c.state() );
}
std::string direction( const Connection& c ) {
return Connection::Direction2String( c.dir() );
}
std::tuple<int, int, int> get_pos( const Connection& conn ) {
return std::make_tuple(conn.getI(), conn.getJ(), conn.getK());
}
}
void python::common::export_Connection(py::module& module) {
py::class_< Connection >( module, "Connection")
.def_property_readonly("direction", &direction )
.def_property_readonly("state", &state )
.def_property_readonly( "i", &Connection::getI )
.def_property_readonly( "j", &Connection::getJ )
.def_property_readonly( "j", &Connection::getK )
.def_property_readonly( "pos", &get_pos )
.def_property_readonly( "attached_to_segment", &Connection::attachedToSegment )
.def_property_readonly( "center_depth", &Connection::depth)
.def_property_readonly( "rw", &Connection::rw)
.def_property_readonly( "complnum", &Connection::complnum)
.def_property_readonly( "number", &Connection::complnum) // This is deprecated; complnum is the "correct" proeprty name
.def_property_readonly( "sat_table_id", &Connection::satTableId)
.def_property_readonly( "segment_number", &Connection::segment)
.def_property_readonly( "cf", &Connection::CF)
.def_property_readonly( "kh", &Connection::Kh);
}

View File

@@ -1,22 +0,0 @@
#include "converters.hpp"
namespace convert {
py::array numpy_string_array(const std::vector<std::string>& input) {
const std::size_t target_length = 8;
using numpy_string_t = char[target_length];
auto output = py::array_t<numpy_string_t>(input.size());
auto output_ptr = reinterpret_cast<numpy_string_t *>(output.request().ptr);
for (std::size_t index = 0; index < input.size(); index++) {
if (input[index].size() > target_length)
throw std::invalid_argument("Current implementation only works with 8 character strings");
std::size_t length = input[index].size();
std::strncpy(output_ptr[index], input[index].c_str(), length);
for (std::size_t i = length; i < target_length; i++)
output_ptr[index][i] = '\0';
}
return output;
}
}

View File

@@ -1,53 +0,0 @@
#ifndef SUNBEAM_CONVERTERS_HPP
#define SUNBEAM_CONVERTERS_HPP
#include <sstream>
#include <pybind11/pybind11.h>
#include <pybind11/numpy.h>
namespace py = pybind11;
template< typename T >
py::list iterable_to_pylist( const T& v ) {
py::list l;
for( const auto& x : v ) l.append( x );
return l;
}
template< typename T >
std::string str( const T& t ) {
std::stringstream stream;
stream << t;
return stream.str();
}
namespace convert {
py::array numpy_string_array(const std::vector<std::string>& input);
template <class T>
std::vector<T> vector(py::array_t<T>& input) {
T * input_ptr = (T *) input.request().ptr;
std::vector<T> output(input.size());
for (int i = 0; i < input.size(); i++)
output[i] = input_ptr[i];
return output;
}
template <class T>
py::array_t<T> numpy_array(const std::vector<T>& input) {
auto output = py::array_t<T>(input.size());
T * py_array_ptr = (T*)output.request().ptr;
for (size_t i = 0; i < input.size(); i++)
py_array_ptr[i] = input[i];
return output;
}
}
#endif //SUNBEAM_CONVERTERS_HPP

View File

@@ -1,71 +0,0 @@
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <opm/parser/eclipse/Units/UnitSystem.hpp>
#include <pybind11/pybind11.h>
#include "converters.hpp"
#include "export.hpp"
namespace {
size_t size( const Deck& deck ) {
return deck.size();
}
size_t count( const Deck& deck, const std::string& kw ) {
return deck.count(kw);
}
bool hasKeyword( const Deck& deck, const std::string& kw ) {
return deck.hasKeyword(kw);
}
const DeckKeyword& getKeyword_tuple( const Deck& deck, py::tuple kw_index ) {
const std::string kw = py::cast<const std::string>(kw_index[0]);
const size_t index = py::cast<size_t>(kw_index[1]);
return deck.getKeyword(kw, index);
}
const DeckKeyword& getKeyword_string( const Deck& deck, const std::string& kw ) {
return deck.getKeyword(kw);
}
const DeckKeyword& getKeyword_int( const Deck& deck, size_t index ) {
return deck.getKeyword(index);
}
//This adds a keyword by copy
void addKeyword(Deck& deck, const DeckKeyword kw) {
deck.addKeyword(kw);
}
}
void python::common::export_Deck(py::module &module) {
py::class_< Deck >(module, "Deck")
.def( "__len__", &size )
.def( "__contains__", &hasKeyword )
.def("__iter__",
[] (const Deck &deck) { return py::make_iterator(deck.begin(), deck.end()); }, py::keep_alive<0, 1>())
.def( "__getitem__", &getKeyword_int, ref_internal)
.def( "__getitem__", &getKeyword_string, ref_internal)
.def( "__getitem__", &getKeyword_tuple, ref_internal)
.def( "__str__", &str<Deck>)
.def("active_unit_system", [](const Deck& deck) -> const UnitSystem& {
return deck.getActiveUnitSystem();
} )
.def("default_unit_system", [](const Deck& deck) -> const UnitSystem& {
return deck.getDefaultUnitSystem();
} )
.def( "count", &count )
.def( "add", &addKeyword)
;
}

View File

@@ -1,230 +0,0 @@
#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
#include <opm/parser/eclipse/Units/UnitSystem.hpp>
#include <opm/parser/eclipse/Parser/ParserKeyword.hpp>
#include <opm/parser/eclipse/Deck/DeckValue.hpp>
#include <opm/parser/eclipse/Deck/DeckItem.hpp>
#include <opm/parser/eclipse/Deck/DeckKeyword.hpp>
#include <opm/parser/eclipse/Deck/DeckRecord.hpp>
#include <opm/parser/eclipse/Utility/Typetools.hpp>
#include "export.hpp"
#include "converters.hpp"
#include <iostream>
namespace {
/* DeckKeyword */
const DeckRecord& (DeckKeyword::*getRecord)(size_t index) const = &DeckKeyword::getRecord;
const DeckItem& getItem(const DeckRecord& record, size_t index) {
return record.getItem(index);
}
py::list item_to_pylist( const DeckItem& item )
{
switch (item.getType())
{
case type_tag::integer:
return iterable_to_pylist( item.getData< int >() );
break;
case type_tag::fdouble:
throw py::type_error("Double list access must be specified by either 'get_raw_data_list' or 'get_SI_data_list'.");
break;
case type_tag::string:
return iterable_to_pylist( item.getData< std::string >() );
break;
default:
throw std::logic_error( "Type not set." );
break;
}
}
py::list raw_data_to_pylist( const DeckItem& item) {
return iterable_to_pylist( item.getData<double>() );
}
py::list SI_data_to_pylist( const DeckItem& item) {
return iterable_to_pylist( item.getSIDoubleData() );
}
bool is_int(const std::string& s)
{
return !s.empty() && std::find_if(s.begin(),
s.end(), [](char c) { return !std::isdigit(c); }) == s.end();
}
void push_string_as_deck_value(std::vector<DeckValue>& record, const std::string str) {
std::size_t star_pos = str.find('*');
if (star_pos != std::string::npos) {
int multiplier = 1;
std::string mult_str = str.substr(0, star_pos);
if (mult_str.length() > 0) {
if (is_int(mult_str))
multiplier = std::stoi( mult_str );
else
throw py::type_error();
}
std::string value_str = str.substr(star_pos + 1, str.length());
DeckValue value;
if (value_str.length() > 0) {
if (is_int(value_str))
value = DeckValue( stoi(value_str) );
else
value = DeckValue( stod(value_str) );
}
for (int i = 0; i < multiplier; i++)
record.push_back( value );
}
else
record.push_back( DeckValue(str) );
}
py::array_t<int> get_int_array(const DeckKeyword& kw) {
return convert::numpy_array( kw.getIntData() );
}
py::array_t<double> get_raw_array(const DeckKeyword& kw) {
return convert::numpy_array( kw.getRawDoubleData() );
}
py::array_t<double> get_SI_array(const DeckKeyword& kw) {
return convert::numpy_array( kw.getSIDoubleData() );
}
bool uda_item_is_numeric(DeckItem * item)
{
if( !item->is_uda() )
throw std::logic_error("deck item doesn't support user defined quantities");
UDAValue uda = item->get_uda();
return uda.is_numeric();
}
double get_uda_double(DeckItem * item)
{
UDAValue uda = item->get_uda();
return uda.get<double>();
}
std::string get_uda_str(DeckItem * item)
{
UDAValue uda = item->get_uda();
return uda.get<std::string>();
}
}
void python::common::export_DeckKeyword(py::module& module) {
py::class_< DeckKeyword >( module, "DeckKeyword")
.def(py::init<const ParserKeyword& >())
.def(py::init([](const ParserKeyword& parser_keyword, py::list record_list, UnitSystem& active_system, UnitSystem& default_system) {
std::vector< std::vector<DeckValue> > value_record_list;
for (py::handle record_obj : record_list) {
py::list record = record_obj.cast<py::list>();
std::vector<DeckValue> value_record;
for (const py::handle& value_obj : record) {
try {
int val_int = value_obj.cast<int>();
value_record.push_back( DeckValue(val_int) );
continue;
}
catch (const std::exception& e_int) {}
try {
double val_double = value_obj.cast<double>();
value_record.push_back( DeckValue(val_double) );
continue;
}
catch (const std::exception& e_double) {}
try {
std::string val_string = value_obj.cast<std::string>();
push_string_as_deck_value(value_record, val_string);
continue;
}
catch (const std::exception& e_string) {}
throw py::type_error("DeckKeyword: tried to add unkown type to record.");
}
value_record_list.push_back( value_record );
}
return DeckKeyword(parser_keyword, value_record_list, active_system, default_system);
} ) )
.def( "__repr__", &DeckKeyword::name )
.def( "__str__", &str<DeckKeyword> )
.def("__iter__", [] (const DeckKeyword &keyword) { return py::make_iterator(keyword.begin(), keyword.end()); }, py::keep_alive<0,1>())
.def( "__getitem__", getRecord, ref_internal)
.def( "__len__", &DeckKeyword::size )
.def_property_readonly("name", &DeckKeyword::name )
.def(py::init([](const ParserKeyword& parser_keyword, py::array_t<int> py_data) {
return DeckKeyword(parser_keyword, convert::vector(py_data));
} ) )
.def(py::init([](const ParserKeyword& parser_keyword, py::array_t<double> py_data, UnitSystem& active_system, UnitSystem& default_system) {
return DeckKeyword(parser_keyword, convert::vector(py_data), active_system, default_system);
} ) )
.def("get_int_array", &get_int_array)
.def("get_raw_array", &get_raw_array)
.def("get_SI_array", &get_SI_array)
;
py::class_< DeckRecord >( module, "DeckRecord")
.def( "__repr__", &str<DeckRecord> )
.def( "__iter__", +[] (const DeckRecord& record) { return py::make_iterator(record.begin(), record.end()); }, py::keep_alive<0,1>())
.def( "__getitem__", &getItem, ref_internal)
.def( "__len__", &DeckRecord::size )
;
py::class_< DeckItem >(module, "DeckItem")
.def( "__len__", &DeckItem::data_size )
.def("is_uda", &DeckItem::is_uda)
.def("is_double", &DeckItem::is_double)
.def("is_int", &DeckItem::is_int)
.def("is_string", &DeckItem::is_string)
.def("get_str", &DeckItem::get<std::string>)
.def("get_int", &DeckItem::get<int>)
.def("get_raw", &DeckItem::get<double>)
.def("get_SI", &DeckItem::getSIDouble)
.def("get_data_list", &item_to_pylist)
.def("get_raw_data_list", &raw_data_to_pylist)
.def("get_SI_data_list", &SI_data_to_pylist)
.def("__has_value", &DeckItem::hasValue)
.def("__defaulted", &DeckItem::defaultApplied)
.def("__is_numberic", &uda_item_is_numeric)
.def("__uda_double", &get_uda_double)
.def("__uda_str", &get_uda_str)
;
}

View File

@@ -1,39 +0,0 @@
#include <vector>
#include <opm/parser/eclipse/EclipseState/EclipseConfig.hpp>
#include <opm/parser/eclipse/EclipseState/InitConfig/InitConfig.hpp>
#include <opm/parser/eclipse/EclipseState/SummaryConfig/SummaryConfig.hpp>
#include <opm/parser/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/TableManager.hpp>
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp>
#include "export.hpp"
void python::common::export_EclipseConfig(py::module& module)
{
py::class_< EclipseConfig >( module, "EclipseConfig" )
.def( "init", &EclipseConfig::init, ref_internal);
py::class_< SummaryConfig >( module, "SummaryConfig")
.def(py::init([](const Deck& deck, const EclipseState& state, const Schedule& schedule) {
return SummaryConfig( deck, schedule, state.getTableManager() );
} ) )
.def( "__contains__", &SummaryConfig::hasKeyword );
py::class_< InitConfig >( module, "InitConfig")
.def( "hasEquil", &InitConfig::hasEquil )
.def( "restartRequested", &InitConfig::restartRequested )
.def( "getRestartStep" , &InitConfig::getRestartStep );
py::class_< IOConfig >( module, "IOConfig");
py::class_< SimulationConfig >( module, "SimulationConfig")
.def("hasThresholdPressure", &SimulationConfig::useThresholdPressure )
.def("useCPR", &SimulationConfig::useCPR )
.def("hasDISGAS", &SimulationConfig::hasDISGAS )
.def("hasVAPOIL", &SimulationConfig::hasVAPOIL );
}

View File

@@ -1,134 +0,0 @@
#include <opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FaultCollection.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FaultFace.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/Fault.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FaceDir.hpp>
#include <pybind11/stl.h>
#include "converters.hpp"
#include "export.hpp"
namespace {
py::tuple getXYZ( const EclipseGrid& grid ) {
return py::make_tuple( grid.getNX(),
grid.getNY(),
grid.getNZ());
}
int getNumActive( const EclipseGrid& grid ) {
return grid.getNumActive();
}
int getCartesianSize( const EclipseGrid& grid ) {
return grid.getCartesianSize();
}
int getGlobalIndex( const EclipseGrid& grid, int i, int j, int k ) {
return grid.getGlobalIndex(i, j, k);
}
py::tuple getIJK( const EclipseGrid& grid, int g ) {
const auto& ijk = grid.getIJK(g);
return py::make_tuple(ijk[0], ijk[1], ijk[2]);
}
double cellVolume1G( const EclipseGrid& grid, size_t glob_idx) {
return grid.getCellVolume(glob_idx);
}
double cellVolume3( const EclipseGrid& grid, size_t i_idx, size_t j_idx, size_t k_idx) {
return grid.getCellVolume(i_idx, j_idx, k_idx);
}
py::array cellVolumeAll( const EclipseGrid& grid)
{
std::vector<double> cellVol;
std::array<int, 3> dims = grid.getNXYZ();
size_t nCells = dims[0]*dims[1]*dims[2];
cellVol.reserve(nCells);
for (size_t n = 0; n < nCells; n++)
cellVol.push_back(grid.getCellVolume(n));
return convert::numpy_array(cellVol);
}
py::array cellVolumeMask( const EclipseGrid& grid, std::vector<int>& mask)
{
std::array<int, 3> dims = grid.getNXYZ();
size_t nCells = dims[0]*dims[1]*dims[2];
if (nCells != mask.size())
throw std::logic_error("size of input mask doesn't match size of grid");
std::vector<double> cellVol(nCells, 0.0);
for (size_t n = 0; n < nCells; n++)
if (mask[n]==1)
cellVol[n] = grid.getCellVolume(n);
return convert::numpy_array(cellVol);
}
double cellDepth1G( const EclipseGrid& grid, size_t glob_idx) {
return grid.getCellDepth(glob_idx);
}
double cellDepth3( const EclipseGrid& grid, size_t i_idx, size_t j_idx, size_t k_idx) {
return grid.getCellDepth(i_idx, j_idx, k_idx);
}
py::array cellDepthAll( const EclipseGrid& grid)
{
std::vector<double> cellDepth;
std::array<int, 3> dims = grid.getNXYZ();
size_t nCells = dims[0]*dims[1]*dims[2];
cellDepth.reserve(nCells);
for (size_t n = 0; n < nCells; n++)
cellDepth.push_back(grid.getCellDepth(n));
return convert::numpy_array(cellDepth);
}
py::array cellDepthMask( const EclipseGrid& grid, std::vector<int>& mask)
{
std::array<int, 3> dims = grid.getNXYZ();
size_t nCells = dims[0]*dims[1]*dims[2];
if (nCells != mask.size())
throw std::logic_error("size of input mask doesn't match size of grid");
std::vector<double> cellDepth(nCells, 0.0);
for (size_t n = 0; n < nCells; n++)
if (mask[n]==1)
cellDepth[n] = grid.getCellDepth(n);
return convert::numpy_array(cellDepth);
}
}
void python::common::export_EclipseGrid(py::module& module) {
py::class_< EclipseGrid >( module, "EclipseGrid")
.def( "_getXYZ", &getXYZ )
.def_property_readonly("nx", &EclipseGrid::getNX)
.def_property_readonly("ny", &EclipseGrid::getNY)
.def_property_readonly("nz", &EclipseGrid::getNZ)
.def_property_readonly( "nactive", &getNumActive )
.def_property_readonly( "cartesianSize", &getCartesianSize )
.def( "globalIndex", &getGlobalIndex )
.def( "getIJK", &getIJK )
.def( "getCellVolume", &cellVolume1G)
.def( "getCellVolume", &cellVolume3)
.def( "getCellVolume", &cellVolumeAll)
.def( "getCellVolume", &cellVolumeMask)
.def( "getCellDepth", &cellDepth1G)
.def( "getCellDepth", &cellDepth3)
.def( "getCellDepth", &cellDepthAll)
.def( "getCellDepth", &cellDepthMask)
;
}

View File

@@ -1,395 +0,0 @@
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include <pybind11/numpy.h>
#include <pybind11/chrono.h>
#include <opm/io/eclipse/EclFile.hpp>
#include <opm/io/eclipse/EclIOdata.hpp>
#include <opm/io/eclipse/ERst.hpp>
#include <opm/io/eclipse/ESmry.hpp>
#include <opm/io/eclipse/EGrid.hpp>
#include <opm/io/eclipse/ERft.hpp>
#include <opm/io/eclipse/EclOutput.hpp>
#include <opm/common/utility/TimeService.hpp>
#include <opm/common/utility/numeric/calculateCellVol.hpp>
#include "export.hpp"
#include "converters.hpp"
namespace py = pybind11;
namespace {
using npArray = std::tuple<py::array, Opm::EclIO::eclArrType>;
using EclEntry = std::tuple<std::string, Opm::EclIO::eclArrType, int64_t>;
class EclOutputBind {
public:
EclOutputBind(const std::string& filename,const bool formatted, const bool append)
{
if (append == true)
m_output = std::make_unique<Opm::EclIO::EclOutput>(filename, formatted, std::ios::app);
else
m_output = std::make_unique<Opm::EclIO::EclOutput>(filename, formatted, std::ios::out);
}
template<class T>
void writeArray(const std::string& name, const std::vector<T>& data){
m_output->write<T>(name, data);
m_output->flushStream();
}
void writeMessage(const std::string& name)
{
m_output->message(name);
m_output->flushStream();
}
private:
std::unique_ptr<Opm::EclIO::EclOutput> m_output;
};
npArray get_vector_index(Opm::EclIO::EclFile * file_ptr, std::size_t array_index)
{
auto array_type = std::get<1>(file_ptr->getList()[array_index]);
if (array_type == Opm::EclIO::INTE)
return std::make_tuple (convert::numpy_array( file_ptr->get<int>(array_index)), array_type);
if (array_type == Opm::EclIO::REAL)
return std::make_tuple (convert::numpy_array( file_ptr->get<float>(array_index)), array_type);
if (array_type == Opm::EclIO::DOUB)
return std::make_tuple (convert::numpy_array( file_ptr->get<double>(array_index)), array_type);
if (array_type == Opm::EclIO::LOGI)
return std::make_tuple (convert::numpy_array( file_ptr->get<bool>(array_index)), array_type);
if (array_type == Opm::EclIO::CHAR)
return std::make_tuple (convert::numpy_string_array( file_ptr->get<std::string>(array_index)), array_type);
throw std::logic_error("Data type not supported");
}
size_t get_array_index(const std::vector<EclEntry>& array_list, const std::string& array_name, size_t occurence)
{
size_t cidx = 0;
auto it = std::find_if(array_list.begin(), array_list.end(),
[&cidx, &array_name, occurence](const EclEntry& entry)
{
if (std::get<0>(entry) == array_name)
++cidx;
return cidx == occurence + 1;
});
return std::distance(array_list.begin(), it);
}
npArray get_vector_name(Opm::EclIO::EclFile * file_ptr, const std::string& array_name)
{
if (file_ptr->hasKey(array_name) == false)
throw std::logic_error("Array " + array_name + " not found in EclFile");
auto array_list = file_ptr->getList();
size_t array_index = get_array_index(array_list, array_name, 0);
return get_vector_index(file_ptr, array_index);
}
npArray get_vector_occurrence(Opm::EclIO::EclFile * file_ptr, const std::string& array_name, size_t occurrence)
{
if (occurrence >= file_ptr->count(array_name) )
throw std::logic_error("Occurrence " + std::to_string(occurrence) + " not found in EclFile");
auto array_list = file_ptr->getList();
size_t array_index = get_array_index(array_list, array_name, occurrence);
return get_vector_index(file_ptr, array_index);
}
bool erst_contains(Opm::EclIO::ERst * file_ptr, std::tuple<std::string, int> keyword)
{
bool hasKeyAtReport = file_ptr->count(std::get<0>(keyword), std::get<1>(keyword)) > 0 ? true : false;
return hasKeyAtReport;
}
npArray get_erst_by_index(Opm::EclIO::ERst * file_ptr, size_t index, size_t rstep)
{
auto arrList = file_ptr->listOfRstArrays(rstep);
if (index >=arrList.size())
throw std::out_of_range("Array index out of range. ");
auto array_type = std::get<1>(arrList[index]);
if (array_type == Opm::EclIO::INTE)
return std::make_tuple (convert::numpy_array( file_ptr->getRst<int>(index, rstep)), array_type);
if (array_type == Opm::EclIO::REAL)
return std::make_tuple (convert::numpy_array( file_ptr->getRst<float>(index, rstep)), array_type);
if (array_type == Opm::EclIO::DOUB)
return std::make_tuple (convert::numpy_array( file_ptr->getRst<double>(index, rstep)), array_type);
if (array_type == Opm::EclIO::LOGI)
return std::make_tuple (convert::numpy_array( file_ptr->getRst<bool>(index, rstep)), array_type);
if (array_type == Opm::EclIO::CHAR)
return std::make_tuple (convert::numpy_string_array( file_ptr->getRst<std::string>(index, rstep)), array_type);
throw std::logic_error("Data type not supported");
}
npArray get_erst_vector(Opm::EclIO::ERst * file_ptr, const std::string& key, size_t rstep, size_t occurrence)
{
if (occurrence >= static_cast<size_t>(file_ptr->count(key, rstep)))
throw std::out_of_range("file have less than " + std::to_string(occurrence + 1) + " arrays in selected report step");
auto array_list = file_ptr->listOfRstArrays(rstep);
size_t array_index = get_array_index(array_list, key, 0);
return get_erst_by_index(file_ptr, array_index, rstep);
}
py::array get_smry_vector(Opm::EclIO::ESmry * file_ptr, const std::string& key)
{
return convert::numpy_array( file_ptr->get(key) );
}
py::array get_smry_vector_at_rsteps(Opm::EclIO::ESmry * file_ptr, const std::string& key)
{
return convert::numpy_array( file_ptr->get_at_rstep(key) );
}
std::tuple<std::array<double,8>, std::array<double,8>, std::array<double,8>>
get_xyz_from_ijk(Opm::EclIO::EGrid * file_ptr,int i, int j, int k)
{
std::array<double,8> X = {0.0};
std::array<double,8> Y = {0.0};
std::array<double,8> Z = {0.0};
std::array<int, 3> ijk = {i, j, k };
file_ptr->getCellCorners(ijk, X, Y, Z);
return std::make_tuple( X, Y, Z);
}
std::tuple<std::array<double,8>, std::array<double,8>, std::array<double,8>>
get_xyz_from_active_index(Opm::EclIO::EGrid * file_ptr, int actIndex)
{
std::array<int, 3> ijk = file_ptr->ijk_from_active_index(actIndex);
return get_xyz_from_ijk(file_ptr,ijk[0], ijk[1], ijk[2]);
}
py::array get_cellvolumes_mask(Opm::EclIO::EGrid * file_ptr, std::vector<int> mask)
{
size_t totCells = static_cast<size_t>(file_ptr->totalNumberOfCells());
std::vector<double> celvol(totCells, 0.0);
if (totCells != mask.size())
throw std::logic_error("size of input mask doesn't match size of grid");
std::array<double,8> X = {0.0};
std::array<double,8> Y = {0.0};
std::array<double,8> Z = {0.0};
for (size_t globInd = 0; globInd < totCells; globInd++){
if (mask[globInd] > 0){
file_ptr->getCellCorners(globInd, X, Y, Z);
celvol[globInd] = calculateCellVol(X, Y, Z);
}
}
return convert::numpy_array( celvol );
}
py::array get_cellvolumes(Opm::EclIO::EGrid * file_ptr)
{
int totCells = file_ptr->totalNumberOfCells();
std::vector<int> mask(totCells, 1);
return get_cellvolumes_mask(file_ptr, mask);
}
npArray get_rft_vector_WellDate(Opm::EclIO::ERft * file_ptr,const std::string& name,
const std::string& well, int y, int m, int d)
{
auto arrList = file_ptr->listOfRftArrays(well, y, m, d);
size_t array_index = get_array_index(arrList, name, 0);
Opm::EclIO::eclArrType array_type = std::get<1>(arrList[array_index]);
if (array_type == Opm::EclIO::INTE)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<int>(name, well, y, m, d) ), array_type);
if (array_type == Opm::EclIO::REAL)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<float>(name, well, y, m, d) ), array_type);
if (array_type == Opm::EclIO::DOUB)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<double>(name, well, y, m, d) ), array_type);
if (array_type == Opm::EclIO::CHAR)
return std::make_tuple (convert::numpy_string_array( file_ptr->getRft<std::string>(name, well, y, m, d) ), array_type);
if (array_type == Opm::EclIO::LOGI)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<bool>(name, well, y, m, d) ), array_type);
throw std::logic_error("Data type not supported");
}
npArray get_rft_vector_Index(Opm::EclIO::ERft * file_ptr,const std::string& name, int reportIndex)
{
auto arrList = file_ptr->listOfRftArrays(reportIndex);
size_t array_index = get_array_index(arrList, name, 0);
Opm::EclIO::eclArrType array_type = std::get<1>(arrList[array_index]);
if (array_type == Opm::EclIO::INTE)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<int>(name, reportIndex) ), array_type);
if (array_type == Opm::EclIO::REAL)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<float>(name, reportIndex) ), array_type);
if (array_type == Opm::EclIO::DOUB)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<double>(name, reportIndex) ), array_type);
if (array_type == Opm::EclIO::CHAR)
return std::make_tuple (convert::numpy_string_array( file_ptr->getRft<std::string>(name, reportIndex) ), array_type);
if (array_type == Opm::EclIO::LOGI)
return std::make_tuple (convert::numpy_array( file_ptr->getRft<bool>(name, reportIndex) ), array_type);
throw std::logic_error("Data type not supported");
}
/*
This insane time based trickery is to address the following situation:
1. OPM uses UTC times internally - so the ESmry::startdate() method will
return a timepoint which should be interpreted in UTC.
2. The pybind11 std::chrono <-> datetime mapping uses localtime. We therefor
convert the timepoint returned from UTC to localtime before proceeding to
the pybind11 conversion.
*/
std::chrono::system_clock::time_point esmry_start_date(const Opm::EclIO::ESmry * esmry) {
auto utc_chrono = esmry->startdate();
auto utc_time_t = std::chrono::system_clock::to_time_t( utc_chrono );
auto utc_ts = Opm::TimeStampUTC( utc_time_t );
auto local_time_t = Opm::asLocalTimeT( utc_ts );
return std::chrono::system_clock::from_time_t( local_time_t );
}
}
void python::common::export_IO(py::module& m) {
py::enum_<Opm::EclIO::eclArrType>(m, "eclArrType", py::arithmetic())
.value("INTE", Opm::EclIO::INTE)
.value("REAL", Opm::EclIO::REAL)
.value("DOUB", Opm::EclIO::DOUB)
.value("CHAR", Opm::EclIO::CHAR)
.value("LOGI", Opm::EclIO::LOGI)
.value("MESS", Opm::EclIO::MESS)
.export_values();
py::class_<Opm::EclIO::EclFile>(m, "EclFile")
.def(py::init<const std::string &, bool>(), py::arg("filename"), py::arg("preload") = false)
.def("__get_list_of_arrays", &Opm::EclIO::EclFile::getList)
.def("__contains__", &Opm::EclIO::EclFile::hasKey)
.def("__len__", &Opm::EclIO::EclFile::size)
.def("count", &Opm::EclIO::EclFile::count)
.def("__get_data", &get_vector_index)
.def("__get_data", &get_vector_name)
.def("__get_data", &get_vector_occurrence);
py::class_<Opm::EclIO::ERst>(m, "ERst")
.def(py::init<const std::string &>())
.def("__has_report_step", &Opm::EclIO::ERst::hasReportStepNumber)
.def("load_report_step", &Opm::EclIO::ERst::loadReportStepNumber)
.def_property_readonly("report_steps", &Opm::EclIO::ERst::listOfReportStepNumbers)
.def("__len__", &Opm::EclIO::ERst::numberOfReportSteps)
.def("count", &Opm::EclIO::ERst::count)
.def("__contains", &erst_contains)
.def("__get_list_of_arrays", &Opm::EclIO::ERst::listOfRstArrays)
.def("__get_data", &get_erst_by_index)
.def("__get_data", &get_erst_vector);
py::class_<Opm::EclIO::ESmry>(m, "ESmry")
.def(py::init<const std::string &, const bool>(), py::arg("filename"), py::arg("load_base_run") = false)
.def("__contains__", &Opm::EclIO::ESmry::hasKey)
.def("__len__", &Opm::EclIO::ESmry::numberOfTimeSteps)
.def("__get_all", &get_smry_vector)
.def("__get_at_rstep", &get_smry_vector_at_rsteps)
.def_property_readonly("start_date", &esmry_start_date)
.def("keys", (const std::vector<std::string>& (Opm::EclIO::ESmry::*) (void) const)
&Opm::EclIO::ESmry::keywordList)
.def("keys", (std::vector<std::string> (Opm::EclIO::ESmry::*) (const std::string&) const)
&Opm::EclIO::ESmry::keywordList);
py::class_<Opm::EclIO::EGrid>(m, "EGrid")
.def(py::init<const std::string &>())
.def_property_readonly("active_cells", &Opm::EclIO::EGrid::activeCells)
.def_property_readonly("dimension", &Opm::EclIO::EGrid::dimension)
.def("ijk_from_global_index", &Opm::EclIO::EGrid::ijk_from_global_index)
.def("ijk_from_active_index", &Opm::EclIO::EGrid::ijk_from_active_index)
.def("active_index", &Opm::EclIO::EGrid::active_index)
.def("global_index", &Opm::EclIO::EGrid::global_index)
.def("xyz_from_ijk", &get_xyz_from_ijk)
.def("xyz_from_active_index", &get_xyz_from_active_index)
.def("cellvolumes", &get_cellvolumes)
.def("cellvolumes", &get_cellvolumes_mask);
py::class_<Opm::EclIO::ERft>(m, "ERft")
.def(py::init<const std::string &>())
.def("__get_list_of_rfts", &Opm::EclIO::ERft::listOfRftReports)
.def("__get_list_of_arrays", (std::vector< std::tuple<std::string, Opm::EclIO::eclArrType, int64_t> >
(Opm::EclIO::ERft::*)(int) const) &Opm::EclIO::ERft::listOfRftArrays)
.def("__get_list_of_arrays", (std::vector< std::tuple<std::string, Opm::EclIO::eclArrType, int64_t> >
(Opm::EclIO::ERft::*)(const std::string&, int, int, int) const)
&Opm::EclIO::ERft::listOfRftArrays)
.def("__get_data", &get_rft_vector_WellDate)
.def("__get_data", &get_rft_vector_Index)
.def("__has_rft", (bool (Opm::EclIO::ERft::*)(const std::string&, int, int, int) const) &Opm::EclIO::ERft::hasRft)
.def("__has_array", (bool (Opm::EclIO::ERft::*)(const std::string&, int) const) &Opm::EclIO::ERft::hasArray)
.def("__has_array", (bool (Opm::EclIO::ERft::*)(const std::string&, const std::string&, const
std::tuple<int,int,int>&) const) &Opm::EclIO::ERft::hasArray)
.def("__len__", &Opm::EclIO::ERft::numberOfReports);
py::class_<EclOutputBind>(m, "EclOutput")
.def(py::init<const std::string &, const bool, const bool>(), py::arg("filename"),
py::arg("formatted") = false, py::arg("append") = false)
.def("write_message", &EclOutputBind::writeMessage)
.def("__write_char_array", (void (EclOutputBind::*)(const std::string&,
const std::vector<std::string>&)) &EclOutputBind::writeArray)
.def("__write_logi_array", (void (EclOutputBind::*)(const std::string&,
const std::vector<bool>&)) &EclOutputBind::writeArray)
.def("__write_inte_array", (void (EclOutputBind::*)(const std::string&,
const std::vector<int>&)) &EclOutputBind::writeArray)
.def("__write_real_array", (void (EclOutputBind::*)(const std::string&,
const std::vector<float>&)) &EclOutputBind::writeArray)
.def("__write_doub_array", (void (EclOutputBind::*)(const std::string&,
const std::vector<double>&)) &EclOutputBind::writeArray);
}

View File

@@ -1,111 +0,0 @@
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FaultCollection.hpp>
#include "export.hpp"
namespace {
py::list getNNC( const EclipseState& state ) {
py::list l;
for( const auto& x : state.getInputNNC().data() )
l.append( py::make_tuple( x.cell1, x.cell2, x.trans ) );
return l;
}
py::list faultNames( const EclipseState& state ) {
py::list l;
const auto& fc = state.getFaults();
for (size_t i = 0; i < fc.size(); i++) {
const auto& f = fc.getFault(i);
l.append(f.getName());
}
return l;
}
py::dict jfunc( const EclipseState& s) {
const auto& tm = s.getTableManager();
if (!tm.useJFunc())
return py::dict();
const auto& j = tm.getJFunc();
std::string flag = "BOTH";
std::string dir = "XY";
if (j.flag() == JFunc::Flag::WATER)
flag = "WATER";
else if (j.flag() == JFunc::Flag::GAS)
flag = "GAS";
if (j.direction() == JFunc::Direction::X)
dir = "X";
else if (j.direction() == JFunc::Direction::Y)
dir = "Y";
else if (j.direction() == JFunc::Direction::Z)
dir = "Z";
py::dict ret;
ret["FLAG"] = flag;
ret["DIRECTION"] = dir;
ret["ALPHA_FACTOR"] = j.alphaFactor();
ret["BETA_FACTOR"] = j.betaFactor();
if (j.flag() == JFunc::Flag::WATER || j.flag() == JFunc::Flag::BOTH)
ret["OIL_WATER"] = j.owSurfaceTension();
if (j.flag() == JFunc::Flag::GAS || j.flag() == JFunc::Flag::BOTH)
ret["GAS_OIL"] = j.goSurfaceTension();
return ret;
}
const std::string faceDir( FaceDir::DirEnum dir ) {
switch (dir) {
case FaceDir::DirEnum::XPlus: return "X+";
case FaceDir::DirEnum::XMinus: return "X-";
case FaceDir::DirEnum::YPlus: return "Y+";
case FaceDir::DirEnum::YMinus: return "Y-";
case FaceDir::DirEnum::ZPlus: return "Z+";
case FaceDir::DirEnum::ZMinus: return "Z-";
}
return "Unknown direction";
}
py::list faultFaces( const EclipseState& state, const std::string& name ) {
py::list l;
const auto& gr = state.getInputGrid(); // used for global -> IJK
const auto& fc = state.getFaults();
const Fault& f = fc.getFault(name);
for (const auto& ff : f) {
// for each fault face
for (size_t g : ff) {
// for global index g in ff
const auto ijk = gr.getIJK(g);
l.append(py::make_tuple(ijk[0], ijk[1], ijk[2], faceDir(ff.getDir())));
}
}
return l;
}
const FieldPropsManager& get_field_props(const EclipseState& state) {
return state.fieldProps();
}
}
void python::common::export_EclipseState(py::module& module) {
py::class_< EclipseState >( module, "EclipseState" )
.def(py::init<const Deck&>())
.def_property_readonly( "title", &EclipseState::getTitle )
.def( "field_props", &get_field_props, ref_internal)
.def( "grid", &EclipseState::getInputGrid, ref_internal)
.def( "config", &EclipseState::cfg, ref_internal)
.def( "tables", &EclipseState::getTableManager, ref_internal)
.def( "has_input_nnc", &EclipseState::hasInputNNC )
.def( "simulation", &EclipseState::getSimulationConfig, ref_internal)
.def( "input_nnc", &getNNC )
.def( "faultNames", &faultNames )
.def( "faultFaces", &faultFaces )
.def( "jfunc", &jfunc )
;
}

View File

@@ -1,28 +0,0 @@
#include <pybind11/pybind11.h>
#include "export.hpp"
void python::common::export_all(py::module& module) {
export_ParseContext(module);
export_Parser(module);
export_Deck(module);
export_DeckKeyword(module);
export_Schedule(module);
export_Well(module);
export_Group(module);
export_Connection(module);
export_EclipseConfig(module);
export_FieldProperties(module);
export_EclipseState(module);
export_TableManager(module);
export_EclipseGrid(module);
export_UnitSystem(module);
export_Log(module);
export_IO(module);
export_SummaryState(module);
}
PYBIND11_MODULE(libopmcommon_python, module) {
python::common::export_all(module);
}

View File

@@ -1,36 +0,0 @@
#ifndef SUNBEAM_HPP
#define SUNBEAM_HPP
#include <pybind11/pybind11.h>
namespace Opm {}
namespace py = pybind11;
using namespace Opm;
const py::return_value_policy ref_internal = py::return_value_policy::reference_internal;
const py::return_value_policy python_owner = py::return_value_policy::take_ownership;
const py::return_value_policy move = py::return_value_policy::move;
namespace python::common {
void export_all(py::module& module);
void export_UnitSystem(py::module& module);
void export_Connection(py::module& module);
void export_Deck(py::module& module);
void export_DeckKeyword(py::module& module);
void export_FieldProperties(py::module& module);
void export_EclipseConfig(py::module& module);
void export_EclipseGrid(py::module& module);
void export_EclipseState(py::module& module);
void export_Group(py::module& module);
void export_ParseContext(py::module& module);
void export_Parser(py::module& module);
void export_Schedule(py::module& module);
void export_TableManager(py::module& module);
void export_Well(py::module& module);
void export_Log(py::module& module);
void export_IO(py::module& module);
void export_SummaryState(py::module& module);
}
#endif //SUNBEAM_HPP

View File

@@ -1,59 +0,0 @@
#include <string>
#include <opm/parser/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
#include <pybind11/stl.h>
#include "export.hpp"
#include "converters.hpp"
namespace {
bool contains( const FieldPropsManager& manager, const std::string& kw) {
if (manager.has_int(kw))
return true;
if (manager.has_double(kw))
return true;
return false;
}
py::array_t<double> get_double_array(const FieldPropsManager& m, const std::string& kw) {
if (m.has_double(kw))
return convert::numpy_array( m.get_double(kw) );
else
throw std::invalid_argument("Keyword '" + kw + "'is not of type double.");
}
py::array_t<int> get_int_array(const FieldPropsManager& m, const std::string& kw) {
if (m.has_int(kw))
return convert::numpy_array( m.get_int(kw) );
else
throw std::invalid_argument("Keyword '" + kw + "'is not of type int.");
}
py::array get_array(const FieldPropsManager& m, const std::string& kw) {
if (m.has_double(kw))
return convert::numpy_array(m.get_double(kw));
if (m.has_int(kw))
return convert::numpy_array(m.get_int(kw));
throw std::invalid_argument("No such keyword: " + kw);
}
}
void python::common::export_FieldProperties(py::module& module) {
py::class_< FieldPropsManager >( module, "FieldProperties")
.def( "__contains__", &contains )
.def("__getitem__", &get_array)
.def( "get_double_array", &get_double_array )
.def( "get_int_array", &get_int_array )
;
}

View File

@@ -1,25 +0,0 @@
#include <opm/parser/eclipse/EclipseState/Schedule/Group/Group.hpp>
#include <pybind11/stl.h>
#include "export.hpp"
namespace {
const std::vector<std::string> wellnames( const Group& g ) {
return g.wells( );
}
int get_vfp_table_nr( const Group& g ) {
return g.getGroupNetVFPTable();
}
}
void python::common::export_Group(py::module& module) {
py::class_< Group >( module, "Group")
.def_property_readonly( "name", &Group::name)
.def_property_readonly( "num_wells", &Group::numWells)
.def( "_vfp_table_nr", &get_vfp_table_nr )
.def_property_readonly( "well_names", &wellnames );
}

View File

@@ -1,49 +0,0 @@
#include <string>
#include <opm/common/OpmLog/OpmLog.hpp>
#include "export.hpp"
namespace {
void info(const std::string& msg) {
OpmLog::info(msg);
}
void warning(const std::string& msg) {
OpmLog::warning(msg);
}
void error(const std::string& msg) {
OpmLog::error(msg);
}
void problem(const std::string& msg) {
OpmLog::problem(msg);
}
void bug(const std::string& msg) {
OpmLog::bug(msg);
}
void debug(const std::string& msg) {
OpmLog::debug(msg);
}
void note(const std::string& msg) {
OpmLog::note(msg);
}
}
void python::common::export_Log(py::module& module)
{
py::class_<OpmLog>(module, "OpmLog")
.def_static("info", info )
.def_static("warning", warning)
.def_static("error", error)
.def_static("problem", problem)
.def_static("bug", bug)
.def_static("debug", debug)
.def_static("note", note);
}

View File

@@ -1,26 +0,0 @@
#include <opm/parser/eclipse/Parser/ParseContext.hpp>
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <pybind11/stl.h>
#include "export.hpp"
namespace {
void (ParseContext::*ctx_update)(const std::string&, InputError::Action) = &ParseContext::update;
}
void python::common::export_ParseContext(py::module& module) {
py::class_< ParseContext >(module, "ParseContext" )
.def(py::init<>())
.def(py::init<const std::vector<std::pair<std::string, InputError::Action>>>())
.def( "update", ctx_update );
py::enum_< InputError::Action >( module, "action" )
.value( "throw", InputError::Action::THROW_EXCEPTION )
.value( "warn", InputError::Action::WARN )
.value( "ignore", InputError::Action::IGNORE );
}

View File

@@ -1,63 +0,0 @@
#include <string>
#include <exception>
#include <opm/json/JsonObject.hpp>
#include <opm/parser/eclipse/Parser/Parser.hpp>
#include <opm/parser/eclipse/Parser/ParserKeyword.hpp>
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <pybind11/stl.h>
#include <opm/parser/eclipse/Parser/ErrorGuard.hpp>
#include "export.hpp"
namespace {
Deck create_deck( const std::string& deckStr,
const ParseContext& pc,
const Parser& parser) {
Opm::ErrorGuard guard;
auto p = parser.parseFile( deckStr, pc, guard );
guard.clear();
return p;
}
Deck create_deck_string( const std::string& deckStr,
const ParseContext& pc,
const Parser& parser) {
Opm::ErrorGuard guard;
auto p = parser.parseString( deckStr, pc, guard );
guard.clear();
return p;
}
void add_keyword(Parser* parser, const std::string& json_string) {
const Json::JsonObject keyword(json_string);
parser->addParserKeyword(keyword);
}
}
void python::common::export_Parser(py::module& module) {
module.def( "create_deck", &create_deck );
module.def( "create_deck_string", &create_deck_string);
py::class_<ParserKeyword>(module, "ParserKeyword")
.def_property_readonly("name", &ParserKeyword::getName);
py::class_<Parser>(module, "Parser")
.def(py::init<>())
.def("parse", py::overload_cast<const std::string&>(&Parser::parseFile, py::const_))
.def("parse" , py::overload_cast<const std::string&, const ParseContext&>(&Parser::parseFile, py::const_))
.def("parse_string", py::overload_cast<const std::string&>(&Parser::parseString, py::const_))
.def("parse_string", py::overload_cast<const std::string&, const ParseContext&>(&Parser::parseString, py::const_))
.def("add_keyword", add_keyword)
.def("__getitem__", &Parser::getKeyword, ref_internal);
}

View File

@@ -1,115 +0,0 @@
#include <ctime>
#include <chrono>
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp>
#include <pybind11/stl.h>
#include <pybind11/chrono.h>
#include "export.hpp"
namespace {
using system_clock = std::chrono::system_clock;
/*
timezones - the stuff that make you wonder why didn't do social science in
university. The situation here is as follows:
1. In the C++ code Eclipse style string literals like "20. NOV 2017" are
converted to time_t values using the utc based function timegm() which
does not take timezones into account.
2. Here we use the function gmtime( ) to convert back from a time_t value
to a broken down struct tm representation.
3. The broken down representation is then converted to a time_t value
using the timezone aware function mktime().
4. The time_t value is converted to a std::chrono::system_clock value.
Finally std::chrono::system_clock value is automatically converted to a
python datetime object as part of the pybind11 process. This latter
conversion *is* timezone aware, that is the reason we must go through
these hoops.
*/
system_clock::time_point datetime( std::time_t utc_time) {
struct tm utc_tm;
time_t local_time;
gmtime_r(&utc_time, &utc_tm);
local_time = mktime(&utc_tm);
return system_clock::from_time_t(local_time);
}
const Well& get_well( const Schedule& sch, const std::string& name, const size_t& timestep ) try {
return sch.getWell( name, timestep );
} catch( const std::invalid_argument& e ) {
throw py::key_error( name );
}
system_clock::time_point get_start_time( const Schedule& s ) {
return datetime(s.posixStartTime());
}
system_clock::time_point get_end_time( const Schedule& s ) {
return datetime(s.posixEndTime());
}
std::vector<system_clock::time_point> get_timesteps( const Schedule& s ) {
const auto& tm = s.getTimeMap();
std::vector< system_clock::time_point > v;
v.reserve( tm.size() );
for( size_t i = 0; i < tm.size(); ++i )
v.push_back( datetime( tm[ i ] ));
return v;
}
std::vector<Group> get_groups( const Schedule& sch, size_t timestep ) {
std::vector< Group > groups;
for( const auto& group_name : sch.groupNames())
groups.push_back( sch.getGroup(group_name, timestep) );
return groups;
}
bool has_well( const Schedule& sch, const std::string& wellName) {
return sch.hasWell( wellName );
}
const RestartConfig& restart(const Schedule& sch) {
return sch.restart();
}
}
void python::common::export_Schedule(py::module& module) {
py::class_< Schedule >( module, "Schedule")
.def(py::init<const Deck&, const EclipseState& >())
.def("_groups", &get_groups )
.def_property_readonly( "start", &get_start_time )
.def_property_readonly( "end", &get_end_time )
.def_property_readonly( "timesteps", &get_timesteps )
.def_property_readonly("restart", &restart)
.def( "shut_well", &Schedule::shut_well)
.def( "open_well", &Schedule::open_well)
.def( "stop_well", &Schedule::stop_well)
.def( "get_wells", &Schedule::getWells)
.def( "get_well", &get_well)
.def( "__contains__", &has_well )
.def( "group", &Schedule::getGroup, ref_internal);
py::class_< RestartConfig >( module, "RestartConfig")
.def( "getKeyword", &RestartConfig::getKeyword )
.def( "getFirstRestartStep", &RestartConfig::getFirstRestartStep )
.def( "getWriteRestartFile", &RestartConfig::getWriteRestartFile, py::arg("reportStep"), py::arg("log") = true);
}

View File

@@ -1,58 +0,0 @@
/*
Copyright 2019 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/>.
*/
#include <chrono>
#include <opm/parser/eclipse/EclipseState/Schedule/SummaryState.hpp>
#include <pybind11/stl.h>
#include <pybind11/chrono.h>
#include "export.hpp"
namespace {
std::vector<std::string> groups(const SummaryState * st) {
return st->groups();
}
std::vector<std::string> wells(const SummaryState * st) {
return st->wells();
}
}
void python::common::export_SummaryState(py::module& module) {
py::class_<SummaryState>(module, "SummaryState")
.def(py::init<std::chrono::system_clock::time_point>())
.def("update", &SummaryState::update)
.def("update_well_var", &SummaryState::update_well_var)
.def("update_group_var", &SummaryState::update_group_var)
.def("well_var", &SummaryState::get_well_var)
.def("group_var", &SummaryState::get_group_var)
.def("elapsed", &SummaryState::get_elapsed)
.def_property_readonly("groups", groups)
.def_property_readonly("wells", wells)
.def("__contains__", &SummaryState::has)
.def("has_well_var", &SummaryState::has_well_var)
.def("has_group_var", &SummaryState::has_group_var)
.def("__getitem__", &SummaryState::get);
}

View File

@@ -1,24 +0,0 @@
#include <opm/parser/eclipse/EclipseState/Tables/TableManager.hpp>
#include "export.hpp"
namespace {
double eval( const TableManager& tab, std::string tab_name, int tab_idx, std::string col_name, double x ) {
try {
return tab[tab_name].getTable(tab_idx).evaluate(col_name, x);
} catch( std::invalid_argument& e ) {
throw py::key_error( e.what() );
}
}
}
void python::common::export_TableManager(py::module& module) {
py::class_< TableManager >( module, "Tables")
.def( "__contains__", &TableManager::hasTables )
.def("evaluate", &eval);
}

View File

@@ -1,10 +0,0 @@
#include <opm/parser/eclipse/Units/UnitSystem.hpp>
#include "export.hpp"
void python::common::export_UnitSystem(py::module& module)
{
py::class_<UnitSystem>(module, "UnitSystem")
.def_property_readonly( "name", &UnitSystem::getName );
}

View File

@@ -1,49 +0,0 @@
#include <tuple>
#include <opm/parser/eclipse/EclipseState/Schedule/Well/Well.hpp>
#include <pybind11/stl.h>
#include "export.hpp"
namespace {
std::vector<Connection> connections( const Well& w ) {
const auto& well_connections = w.getConnections();
return std::vector<Connection>(well_connections.begin(), well_connections.end());
}
std::string status( const Well& w ) {
return Well::Status2String( w.getStatus() );
}
std::string preferred_phase( const Well& w ) {
switch( w.getPreferredPhase() ) {
case Phase::OIL: return "OIL";
case Phase::GAS: return "GAS";
case Phase::WATER: return "WATER";
default: throw std::logic_error( "Unhandled enum value" );
}
}
std::tuple<int, int, double> get_pos( const Well& w ) {
return std::make_tuple(w.getHeadI(), w.getHeadJ(), w.getRefDepth());
}
}
void python::common::export_Well(py::module& module) {
py::class_< Well >( module, "Well")
.def_property_readonly( "name", &Well::name )
.def_property_readonly( "preferred_phase", &preferred_phase )
.def( "pos", &get_pos )
.def( "status", &status )
.def( "isdefined", &Well::hasBeenDefined )
.def( "isinjector", &Well::isInjector )
.def( "isproducer", &Well::isProducer )
.def( "group", &Well::groupName )
.def( "guide_rate", &Well::getGuideRate )
.def( "available_gctrl", &Well::isAvailableForGroupControl )
.def( "connections", &connections );
}

View File

@@ -1,5 +0,0 @@
#!/bin/bash
export PYTHONPATH=@PROJECT_BINARY_DIR@/python/python:$PYTHONPATH
export LD_LIBRARY_PATH=@_setup_lib_dirs@:$LD_LIBRARY_PATH

View File

@@ -1,69 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
MULTFLT
'E_01' 0.01 /
'E_01_F3' 0.01 /
'DE_1' 3.9 /
'DE_1_LTo' 0.01 /
'DE_B3' 0.00075 /
'DE_2' 0.015 /
'DE_0' 20 /
'BC' 0.1 /
'CD' 0.1 /
'CD_To' 0.01 /
'CD_B3' 0.1 /
'CD_0' 1 /
'CD_1' 0.1 /
'C_01' 0.01 /
'C_01_Ti' 0.01 /
'C_08' 0.01 /
'C_08_Ile' 0.1 /
'C_08_S' 0.01 /
'C_08_Ti' 1 /
'C_08_S_Ti' 1 /
'C_09' 0.1 /
'C_02' 0.01 /
'C_04' 0.05 /
'C_05' 0.1 /
'C_06' 0.1 /
'C_10' 0.01 /
'C_12' 0.1 /
'C_20' 0.5 /
'C_20_LTo' 0.5 /
'C_21' 0.001 /
'C_21_Ti' 0.001 /
'C_22' 0.001 /
'C_23' 0.1 /
'C_24' 0.1 /
'C_25' 0.1 /
'C_26' 0.1 /
'C_26N' 0.001 /
'C_27' 0.05 /
'C_28' 1.0 /
'C_29' 0.1 /
'DI' 0.1 /
'DI_S' 0.1 /
'D_05' 0.01 /
'EF' 1.0 /
'GH' 1.0 /
'G_01' 0.05 / matand 0.05
'G_02' 0.05 /
'G_03' 1 / matand 0.05
'G_05' 0.5 /
'G_07' 0.05 / matand 0.05
'G_08' 0.05 /
'G_09' 0.05 /
'G_13' 0.05 /
'H_03' 1.0 /
'IH' 1.0 /
'm_east' 1.0 /
'm_east_2' 1.0 /
'm_north' 1.0 /
'm_northe' 1.0 /
'm_west' 1.0 /
/

View File

@@ -1,42 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- Oil grad. 0.0706 bar/m
-- Gas grad. 0.0186 bar/m
-- Water grad. 0.1001 bar/m
--Inneholder new revised contacts as of January 12, 2001
--NB! GOC hevet til 2573.0 (fra 2580) for bedre fase og trykk match i historiefasen
--RSVD tabell No 5 er tilpasset denne endringen
EQUIL
-- Datum P woc Pc goc Pc Rsvd Rvvd
2582.0 268.56 2692.0 0.0 2582.0 0.0 1 0 0 / C+D: Garn
2500.0 263.41 2585.5 0.0 2500.0 0.0 2 0 0 / G: Garn
2582.0 269.46 2618.0 0.0 2582.0 0.0 3 0 0 / E: Garn
2200.0 236.92 2400.0 0.0 2200.0 0.0 4 0 0 / G: Ile-Tilje
2585.0 268.77 2693.3 0.0 2585.0 0.0 5 0 0 / C+D+E: Ile-Tilje
RSVD
2582.0 120.25
2597.0 110.00
2660.7 106.77
2697.0 106.77 /
2500 94.5000
2510.0 94.3
2590.0 94.1 /
2582.0 120.25
2597.0 110.00
2660.7 106.77
2697.0 106.77 /
2500 94.5000
2510.0 94.3
2590.0 94.1 /
2585.9 120.29
2599.9 110.00
2663.6 106.77
2699.9 106.77 /

View File

@@ -1,43 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
EQUALS
-- FIPs based on geological layers
FIPGL 1 1 46 1 112 1 3 / Garn
FIPGL 2 1 46 1 112 4 4 / Not
FIPGL 3 1 46 1 112 5 5 / Ile 2.2
FIPGL 4 1 46 1 112 6 8 / Ile 2.1
FIPGL 5 1 46 1 112 9 11 / Ile 1
FIPGL 6 1 46 1 112 12 12 / Tofte 2.2
FIPGL 7 1 46 1 112 13 15 / Tofte 2.1
FIPGL 8 1 46 1 112 16 18 / Tofte 1
FIPGL 9 1 46 1 112 19 22 / Tilje
-- FIPs based on numerical layers
FIPNL 1 1 46 1 112 1 1 / Garn 3
FIPNL 2 1 46 1 112 2 2 / Garn 2
FIPNL 3 1 46 1 112 3 3 / Garn 1w
FIPNL 4 1 46 1 112 4 4 / Not
FIPNL 5 1 46 1 112 5 5 / Ile 2.2
FIPNL 6 1 46 1 112 6 6 / Ile 2.1.3
FIPNL 7 1 46 1 112 7 7 / Ile 2.1.2
FIPNL 8 1 46 1 112 8 8 / Ile 2.1.1
FIPNL 9 1 46 1 112 9 9 / Ile 1.3
FIPNL 10 1 46 1 112 10 10 / Ile 1.2
FIPNL 11 1 46 1 112 11 11 / Ile 1.1
FIPNL 12 1 46 1 112 12 12 / Tofte 2.2
FIPNL 13 1 46 1 112 13 13 / Tofte 2.1.3
FIPNL 14 1 46 1 112 14 14 / Tofte 2.1.2
FIPNL 15 1 46 1 112 15 15 / Tofte 2.1.1
FIPNL 16 1 46 1 112 16 16 / Tofte 1.2.2
FIPNL 17 1 46 1 112 17 17 / Tofte 1.2.1
FIPNL 18 1 46 1 112 18 18 / Tofte 1.1
FIPNL 19 1 46 1 112 19 19 / Tilje 4
FIPNL 20 1 46 1 112 20 20 / Tilje 3
FIPNL 21 1 46 1 112 21 21 / Tilje 2
FIPNL 22 1 46 1 112 22 22 / Tilje 1
/

View File

@@ -1,237 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- # the programm Xmultregt expects the upper part of the symmetric matrix
-- # off diagonal elements modify transmissibilities between different segments,
-- # diagonal elements correspond to the same segment and will also modify the transmissibilities within the region
-- # this holds also for the small matrices, i.e. they shouild be symmetrical and diagonal elemnts
-- # correspond to the same segment
-- # Garn | Ile | Tofte | Tilje_4/3 | Tilje_1/2 | Formation
-- # C D E G | C D E G | C D E G | C D E G | C D E G | Segment
-- # 1 2 3 4 | 5 6 7 8 | 9 10 11 12 | 13 14 15 16 | 17 18 19 20 | Fluxnum
-- #--------------------|---------------|----------------|----------------- |--------------------------------------------------
-- FLUX 1 1 1 0.005| 0 0 0 0 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 #| 1 C Garn
-- FLUX 1 1 1 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 #| 2 D
-- FLUX 1 1 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 #| 3 E
-- FLUX 1 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 | 0 0 0 0 #| 4 G
-- #--------------------|---------------|----------------|------------------|--------------------------------------------------
-- FLUX | 1 1 1 0.01| 1 1 1 1 | 0.1 0.1 0.1 0.01| 0 0 0 0 #| 5 C Ile
-- FLUX 1 0.05 1 | 1 1 1 1 | 0.1 1 0.1 0.1 | 0 0 0 0 #| 6 D
-- FLUX 1 1 | 1 1 1 1 | 0.1 0.1 0.1 0.1 | 0 0 0 0 #| 7 E
-- FLUX 1 | 1 1 1 1 | 0.1 0.1 0.1 0.1 | 0 0 0 0 #| 8 G
-- #------------------------------------|----------------|----------------- |--------------------------------------------------
-- FLUX | 1 1 1 0.01| 1 1 1 1 | 0.001 0 0 0 #| 9 C Tofte
-- FLUX 1 1 1 | 1 1 1 1 | 0 1 0 0 #| 10 D
-- FLUX 1 1 | 1 1 1 1 | 0 0 0.001 0 #| 11 E
-- FLUX 1 | 1 1 1 1 | 0 0 0 1 #| 12 G
-- #-----------------------------------------------------|----------------- |--------------------------------------------------
-- FLUX | 1 1 1 0.01| 0.0008 0 0 0 #| 13 C Tilje_4/3
-- FLUX 1 1 1 | 0 0.1 0->e-6 0 #| 14 D
-- FLUX 1 1 | 0 0 0.05 0 #| 15 E
-- FLUX 1 | 0 0 0 0.001 #| 16 G
-- #----------------------------------------------------------------------- |--------------------------------------------------
-- FLUX | 1 1 1 0.1 #| 17 C Tilje_1/2
-- FLUX 1 1 1 #| 18 D
-- FLUX 1 1 #| 19 E
-- FLUX 1 #| 20 G
-- #
--
-- Now comes the real data
--
MULTREGT
2 1 1.0000000000 2* F/
3 1 1.0000000000 2* F/
3 2 1.0000000000 2* F/
4 1 0.0050000000 2* F/
4 2 1.0000000000 2* F/
4 3 1.0000000000 2* F/
5 1 0.0000000000 2* F/
5 2 0.0000000000 2* F/
5 3 0.0000000000 2* F/
5 4 0.0000000000 2* F/
6 1 0.0000000000 2* F/
6 2 0.0000000000 2* F/
6 3 0.0000000000 2* F/
6 4 0.0000000000 2* F/
6 5 1.0000000000 2* F/
7 1 0.0000000000 2* F/
7 2 0.0000000000 2* F/
7 3 0.0000000000 2* F/
7 4 0.0000000000 2* F/
7 5 1.0000000000 2* F/
7 6 0.0500000000 2* F/
8 1 0.0000000000 2* F/
8 2 0.0000000000 2* F/
8 3 0.0000000000 2* F/
8 4 0.0000000000 2* F/
8 5 0.0100000000 2* F/
8 6 1.0000000000 2* F/
8 7 1.0000000000 2* F/
9 1 0.0000000000 2* F/
9 2 0.0000000000 2* F/
9 3 0.0000000000 2* F/
9 4 0.0000000000 2* F/
9 5 1.0000000000 2* F/
9 6 1.0000000000 2* F/
9 7 1.0000000000 2* F/
9 8 1.0000000000 2* F/
10 1 0.0000000000 2* F/
10 2 0.0000000000 2* F/
10 3 0.0000000000 2* F/
10 4 0.0000000000 2* F/
10 5 1.0000000000 2* F/
10 6 1.0000000000 2* F/
10 7 1.0000000000 2* F/
10 8 1.0000000000 2* F/
10 9 1.0000000000 2* F/
11 1 0.0000000000 2* F/
11 2 0.0000000000 2* F/
11 3 0.0000000000 2* F/
11 4 0.0000000000 2* F/
11 5 1.0000000000 2* F/
11 6 1.0000000000 2* F/
11 7 1.0000000000 2* F/
11 8 1.0000000000 2* F/
11 9 1.0000000000 2* F/
11 10 1.0000000000 2* F/
12 1 0.0000000000 2* F/
12 2 0.0000000000 2* F/
12 3 0.0000000000 2* F/
12 4 0.0000000000 2* F/
12 5 1.0000000000 2* F/
12 6 1.0000000000 2* F/
12 7 1.0000000000 2* F/
12 8 1.0000000000 2* F/
12 9 0.0100000000 2* F/
12 10 1.0000000000 2* F/
12 11 1.0000000000 2* F/
13 1 0.0000000000 2* F/
13 2 0.0000000000 2* F/
13 3 0.0000000000 2* F/
13 4 0.0000000000 2* F/
13 5 0.1000000000 2* F/
13 6 0.1000000000 2* F/
13 7 0.1000000000 2* F/
13 8 0.1000000000 2* F/
13 9 1.0000000000 2* F/
13 10 1.0000000000 2* F/
13 11 1.0000000000 2* F/
13 12 1.0000000000 2* F/
14 1 0.0000000000 2* F/
14 2 0.0000000000 2* F/
14 3 0.0000000000 2* F/
14 4 0.0000000000 2* F/
14 5 0.1000000000 2* F/
14 6 1.0000000000 2* F/
14 7 0.1000000000 2* F/
14 8 0.1000000000 2* F/
14 9 1.0000000000 2* F/
14 10 100.0000000000 2* F/
14 11 1.0000000000 2* F/
14 12 1.0000000000 2* F/
14 13 1.0000000000 2* F/
15 1 0.0000000000 2* F/
15 2 0.0000000000 2* F/
15 3 0.0000000000 2* F/
15 4 0.0000000000 2* F/
15 5 0.1000000000 2* F/
15 6 0.1000000000 2* F/
15 7 0.1000000000 2* F/
15 8 0.1000000000 2* F/
15 9 1.0000000000 2* F/
15 10 1.0000000000 2* F/
15 11 1.0000000000 2* F/
15 12 1.0000000000 2* F/
15 13 1.0000000000 2* F/
15 14 1.0000000000 2* F/
16 1 0.0000000000 2* F/
16 2 0.0000000000 2* F/
16 3 0.0000000000 2* F/
16 4 0.0000000000 2* F/
16 5 0.0100000000 2* F/
16 6 0.1000000000 2* F/
16 7 0.1000000000 2* F/
16 8 0.1000000000 2* F/
16 9 1.0000000000 2* F/
16 10 1.0000000000 2* F/
16 11 1.0000000000 2* F/
16 12 1.0000000000 2* F/
16 13 0.0100000000 2* F/
16 14 1.0000000000 2* F/
16 15 1.0000000000 2* F/
17 1 0.0000000000 2* F/
17 2 0.0000000000 2* F/
17 3 0.0000000000 2* F/
17 4 0.0000000000 2* F/
17 5 0.0000000000 2* F/
17 6 0.0000000000 2* F/
17 7 0.0000000000 2* F/
17 8 0.0000000000 2* F/
17 9 0.0010000000 2* F/
17 10 0.0000000000 2* F/
17 11 0.0000000000 2* F/
17 12 0.0000000000 2* F/
17 13 0.0008000000 2* F/
17 14 0.0000000000 2* F/
17 15 0.0000000000 2* F/
17 16 0.0000000000 2* F/
18 1 0.0000000000 2* F/
18 2 0.0000000000 2* F/
18 3 0.0000000000 2* F/
18 4 0.0000000000 2* F/
18 5 0.0000000000 2* F/
18 6 0.0000000000 2* F/
18 7 0.0000000000 2* F/
18 8 0.0000000000 2* F/
18 9 0.0000000000 2* F/
18 10 1.0000000000 2* F/
18 11 0.0000000000 2* F/
18 12 0.0000000000 2* F/
18 13 0.0000000000 2* F/
18 14 0.1000000000 2* F/
18 15 0.0000000000 2* F/
18 16 0.0000000000 2* F/
18 17 1.0000000000 2* F/
19 1 0.0000000000 2* F/
19 2 0.0000000000 2* F/
19 3 0.0000000000 2* F/
19 4 0.0000000000 2* F/
19 5 0.0000000000 2* F/
19 6 0.0000000000 2* F/
19 7 0.0000000000 2* F/
19 8 0.0000000000 2* F/
19 9 0.0000000000 2* F/
19 10 0.0000000000 2* F/
19 11 0.0010000000 2* F/
19 12 0.0000000000 2* F/
19 13 0.0000000000 2* F/
19 14 0.0000001 2* F/
19 15 0.0500000000 2* F/
19 16 0.0000000000 2* F/
19 17 1.0000000000 2* F/
19 18 1.0000000000 2* F/
20 1 0.0000000000 2* F/
20 2 0.0000000000 2* F/
20 3 0.0000000000 2* F/
20 4 0.0000000000 2* F/
20 5 0.0000000000 2* F/
20 6 0.0000000000 2* F/
20 7 0.0000000000 2* F/
20 8 0.0000000000 2* F/
20 9 0.0000000000 2* F/
20 10 0.0000000000 2* F/
20 11 0.0000000000 2* F/
20 12 1.0000000000 2* F/
20 13 0.0000000000 2* F/
20 14 0.0000000000 2* F/
20 15 0.0000000000 2* F/
20 16 0.0010000000 2* F/
20 17 0.1000000000 2* F/
20 18 1.0000000000 2* F/
20 19 1.0000000000 2* F/
/
--jolly good show: you generated 400 MULTREGT multipliers in no time!!!

View File

@@ -1,83 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- Layer 8
EQUALS
-- 'MULTZ' 0.005 6 18 1 30 8 8 /
'MULTZ' 0.02 6 13 30 50 8 8 /
/
-- MZ layer 10
EQUALS
'MULTZ' 0.005 6 14 11 18 10 10 / C-3H
'MULTZ' 0.03 14 29 11 25 10 10 / C south east
'MULTZ' 0.05 14 25 26 30 10 10 / C-segm mid/B-2H
'MULTZ' 0.25 6 29 11 37 10 10 / C-segm middle
'MULTZ' 0.5 17 17 42 54 10 10 / C north west
'MULTZ' 0.5 6 12 38 39 10 10 / C north west
'MULTZ' 0.5 8 12 40 40 10 10 / C north west
'MULTZ' 0.5 10 12 41 43 10 10 / C north west
'MULTZ' 0.5 18 33 38 54 10 10 / C1, D4 & D3
'MULTZ' 0.5 6 13 44 52 10 10 / B-4AH
'MULTZ' 0.01 13 13 48 59 10 10 / D-segm mid (B-4BH)
'MULTZ' 0.01 14 14 49 59 10 10 / D-segm mid (B-4BH)
'MULTZ' 0.01 15 16 51 59 10 10 / D-segm mid (B-4BH)
'MULTZ' 0.05 17 19 55 99 10 10 / E1
'MULTZ' 0.05 14 14 60 62 10 10 / E1
'MULTZ' 0.05 15 15 60 65 10 10 / E1
'MULTZ' 0.05 16 16 60 69 10 10 / E1
'MULTZ' 0.005 6 9 52 60 10 10 / F-3H/E-2H
'MULTZ' 0.005 9 9 53 57 10 10 / F-3H/E-2H
'MULTZ' 0.005 10 10 54 58 10 10 / F-3H/E-2H
'MULTZ' 0.005 11 11 55 58 10 10 / F-3H/E-2H
/
-- MZ layer 15
EQUALS
'MULTZ' 0.00003 6 29 11 21 15 15 / C south
'MULTZ' 0.00005 6 29 22 39 15 15 / C middle
'MULTZ' 0.000001 19 29 39 49 15 15 / C-1H
'MULTZ' 1.0 19 29 38 45 17 17 / C-1H
'MULTZ' 0.005 16 19 48 61 15 15 / E-1H/D-3H
'MULTZ' 0.0008 8 18 40 40 15 15 / C north
'MULTZ' 0.0008 9 18 41 41 15 15 /
'MULTZ' 0.0008 10 18 42 43 15 15 /
'MULTZ' 0.0008 11 18 44 44 15 15 /
'MULTZ' 0.0008 12 18 45 45 15 15 /
'MULTZ' 0.0008 13 18 46 47 15 15 /
'MULTZ' 0.0008 14 15 48 48 15 15 /
'MULTZ' 0.0008 15 15 49 50 15 15 /
'MULTZ' 0.01 12 12 46 56 15 15 / D-segm
'MULTZ' 0.01 13 13 48 59 15 15 / D-segm
'MULTZ' 0.01 14 14 49 62 15 15 / D-segm
'MULTZ' 0.01 15 15 51 65 15 15 / D-segm
'MULTZ' 0.01 16 19 62 69 15 15 / D-segm
'MULTZ' 0.01 17 19 70 99 15 15 / D-segm
MULTZ 0.0035 6 7 40 60 15 15 / D, E west
MULTZ 0.0035 8 8 41 60 15 15 /
MULTZ 0.0035 9 9 42 52 15 15 /
MULTZ 0.0035 10 10 44 49 15 15 /
/
-- D-1H water
EQUALS
'MULTZ' 1.0 22 24 21 22 11 11 /
'MULTZ' 0.1 21 25 17 19 15 15 /
'MULTZ' 1.0 22 24 17 19 17 17 /
'MULTZ' 1.0 22 24 15 17 18 18 /
/
-- B-1 & B-3 water
EQUALS
'MULTZ' 0.1 12 13 34 35 15 15 /
/
-- RFT D_-H
EQUALS
'MULTZ' 0.1 16 19 47 53 18 18 / D-3H
/

View File

@@ -1,52 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
PIMULTAB
-- The following is the reviewed model in Aug-2006, low-high case
-- a=0.25, b=0.1;
-- PIMULT=(1-a)/exp(fw/b)+a
0.000 1.0000
0.025 0.8341
0.050 0.7049
0.075 0.6043
0.100 0.5259
0.125 0.4649
0.150 0.4173
0.175 0.3803
0.200 0.3515
0.225 0.3290
0.250 0.3116
0.275 0.2979
0.300 0.2873
0.325 0.2791
0.350 0.2726
0.375 0.2676
0.400 0.2637
0.425 0.2607
0.450 0.2583
0.475 0.2565
0.500 0.2551
0.525 0.2539
0.550 0.2531
0.575 0.2524
0.600 0.2519
0.625 0.2514
0.650 0.2511
0.675 0.2509
0.700 0.2507
0.725 0.2505
0.750 0.2504
0.775 0.2503
0.800 0.2503
0.825 0.2502
0.850 0.2502
0.875 0.2501
0.900 0.2501
0.925 0.2501
0.950 0.2501
0.975 0.2500
1.000 0.2500 /

View File

@@ -1,554 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
PVTG
-- PRESSURE RSG B-GAS VISCOSITY
-- BAR (CP)
50.00 0.00000497 0.024958 0.01441
0.00000248 0.024958 0.01440
0.00000000 0.024958 0.01440 /
70.00 0.00000521 0.017639 0.01491
0.00000261 0.017641 0.01490
0.00000000 0.017643 0.01490 /
90.00 0.00000627 0.013608 0.01547
0.00000313 0.013611 0.01546
0.00000000 0.013615 0.01544 /
110.00 0.00000798 0.011072 0.01609
0.00000399 0.011076 0.01607
0.00000000 0.011081 0.01605 /
130.00 0.00001041 0.009340 0.01677
0.00000520 0.009346 0.01674
0.00000000 0.009352 0.01671 /
150.00 0.00001365 0.008092 0.01752
0.00000683 0.008099 0.01748
0.00000000 0.008106 0.01743 /
170.00 0.00001786 0.007156 0.01834
0.00000893 0.007164 0.01827
0.00000000 0.007172 0.01819 /
190.00 0.00002316 0.006433 0.01923
0.00001158 0.006442 0.01912
0.00000000 0.006451 0.01900 /
210.00 0.00002972 0.005861 0.02019
0.00001486 0.005871 0.02001
0.00000000 0.005881 0.01984 /
230.00 0.00003767 0.005402 0.02121
0.00001883 0.005412 0.02095
0.00000000 0.005422 0.02071 /
250.80 0.00004756 0.005013 0.02234
0.00002378 0.005022 0.02197
0.00000000 0.005032 0.02162 /
268.42 0.00005757 0.004737 0.02335
0.00002878 0.004746 0.02287
0.00000000 0.004754 0.02240 /
285.33 0.00006853 0.004511 0.02438
0.00003427 0.004518 0.02375
0.00000000 0.004525 0.02315 /
301.59 0.00008041 0.004323 0.02542
0.00004020 0.004327 0.02463
0.00000000 0.004332 0.02387 /
317.23 0.00009313 0.004165 0.02648
0.00004657 0.004166 0.02549
0.00000000 0.004169 0.02456 /
332.29 0.00010668 0.004031 0.02755
0.00005334 0.004029 0.02634
0.00000000 0.004028 0.02522 /
346.80 0.00012100 0.003917 0.02863
0.00006050 0.003911 0.02719
0.00000000 0.003906 0.02585 /
360.80 0.00013607 0.003819 0.02974
0.00006803 0.003808 0.02803
0.00000000 0.003799 0.02645 /
374.31 0.00015188 0.003735 0.03087
0.00007594 0.003718 0.02887
0.00000000 0.003705 0.02703 /
387.36 0.00016843 0.003662 0.03202
0.00008421 0.003639 0.02970
0.00000000 0.003621 0.02758 /
399.99 0.00018571 0.003598 0.03320
0.00009286 0.003570 0.03053
0.00000000 0.003545 0.02810 /
412.21 0.00020375 0.003543 0.03442
0.00010188 0.003508 0.03137
0.00000000 0.003477 0.02861 /
424.05 0.00022256 0.003496 0.03566
0.00011128 0.003453 0.03220
0.00000000 0.003416 0.02909 /
435.53 0.00024218 0.003454 0.03695
0.00012109 0.003404 0.03305
0.00000000 0.003360 0.02956 /
446.68 0.00026266 0.003419 0.03828
0.00013133 0.003360 0.03390
0.00000000 0.003309 0.03000 /
457.51 0.00028404 0.003388 0.03967
0.00014202 0.003320 0.03477
0.00000000 0.003262 0.03043 /
468.04 0.00030639 0.003362 0.04110
0.00015319 0.003285 0.03566
0.00000000 0.003218 0.03085 /
478.30 0.00032980 0.003341 0.04261
0.00016490 0.003253 0.03656
0.00000000 0.003178 0.03125 /
488.30 0.00035436 0.003323 0.04418
0.00017718 0.003225 0.03749
0.00000000 0.003140 0.03164 /
498.06 0.00038020 0.003310 0.04583
0.00019010 0.003200 0.03845
0.00000000 0.003105 0.03202 /
507.59 0.00040745 0.003300 0.04758
0.00020373 0.003178 0.03944
0.00000000 0.003073 0.03238 /
516.92 0.00043630 0.003293 0.04943
0.00021815 0.003158 0.04048
0.00000000 0.003042 0.03273 /
526.06 0.00046694 0.003290 0.05141
0.00023347 0.003141 0.04156
0.00000000 0.003013 0.03308 /
535.02 0.00049963 0.003291 0.05353
0.00024981 0.003126 0.04271
0.00000000 0.002986 0.03342 /
543.83 0.00053469 0.003295 0.05582
0.00026734 0.003114 0.04393
0.00000000 0.002960 0.03374 /
552.49 0.00057251 0.003303 0.05830
0.00028625 0.003105 0.04523
0.00000000 0.002935 0.03407 /
561.04 0.00061359 0.003315 0.06103
0.00030679 0.003098 0.04664
0.00000000 0.002912 0.03438 /
569.48 0.00065855 0.003332 0.06405
0.00032928 0.003093 0.04818
0.00000000 0.002890 0.03469 /
577.82 0.00070820 0.003354 0.06744
0.00035410 0.003092 0.04988
0.00000000 0.002868 0.03500 /
586.09 0.00076355 0.003382 0.07127
0.00038178 0.003094 0.05178
0.00000000 0.002847 0.03530 /
594.29 0.00082592 0.003418 0.07567
0.00041296 0.003099 0.05394
0.00000000 0.002828 0.03560 /
/
-- PVT region 2 --
80.00 0.00000485 0.015151 0.01506
0.00000242 0.015154 0.01505
0.00000000 0.015157 0.01504 /
100.00 0.00000621 0.012032 0.01566
0.00000310 0.012036 0.01564
0.00000000 0.012040 0.01563 /
120.00 0.00000821 0.009980 0.01632
0.00000411 0.009985 0.01630
0.00000000 0.009990 0.01628 /
140.00 0.00001096 0.008537 0.01706
0.00000548 0.008544 0.01702
0.00000000 0.008550 0.01698 /
160.00 0.00001457 0.007476 0.01786
0.00000728 0.007484 0.01780
0.00000000 0.007492 0.01774 /
180.00 0.00001918 0.006669 0.01873
0.00000959 0.006678 0.01864
0.00000000 0.006687 0.01854 /
200.00 0.00002493 0.006038 0.01967
0.00001247 0.006048 0.01952
0.00000000 0.006058 0.01939 /
216.50 0.00003061 0.005616 0.02049
0.00001530 0.005626 0.02029
0.00000000 0.005636 0.02010 /
/
PVTO
-- RSO PRESSURE B-OIL VISCOSITY
-- (BAR) (CP)
20.59 50.00 1.10615 1.180
75.00 1.10164 1.247
100.00 1.09744 1.315
125.00 1.09351 1.384
150.00 1.08984 1.453 /
28.19 70.00 1.12522 1.066
95.00 1.12047 1.124
120.00 1.11604 1.182
145.00 1.11191 1.241
170.00 1.10804 1.300 /
36.01 90.00 1.14458 0.964
115.00 1.13959 1.014
140.00 1.13494 1.064
165.00 1.13060 1.115
190.00 1.12653 1.166 /
44.09 110.00 1.16437 0.880
135.00 1.15915 0.924
160.00 1.15428 0.968
185.00 1.14973 1.012
210.00 1.14547 1.056 /
52.46 130.00 1.18467 0.805
155.00 1.17921 0.843
180.00 1.17413 0.882
205.00 1.16937 0.920
230.00 1.16491 0.959 /
61.13 150.00 1.20555 0.746
175.00 1.19985 0.780
200.00 1.19454 0.814
225.00 1.18958 0.849
250.00 1.18492 0.883 /
70.14 170.00 1.22704 0.698
195.00 1.22111 0.729
220.00 1.21558 0.759
245.00 1.21040 0.790
270.00 1.20555 0.821 /
79.50 190.00 1.24922 0.658
215.00 1.24305 0.686
240.00 1.23729 0.714
265.00 1.23190 0.742
290.00 1.22685 0.770 /
89.24 210.00 1.27214 0.637
235.00 1.26573 0.664
260.00 1.25974 0.693
285.00 1.25414 0.725
310.00 1.24888 0.760 /
99.39 230.00 1.29586 0.622
255.00 1.28921 0.641
280.00 1.28300 0.661
305.00 1.27718 0.680
330.00 1.27171 0.699 /
110.41 250.80 1.32148 0.610
275.80 1.31457 0.628
300.80 1.30812 0.647
325.80 1.30207 0.665
350.80 1.29638 0.682 /
120.32 268.42 1.34449 0.576
293.42 1.33735 0.593
318.42 1.33068 0.609
343.42 1.32442 0.626
368.42 1.31853 0.642 /
130.23 285.33 1.36737 0.5335
310.33 1.36001 0.5487
335.33 1.35313 0.5638
360.33 1.34667 0.5787
385.33 1.34059 0.5934 /
140.12 301.59 1.39015 0.4956
326.59 1.38257 0.5094
351.59 1.37548 0.5230
376.59 1.36882 0.5365
401.59 1.36255 0.5498 /
150.01 317.23 1.41282 0.4614
342.23 1.40503 0.4739
367.23 1.39773 0.4863
392.23 1.39088 0.4986
417.23 1.38443 0.5107 /
159.89 332.29 1.43539 0.43042
357.29 1.42739 0.44183
382.29 1.41990 0.45312
407.29 1.41286 0.46430
432.29 1.40622 0.47537 /
169.76 346.80 1.45788 0.41191
371.80 1.44967 0.42260
396.80 1.44198 0.43318
421.80 1.43475 0.44365
446.80 1.42794 0.45402 /
179.63 360.80 1.48028 0.39503
385.80 1.47187 0.40508
410.80 1.46398 0.41502
435.80 1.45657 0.42487
460.80 1.44958 0.43461 /
189.48 374.31 1.50260 0.37959
399.31 1.49399 0.38907
424.31 1.48591 0.39845
449.31 1.47832 0.40773
474.31 1.47116 0.41692 /
199.34 387.36 1.52484 0.36543
412.36 1.51603 0.37439
437.36 1.50777 0.38326
462.36 1.50000 0.39203
487.36 1.49267 0.40072 /
209.18 399.99 1.54700 0.35239
424.99 1.53800 0.36089
449.99 1.52956 0.36929
474.99 1.52161 0.37762
499.99 1.51411 0.38585 /
219.02 412.21 1.56910 0.34035
437.21 1.55991 0.34843
462.21 1.55128 0.35642
487.21 1.54316 0.36433
512.21 1.53549 0.37216 /
228.85 424.05 1.59112 0.32921
449.05 1.58174 0.33691
474.05 1.57294 0.34453
499.05 1.56464 0.35206
524.05 1.55681 0.35952 /
238.67 435.53 1.61307 0.31888
460.53 1.60351 0.32623
485.53 1.59453 0.33350
510.53 1.58606 0.34070
535.53 1.57807 0.34782 /
248.48 446.68 1.63496 0.30927
471.68 1.62522 0.31630
496.68 1.61606 0.32326
521.68 1.60743 0.33014
546.68 1.59927 0.33695 /
258.29 457.51 1.65678 0.30032
482.51 1.64686 0.30706
507.51 1.63753 0.31373
532.51 1.62873 0.32032
557.51 1.62042 0.32685 /
268.09 468.04 1.67853 0.29196
493.04 1.66843 0.29843
518.04 1.65893 0.30483
543.04 1.64997 0.31117
568.04 1.64150 0.31743 /
277.89 478.30 1.70022 0.28414
503.30 1.68994 0.29037
528.30 1.68028 0.29652
553.30 1.67116 0.30261
578.30 1.66253 0.30864 /
287.68 488.30 1.72184 0.27681
513.30 1.71139 0.28281
538.30 1.70156 0.28874
563.30 1.69228 0.29460
588.30 1.68350 0.30040 /
297.46 498.06 1.74339 0.26994
523.06 1.73277 0.27572
548.06 1.72278 0.28144
573.06 1.71334 0.28709
598.06 1.70442 0.29269 /
307.23 507.59 1.76487 0.26347
532.59 1.75409 0.26906
557.59 1.74393 0.27458
582.59 1.73434 0.28004
607.59 1.72527 0.28544 /
317.00 516.92 1.78628 0.25738
541.92 1.77533 0.26279
566.92 1.76502 0.26812
591.92 1.75528 0.27340
616.92 1.74606 0.27863 /
326.76 526.06 1.80761 0.25165
551.06 1.79651 0.25688
576.06 1.78604 0.26204
601.06 1.77615 0.26716
626.06 1.76679 0.27221 /
336.51 535.02 1.82887 0.24623
560.02 1.81761 0.25130
585.02 1.80699 0.25631
610.02 1.79696 0.26126
635.02 1.78746 0.26616 /
346.26 543.83 1.85005 0.24112
568.83 1.83864 0.24603
593.83 1.82787 0.25089
618.83 1.81770 0.25570
643.83 1.80806 0.26045 /
356.00 552.49 1.87115 0.23628
577.49 1.85959 0.24105
602.49 1.84868 0.24577
627.49 1.83836 0.25043
652.49 1.82858 0.25505 /
365.73 561.04 1.89217 0.23170
586.04 1.88046 0.23634
611.04 1.86940 0.24092
636.04 1.85895 0.24546
661.04 1.84904 0.24994 /
375.46 569.48 1.91309 0.22736
594.48 1.90124 0.23187
619.48 1.89004 0.23633
644.48 1.87946 0.24074
669.48 1.86942 0.24510 /
385.18 577.82 1.93391 0.22325
602.82 1.92192 0.22764
627.82 1.91060 0.23198
652.82 1.89988 0.23627
677.82 1.88971 0.24052 /
394.89 586.09 1.95464 0.21934
611.09 1.94252 0.22362
636.09 1.93106 0.22785
661.09 1.92021 0.23204
686.09 1.90993 0.23617 /
404.60 594.29 1.97527 0.21564
619.29 1.96301 0.21981
644.29 1.95143 0.22393
669.29 1.94046 0.22801
694.29 1.93005 0.23204 /
/
-- PVT region 2
32.91 80.00 1.13304 1.04537
114.00 1.12837 1.10009
148.00 1.12401 1.15521
182.00 1.11994 1.21063 /
40.99 100.00 1.15276 0.97219
134.00 1.14786 1.02086
168.00 1.14328 1.06983
202.00 1.13900 1.11901 /
49.36 120.00 1.17297 0.91124
154.00 1.16783 0.95496
188.00 1.16303 0.99891
222.00 1.15854 1.04301 /
58.04 140.00 1.19374 0.85942
174.00 1.18836 0.89902
208.00 1.18334 0.93878
242.00 1.17864 0.97864 /
67.04 160.00 1.21512 0.81456
194.00 1.20951 0.85065
228.00 1.20426 0.88686
262.00 1.19935 0.92313 /
76.39 180.00 1.23718 0.77508
214.00 1.23132 0.80815
248.00 1.22585 0.84130
282.00 1.22073 0.87448 /
86.11 200.00 1.25996 0.73928
234.00 1.25386 0.76989
268.00 1.24816 0.80050
302.00 1.24283 0.83108 /
94.44 216.50 1.27934 0.67686
250.50 1.27304 0.70995
284.50 1.26716 0.74427
318.50 1.26164 0.77857 /
/
-- AVERAGE GAS DENSITY AT STD CONDITIONS = 0.854 KG/M3
-- AVERAGE OIL DENSITY AT STD CONDITIONS = 859.5 KG/M3
---------------------------------------------------------------------
-- ROCK COMPRESSIBILITY
--
-- REF.PRES. COMPR.
ROCK
277.0 4.84E-5 /
277.0 4.84E-5 /
-- ==================================================================
-- PVT PROPERTIES OF WATER
--
-- REF.PRES. REF.FVF. COMPR. REF.VISC. VISCOSIBILITY
-- ==========================================================
PVTW
277.0 1.038 4.67E-5 0.318 0.0 /
277.0 1.038 4.67E-5 0.318 0.0 /
---------------------------------------------------------------------
-- SURFACE DENSITIE OF RESERVOIR FLUIDS
-- OIL WATER GAS
DENSITY
859.5 1033.0 0.854 / Justert 22/7
860.04 1033.0 0.853 / Justert 22/7
--------------------------------------------------------------------
--
-- End of file --------
--
--------------------------------------------------------------------

View File

@@ -1,106 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
SWOF
-- Sw Krw Kro Pc
0.000000 0.000000 1.00000 3.75633
0.0001 0.000000 0.999 3.75632
0.0500000 0.000860000 0.847820 1.86981
0.100000 0.00263000 0.697460 1.23731
0.150000 0.00524000 0.557170 0.91821
0.200000 0.00877000 0.432860 0.72451
0.250000 0.0133800 0.327570 0.59341
0.300000 0.0192700 0.241770 0.49811
0.350000 0.0267200 0.174150 0.42511
0.400000 0.0360800 0.122370 0.36691
0.450000 0.0478100 0.0837400 0.31911
0.500000 0.0625000 0.0556500 0.27881
0.550000 0.0809000 0.0357200 0.24401
0.600000 0.103940 0.0219900 0.21351
0.650000 0.132770 0.0128400 0.18631
0.700000 0.168690 0.00699000 0.16161
0.750000 0.213020 0.00346000 0.13901
0.800000 0.266670 0.00149000 0.11801
0.850000 0.329180 0.000510000 0.09831
0.900000 0.397060 0.000120000 0.07961
0.950000 0.461030 0.00001 0.06161
1.00000 0.500000 0.000000 0.04408
/
0.000000 0.000000 1.00000 3.75633
0.0001 0.000000 0.999 3.75632
0.0500000 0.000860000 0.847820 1.86981
0.100000 0.00263000 0.697460 1.23731
0.150000 0.00524000 0.557170 0.91821
0.200000 0.00877000 0.432860 0.72451
0.250000 0.0133800 0.327570 0.59341
0.300000 0.0192700 0.241770 0.49811
0.350000 0.0267200 0.174150 0.42511
0.400000 0.0360800 0.122370 0.36691
0.450000 0.0478100 0.0837400 0.31911
0.500000 0.0625000 0.0556500 0.27881
0.550000 0.0809000 0.0357200 0.24401
0.600000 0.103940 0.0219900 0.21351
0.650000 0.132770 0.0128400 0.18631
0.700000 0.168690 0.00699000 0.16161
0.750000 0.213020 0.00346000 0.13901
0.800000 0.266670 0.00149000 0.11801
0.850000 0.329180 0.000510000 0.09831
0.900000 0.397060 0.000120000 0.07961
0.950000 0.461030 0.00001 0.06161
1.00000 0.500000 0.000000 0.04408
/
SGOF
--#NAME? Krg Kro Pc
0.000000 0.000000 1.00000 0.000000
0.0500000 0.00165500 0.806888 0.000000
0.100000 0.00691300 0.633562 0.000000
0.150000 0.0162130 0.485506 0.000000
0.200000 0.0299900 0.364043 0.000000
0.250000 0.0486550 0.267589 0.000000
0.300000 0.0725730 0.192992 0.000000
0.350000 0.102046 0.136554 0.000000
0.400000 0.137287 0.0946710 0.000000
0.450000 0.178402 0.0641510 0.000000
0.500000 0.225368 0.0423240 0.000000
0.550000 0.278030 0.0270350 0.000000
0.600000 0.336093 0.0165860 0.000000
0.650000 0.399135 0.00966200 0.000000
0.700000 0.466631 0.00525400 0.000000
0.750000 0.538000 0.00259700 0.000000
0.800000 0.612665 0.00111700 0.000000
0.850000 0.690169 0.000384000 0.000000
0.900000 0.770395 0.000088 0.000000
0.950000 0.854218 0.000007 0.000000
0.9999 0.9499 0.000000 0.000000
1.00000 0.950000 0.000000 0.000000
/
0.000000 0.000000 1.00000 0.000000
0.0500000 0.00165500 0.806888 0.000000
0.100000 0.00691300 0.633562 0.000000
0.150000 0.0162130 0.485506 0.000000
0.200000 0.0299900 0.364043 0.000000
0.250000 0.0486550 0.267589 0.000000
0.300000 0.0725730 0.192992 0.000000
0.350000 0.102046 0.136554 0.000000
0.400000 0.137287 0.0946710 0.000000
0.450000 0.178402 0.0641510 0.000000
0.500000 0.225368 0.0423240 0.000000
0.550000 0.278030 0.0270350 0.000000
0.600000 0.336093 0.0165860 0.000000
0.650000 0.399135 0.00966200 0.000000
0.700000 0.466631 0.00525400 0.000000
0.750000 0.538000 0.00259700 0.000000
0.800000 0.612665 0.00111700 0.000000
0.850000 0.690169 0.000384000 0.000000
0.900000 0.770395 0.000088 0.000000
0.950000 0.854218 0.000007 0.000000
0.9999 0.9499 0.000000 0.000000
1.00000 0.950000 0.000000 0.000000
/

View File

@@ -1,153 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
WSTAT
/
WMCTL
/
GMCTP
/
GMCTW
/
GMCTG
/
FOE
GVPR
/
WVPR
/
GVPT
/
WVPT
/
GVIR
/
WVIR
/
GVIT
/
WVIT
/
ROE
/
GWIT
/
GGIT
/
GPRW
/ Node pressure for water injection manifolds.
ROIP_GL
/
ROIP_NL
/
RPR__GL
/
RPR__NL
/
ROPR_GL
/
ROPT_GL
/
ROPR_NL
/
ROPT_NL
/
RGPR_GL
/
RGPT_GL
/
RGPR_NL
/
RGPT_NL
/
RWPR_GL
/
RWPT_GL
/
RWPR_NL
/
RWPT_NL
/
RWIR_GL
/
RWIT_GL
/
RWIR_NL
/
RWIT_NL
/
WWIR
'F-4AH'
/
WWIT
'F-4AH'
/
WBHP
'F-4AH'
/
WTHP
'F-4AH'
/
WWIR
'I50' 'I51' 'I52' 'I55_K4'
/
WWIT
'I50' 'I51' 'I52' 'I55_K4'
/
WBHP
'I50' 'I51' 'I52' 'I55_K4'
/
WTHP
'I50' 'I51' 'I52' 'I55_K4'
/

View File

@@ -1,41 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
RGIR
1 /
RGPR
1 /
RGIPG
1 /
RGIPL
1 /
RGIT
1 /
RGPT
1 /
RWIR
1 /
RWPR
1 /
RWPT
1 /
RWIP
1 /
ROPR
1 /
ROIR
1 /
ROIT
1 /
ROIPG
1 /
ROIPL
1 /
ROPT
1 /

View File

@@ -1,234 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- Summary file for the base case, short version --
DATE
PERFORMA
--
-- Field Data
-- Production Rates
FVPR
FWPR
FWPRH
FOPR
FOPRH
FGPR
FGPRH
FLPR
FLPRH
FGSR
FGCR
--FTPRSEA
-- Injection Rates
FVIR
FWIR
FWIRH
FGIR
FGIRH
-- Production Cummulatives
FVPT
FWPT
FOPT
FLPT
FLPTH
FGPT
FOPTH
FGPTH
FWPTH
FGST
FGCT
-- Injection Cummulatives
FVIT
FWIT
FWITH
FGIT
FGITH
-- In place
FWIP
FOIP
FGIP
-- Ratios
FWCT
FWCTH
FGOR
FGORH
-- Pressures
FPR
--BPR
--18 63 25 /
--18 63 26 /
--/
-- Region data
RPR
/
ROPT
/
RGPT
/
RWPT
/
RGFT
/
RWFT
/
ROIP
/
ROP
/
-- Group data --
GPR
/
GOPT
/
GGPT
/
GWPT
/
GOPR
/
GLPR
/
GGPR
/
GWPR
/
GGIR
/
GGIT
/
GWCT
/
GGOR
/
GWIR
/
-- Well Data
-- Production Rates
WWPR
/
WWPRH
/
WOPR
/
WOPRH
/
WGPR
/
WGPRH
/
WLPR
/
WLPRH
/
WLPT
/
WLPTH
/
-- Injection Rates
WWIR
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WWIRH
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WGIR
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WGIRH
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WGIT
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WGIRH
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
-- Production Cummulatives
WWPT
/
WWPTH
/
WOPT
/
WOPTH
/
WGPT
/
WGPTH
/
-- Tracers
--WTPRSEA
--/
--WTPTSEA
--/
-- Injection Cummulatives
WWIT
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
-- Ratios
WWCT
/
WWCTH
/
WGOR
/
WGORH
/
WGORH
/
-- Performance
WBHP
/
WBHPH
/
WTHP
/
WTHPH
/
WPI
/
WBP
/
WBP4
/
-- Water injection per connection
CWIR
'F-1H' /
'F-2H' /
'F-3H' /
'F-4H' /
'C-1H' /
'C-2H' /
'C-3H' /
'C-4H' /
/
CWIT
'F-1H' /
'F-2H' /
'F-3H' /
'F-4H' /
'C-1H' /
'C-2H' /
'C-3H' /
'C-4H' /
/
-- Connection production rates
CGPT
'E-4AH' /
/
CGFR
'E-4AH' /
/
CWFR
'E-2H' /
/

View File

@@ -1,141 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- Summary file for the base case, short version --
--
-- Field Data
-- Production Rates
FTPRSEA
FTPRHTO
FTPRS36
FTPR2FB
FTPR4FB
FTPRDFB
FTPRTFB
-- Production Conc.
FTPCSEA
FTPCHTO
FTPCS36
FTPC2FB
FTPC4FB
FTPCDFB
FTPCTFB
-- Injection Rates
FTIRSEA
FTIRHTO
FTIRS36
FTIR2FB
FTIR4FB
FTIRDFB
FTIRTFB
-- Production Cummulatives
FTPTSEA
FTPTHTO
FTPTS36
FTPT2FB
FTPT4FB
FTPTDFB
FTPTTFB
-- Injection Cummulatives
FTITSEA
FTITHTO
FTITS36
FTIT2FB
FTIT4FB
FTITDFB
FTITTFB
-- Well Data
-- Production Rates
WTPRSEA
/
WTPRHTO
/
WTPRS36
/
WTPR2FB
/
WTPR4FB
/
WTPRDFB
/
WTPRTFB
/
-- Production Concentrations
WTPCSEA
/
WTPCHTO
/
WTPCS36
/
WTPC2FB
/
WTPC4FB
/
WTPCDFB
/
WTPCTFB
/
-- Injection Rates
WTIRSEA
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIRHTO
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIRS36
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIR2FB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIR4FB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIRDFB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIRTFB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
-- Production Cumulatives
WTPTSEA
/
WTPTHTO
/
WTPTS36
/
WTPT2FB
/
WTPT4FB
/
WTPTDFB
/
WTPTTFB
/
-- Injection Cumulatives
WTITSEA
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTITHTO
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTITS36
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIT2FB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTIT4FB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTITDFB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/
WTITTFB
C-1H C-2H C-3H C-4H C-4AH F-1H F-2H F-3H F-4H
/

View File

@@ -1,13 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
WBP5
/
WBP9
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:13
-- Input File : Z:\Project\norne6\prod\gap\WI\C1H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\C1H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : C-1H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 22 Mar 99 15:59
--
--
--
-- Surface Equipment Correlation : Dukler Eaton Flannigan
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 392.3 (m)
-- Last Node : 8 Casing 3043 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
12 2718.07 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 254.51 253.95 252.27 249.83 246.69
242.88 238.42 233.32 227.59 221.22
214.23 206.62 198.38 189.53 180.06
169.97 159.26 147.95 136.00 123.46
/
2 297.02 296.49 294.82 292.39 289.26
285.47 281.01 275.92 270.20 263.84
256.87 249.28 241.05 232.22 222.76
212.70 202.01 190.71 178.79 166.27
/
3 339.54 339.03 337.37 334.95 331.83
328.05 323.60 318.52 312.82 306.47
299.52 291.94 283.73 274.91 265.47
255.43 244.75 233.48 221.58 209.09
/
4 382.06 381.57 379.93 377.51 374.41
370.63 366.19 361.13 355.44 349.10
342.16 334.60 326.40 317.61 308.18
298.16 287.50 276.26 264.37 251.90
/
5 424.58 424.11 422.48 420.08 416.98
413.22 408.78 403.73 398.06 391.73
384.81 377.26 369.08 360.30 350.89
340.89 330.25 319.03 307.16 294.72
/
6 467.10 466.65 465.03 462.64 459.55
455.80 451.37 446.34 440.68 434.36
427.45 419.93 411.75 403.00 393.60
383.62 373.00 361.80 349.96 337.54
/
7 509.62 509.20 507.59 505.21 502.13
498.39 493.97 488.95 483.30 476.99
470.10 462.59 454.43 445.69 436.31
426.35 415.75 404.57 392.75 380.36
/
8 552.14 551.74 550.15 547.77 544.71
540.98 536.56 531.56 525.92 519.62
512.75 505.26 497.11 488.39 479.02
469.09 458.50 447.35 435.55 423.18
/
9 594.67 594.29 592.70 590.34 587.29
583.57 579.16 574.17 568.55 562.25
555.40 547.92 539.79 531.09 521.74
511.82 501.25 490.13 478.34 466.01
/
10 637.19 636.83 635.26 632.91 629.86
626.16 621.76 616.78 611.17 604.89
598.05 590.59 582.47 573.79 564.45
554.56 544.01 532.91 521.14 508.83
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:16
-- Input File : Z:\Project\norne6\prod\gap\WI\C2H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\C2H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : C-2H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 19 Mar 99 12:58
--
--
--
-- Surface Equipment Correlation : Dukler Flannigan
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 392.3 (m)
-- Last Node : 10 Tubing 4015 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
13 2672.2 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 249.49 248.71 246.49 243.27 239.16
234.22 228.46 221.95 214.67 206.64
197.89 188.40 178.21 167.32 155.73
143.45 130.49 116.83 102.51 87.52
/
2 292.00 291.25 289.03 285.82 281.73
276.80 271.06 264.55 257.29 249.27
240.54 231.07 220.90 210.02 198.46
186.19 173.25 159.62 145.32 130.36
/
3 334.50 333.78 331.58 328.38 324.30
319.38 313.65 307.16 299.92 291.91
283.19 273.74 263.58 252.73 241.18
228.93 216.02 202.41 188.13 173.19
/
4 377.01 376.31 374.12 370.94 366.87
361.97 356.24 349.77 342.54 334.54
325.85 316.40 306.27 295.43 283.91
271.67 258.78 245.19 230.93 216.03
/
5 419.52 418.84 416.67 413.50 409.44
404.55 398.83 392.37 385.16 377.18
368.50 359.07 348.95 338.14 326.63
314.42 301.55 287.98 273.74 258.86
/
6 462.03 461.38 459.22 456.05 452.01
447.13 441.43 434.98 427.79 419.82
411.16 401.74 391.64 380.84 369.36
357.16 344.32 330.77 316.55 301.70
/
7 504.55 503.91 501.76 498.62 494.58
489.72 484.02 477.59 470.42 462.45
453.82 444.41 434.33 423.55 412.09
399.91 387.09 373.56 359.36 344.54
/
8 547.06 546.45 544.31 541.18 537.16
532.31 526.62 520.21 513.05 505.09
496.47 487.09 477.02 466.26 454.82
442.66 429.86 416.35 402.18 387.38
/
9 589.57 588.98 586.86 583.74 579.73
574.90 569.22 562.82 555.67 547.74
539.13 529.76 519.71 508.97 497.55
485.41 472.63 459.14 444.99 430.22
/
10 632.09 631.52 629.41 626.30 622.31
617.49 611.81 605.43 598.30 590.38
581.79 572.43 562.40 551.68 540.28
528.16 515.40 501.94 487.80 473.06
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:17
-- Input File : Z:\Project\norne6\prod\gap\WI\C3H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\C3H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : C-3H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 24 Jun 99 14:32
--
--
--
-- Surface Equipment Correlation : Fancher Brown
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 392.3 (m)
-- Last Node : 8 Tubing 3470.5 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
14 2704.29 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 252.89 252.23 250.24 247.33 243.58
239.04 233.71 227.62 220.75 213.14
204.77 195.65 185.79 175.18 163.83
151.73 138.89 125.32 110.99 95.93
/
2 295.40 294.76 292.79 289.89 286.15
281.62 276.30 270.22 263.37 255.77
247.42 238.31 228.47 217.88 206.55
194.47 181.65 168.10 153.80 138.77
/
3 337.91 337.30 335.33 332.44 328.72
324.20 318.90 312.83 305.98 298.40
290.07 280.97 271.15 260.59 249.26
237.22 224.42 210.89 196.61 181.61
/
4 380.42 379.83 377.88 375.00 371.29
366.78 361.49 355.44 348.60 341.04
332.72 323.64 313.84 303.29 291.99
279.96 267.18 253.68 239.42 224.45
/
5 422.94 422.37 420.43 417.56 413.86
409.36 404.09 398.05 391.22 383.67
375.37 366.31 356.53 346.00 334.71
322.70 309.94 296.47 282.23 267.28
/
6 465.45 464.91 462.98 460.13 456.43
451.95 446.68 440.66 433.84 426.31
418.03 408.97 399.21 388.70 377.43
365.45 352.71 339.26 325.04 310.12
/
7 507.97 507.44 505.53 502.69 499.01
494.53 489.28 483.27 476.46 468.94
460.68 451.64 441.90 431.41 420.16
408.20 395.47 382.05 367.86 352.97
/
8 550.48 549.99 548.09 545.25 541.58
537.12 531.88 525.88 519.08 511.58
503.34 494.31 484.59 474.12 462.88
450.95 438.24 424.84 410.67 395.81
/
9 593.00 592.53 590.64 587.82 584.16
579.70 574.48 568.49 561.71 554.22
546.00 536.98 527.28 516.83 505.61
493.70 481.01 467.64 453.49 438.65
/
10 635.52 635.07 633.19 630.38 626.73
622.29 617.08 611.11 604.33 596.86
588.65 579.65 569.97 559.54 548.34
536.45 523.78 510.43 496.31 481.50
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:22
-- Input File : Z:\Project\norne6\prod\gap\WI\C4AH.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\C4AH.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : C-3H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 24 Jun 99 14:32
--
--
--
-- Surface Equipment Correlation : Fancher Brown
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 392.3 (m)
-- Last Node : 11 Tubing 3422.5 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
16 2719.4 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 254.45 253.79 251.81 248.93 245.22
240.72 235.44 229.41 222.62 215.09
206.82 197.80 188.04 177.56 166.33
154.38 141.70 128.27 114.12 99.23
/
2 296.97 296.32 294.36 291.49 287.79
283.30 278.04 272.02 265.24 257.72
249.46 240.47 230.72 220.26 209.05
197.12 184.46 171.06 156.94 142.07
/
3 339.48 338.86 336.91 334.05 330.36
325.88 320.63 314.62 307.85 300.35
292.11 283.13 273.41 262.96 251.77
239.86 227.23 213.84 199.75 184.91
/
4 382.00 381.40 379.46 376.61 372.93
368.46 363.23 357.23 350.47 342.98
334.76 325.80 316.09 305.66 294.49
282.61 270.00 256.63 242.57 227.75
/
5 424.52 423.94 422.02 419.17 415.50
411.04 405.82 399.84 393.09 385.62
377.41 368.47 358.77 348.37 337.21
325.35 312.76 299.42 285.38 270.59
/
6 467.03 466.48 464.57 461.73 458.07
453.63 448.42 442.45 435.71 428.25
420.06 411.14 401.46 391.07 379.93
368.09 355.53 342.21 328.20 313.43
/
7 509.55 509.02 507.12 504.30 500.65
496.21 491.01 485.06 478.33 470.89
462.72 453.81 444.14 433.78 422.65
410.84 398.31 385.00 371.02 356.27
/
8 552.07 551.57 549.68 546.86 543.23
538.80 533.61 527.67 520.95 513.53
505.37 496.48 486.83 476.49 465.38
453.59 441.08 427.80 413.84 399.12
/
9 594.59 594.11 592.23 589.43 585.80
581.39 576.21 570.29 563.58 556.17
548.03 539.16 529.52 519.19 508.11
496.34 483.85 470.59 456.66 441.96
/
10 637.11 636.65 634.79 632.00 628.38
623.98 618.81 612.90 606.20 598.81
590.68 581.83 572.20 561.90 550.83
539.09 526.63 513.39 499.49 484.81
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 04 Oct 05 12:35
-- Input File : Z:\Project\norne6\prod\gap\WI\C4H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\C4H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : C-3H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 24 Jun 99 14:32
--
--
--
-- Surface Equipment Correlation : Fancher Brown
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 392.3 (m)
-- Last Node : 10 Tubing 2717 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
15 2692.99 'WAT' /
-- 'WAT' units - SM3/DAY
600.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 252.21 251.96 250.98 249.52 247.62
245.30 242.59 239.49 236.00 232.13
227.88 223.24 218.23 212.83 207.07
200.92 194.41 187.52 180.26 172.62
/
2 294.73 294.49 293.53 292.07 290.18
287.87 285.17 282.08 278.59 274.73
270.50 265.86 260.87 255.48 249.73
243.59 237.10 230.22 222.98 215.34
/
3 337.25 337.03 336.07 334.63 332.75
330.44 327.75 324.67 321.19 317.34
313.11 308.49 303.51 298.13 292.40
286.27 279.79 272.91 265.69 258.07
/
4 379.77 379.57 378.62 377.18 375.31
373.01 370.33 367.26 363.78 359.95
355.74 351.11 346.15 340.77 335.06
328.94 322.48 315.62 308.41 300.80
/
5 422.29 422.10 421.17 419.74 417.88
415.58 412.91 409.85 406.38 402.56
398.36 393.74 388.79 383.42 377.72
371.61 365.17 358.32 351.13 343.54
/
6 464.81 464.64 463.72 462.30 460.45
458.15 455.49 452.45 448.98 445.17
440.98 436.37 431.43 426.08 420.39
414.29 407.86 401.02 393.85 386.27
/
7 507.34 507.18 506.27 504.86 503.01
500.72 498.07 495.04 491.58 487.78
483.60 479.00 474.07 468.73 463.06
456.97 450.56 443.72 436.57 429.00
/
8 549.86 549.72 548.82 547.42 545.59
543.30 540.66 537.63 534.18 530.39
526.23 521.64 516.72 511.38 505.73
499.65 493.25 486.43 479.30 471.74
/
9 592.39 592.26 591.37 589.98 588.16
585.87 583.24 580.23 576.78 573.00
568.85 564.27 559.37 554.04 548.40
542.32 535.95 529.14 522.02 514.48
/
10 634.92 634.80 633.92 632.54 630.73
628.45 625.83 622.83 619.38 615.62
611.48 606.90 602.01 596.69 591.07
585.01 578.64 571.84 564.75 557.21
/

View File

@@ -1,132 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 9.3 - License#:4474 - Sep 17 2006 14:05:16
-- Generated on : 12 Feb 07 12:21
-- Input File : Y:\Project\norne6\prod\gap\WI\F1H.OUT
-- Output File : Y:\Project\norne6\res\INCLUDE\VFP\F1H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : F-1H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 25 Jun 99 11:56
--
--
--
-- Surface Equipment Correlation : Fancher Brown
-- Vertical Lift Correlation : Petroleum Experts 2
--
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
--
-- First Node : 1 Xmas Tree 397.2 (m)
-- Last Node : 9 Tubing 2888 (m)
--
-- Sensitivity Variable 1 : First Node Pressure
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
17 2733.7 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11947.4
13473.7 14236.8 15000.0 18000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 255.66 255.10 253.49 251.14 248.12
244.45 240.16 235.26 229.74 223.62
216.90 209.57 201.66 193.14 174.34
153.15 141.67 129.60 76.40
/
2 298.18 297.64 296.05 293.70 290.69
287.03 282.75 277.86 272.35 266.25
259.54 252.23 244.33 235.82 217.06
195.92 184.46 172.42 119.32
/
3 340.70 340.18 338.60 336.27 333.27
329.61 325.35 320.47 314.96 308.87
302.19 294.88 287.01 278.51 259.79
238.69 227.25 215.23 162.24
/
4 383.22 382.72 381.16 378.83 375.85
372.19 367.94 363.08 357.58 351.51
344.84 337.54 329.68 321.20 302.53
281.46 270.04 258.05 205.15
/
5 425.74 425.26 423.71 421.40 418.42
414.78 410.54 405.68 400.19 394.14
387.48 380.20 372.36 363.89 345.26
324.24 312.83 300.87 248.07
/
6 468.27 467.80 466.27 463.97 461.00
457.36 453.13 448.29 442.81 436.77
430.13 422.86 415.04 406.58 387.99
367.01 355.62 343.68 290.99
/
7 510.79 510.34 508.83 506.54 503.58
499.94 495.73 490.90 485.43 479.40
472.78 465.52 457.72 449.28 430.72
409.78 398.41 386.50 333.91
/
8 553.32 552.88 551.39 549.11 546.16
542.53 538.33 533.51 528.05 522.04
515.43 508.18 500.40 491.97 473.46
452.56 441.21 429.33 376.84
/
9 595.84 595.43 593.95 591.68 588.74
585.12 580.93 576.13 570.67 564.67
558.08 550.85 543.08 534.67 516.20
495.34 484.00 472.15 419.76
/
10 638.37 637.97 636.51 634.25 631.32
627.71 623.53 618.74 613.29 607.31
600.74 593.51 585.76 577.36 558.93
538.12 526.80 514.97 462.68
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:23
-- Input File : Z:\Project\norne6\prod\gap\WI\F2H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\F2H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : F-2H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 25 Jun 99 11:56
--
--
--
-- Surface Equipment Correlation : Fancher Brown
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 397.2 (m)
-- Last Node : 7 Tubing 2826 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
18 2743.22 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
49.98 99.96 149.94 199.92 224.91
249.90 274.89 299.88 349.86 399.84 /
1 285.81 285.29 283.71 281.41 278.44
274.85 270.63 265.80 260.38 254.36
247.73 240.53 232.74 224.34 215.38
205.81 195.66 184.94 173.62 161.73
/
2 336.15 335.65 334.09 331.79 328.84
325.26 321.06 316.23 310.83 304.83
298.21 291.03 283.26 274.88 265.94
256.39 246.26 235.57 224.27 212.41
/
3 386.48 386.01 384.46 382.18 379.24
375.67 371.49 366.67 361.28 355.30
348.69 341.53 333.78 325.42 316.51
306.97 296.86 286.20 274.92 263.09
/
4 436.82 436.38 434.84 432.57 429.64
426.08 421.91 417.11 411.73 405.77
399.17 392.03 384.31 375.96 367.07
357.56 347.46 336.83 325.57 313.78
/
5 461.98 461.56 460.03 457.77 454.84
451.29 447.13 442.33 436.96 431.00
424.42 417.28 409.57 401.23 392.35
382.85 372.76 362.14 350.90 339.12
/
6 487.15 486.74 485.21 482.96 480.04
476.50 472.34 467.54 462.19 456.24
449.66 442.54 434.83 426.50 417.64
408.14 398.07 387.46 376.23 364.46
/
7 512.32 511.92 510.40 508.16 505.25
501.71 497.56 492.77 487.42 481.48
474.90 467.79 460.10 451.77 442.92
433.43 423.37 412.78 401.55 389.81
/
8 537.49 537.10 535.59 533.35 530.45
526.92 522.77 517.98 512.64 506.71
500.15 493.04 485.36 477.04 468.20
458.73 448.67 438.09 426.88 415.15
/
9 587.83 587.47 585.97 583.75 580.85
577.34 573.21 568.43 563.10 557.19
550.63 543.55 535.89 527.59 518.78
509.32 499.28 488.73 477.54 465.84
/
10 638.17 637.84 636.36 634.14 631.26
627.76 623.64 618.87 613.56 607.67
601.12 594.06 586.42 578.14 569.35
559.91 549.89 539.37 528.20 516.53
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:23
-- Input File : Z:\Project\norne6\prod\gap\WI\F3H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\F3H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : F-3H
-- Platform : Transocean Prospect
-- Analyst : shlea
-- Date : 25 Jun 99 11:56
--
--
--
-- Surface Equipment Correlation : Fancher Brown
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 397.2 (m)
-- Last Node : 12 Tubing 3511 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
19 2733.64 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 255.32 254.47 252.16 248.81 244.49
239.26 233.12 226.09 218.18 209.40
199.75 189.23 177.84 165.60 152.50
138.52 123.70 108.01 91.47 74.06
/
2 297.83 297.00 294.71 291.37 287.06
281.84 275.71 268.70 260.81 252.03
242.40 231.90 220.53 208.31 195.23
181.28 166.49 150.82 134.31 116.93
/
3 340.35 339.54 337.25 333.93 329.63
324.42 318.30 311.31 303.43 294.67
285.06 274.58 263.22 251.03 237.97
224.04 209.27 193.63 177.15 159.79
/
4 382.87 382.07 379.80 376.50 372.20
367.00 360.90 353.92 346.06 337.31
327.71 317.26 305.92 293.74 280.71
266.80 252.06 236.44 219.99 202.66
/
5 425.39 424.61 422.35 419.06 414.77
409.58 403.50 396.53 388.69 379.95
370.37 359.93 348.61 336.46 323.45
309.56 294.85 279.25 262.83 245.53
/
6 467.90 467.15 464.90 461.62 457.34
452.17 446.09 439.14 431.31 422.59
413.03 402.61 391.31 379.18 366.19
352.33 337.64 322.07 305.68 288.40
/
7 510.42 509.69 507.45 504.19 499.91
494.75 488.69 481.75 473.94 465.23
455.69 445.29 434.00 421.90 408.94
395.09 380.43 364.88 348.52 331.27
/
8 552.95 552.23 550.00 546.76 542.49
537.34 531.29 524.37 516.57 507.87
498.35 487.97 476.70 464.62 451.68
437.86 423.22 407.70 391.37 374.14
/
9 595.47 594.77 592.56 589.32 585.06
579.93 573.89 566.98 559.20 550.52
541.02 530.66 519.40 507.34 494.43
480.62 466.02 450.51 434.22 417.02
/
10 637.99 637.31 635.11 631.89 627.64
622.51 616.50 609.60 601.84 593.16
583.68 573.34 562.10 550.06 537.17
523.39 508.81 493.33 477.06 459.89
/

View File

@@ -1,128 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 8.01 - License#:4163 - Nov 12 2004 18:40:47
-- Generated on : 08 Sep 05 14:24
-- Input File : Z:\Project\norne6\prod\gap\WI\F4H.OUT
-- Output File : Z:\Project\norne6\prod\gap\WI\F4H.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type : Tubing
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : Full System
--
-- Completion : Cased Hole
-- Gravel Pack : No
--
-- Inflow Type : Single Branch
-- Gas Coning : No
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : F-4H
-- Platform :
-- Analyst : psk
-- Date : 17 Aug 99 14:29
--
--
--
-- Surface Equipment Correlation : Dukler Flannigan - (1.000) (1.032)
-- Vertical Lift Correlation : Petroleum Experts 2
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
-- First Node : 1 Xmas Tree 397.2 (m)
-- Last Node : 10 Tubing 4130.94 (m)
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
20 2656.8 'WAT' /
-- 'WAT' units - SM3/DAY
500.0 1263.2 2026.3 2789.5 3552.6
4315.8 5078.9 5842.1 6605.3 7368.4
8131.6 8894.7 9657.9 10421.1 11184.2
11947.4 12710.5 13473.7 14236.8 15000.0 /
-- 'THP' units - BARSA
21.01 63.24 105.46 147.68 189.90
232.12 274.35 316.57 358.79 401.01 /
1 247.68 246.71 244.31 240.86 236.44
231.09 224.82 217.66 209.61 200.68
190.86 180.18 168.63 156.20 142.90
128.75 113.72 97.83 81.07 63.44
/
2 290.19 289.24 286.85 283.42 279.01
273.67 267.42 260.27 252.23 243.31
233.52 222.85 211.32 198.92 185.64
171.51 156.51 140.65 123.92 106.32
/
3 332.70 331.76 329.40 325.98 321.58
316.25 310.01 302.87 294.85 285.95
276.17 265.53 254.02 241.64 228.38
214.27 199.31 183.47 166.76 149.20
/
4 375.21 374.30 371.94 368.54 364.15
358.83 352.60 345.48 337.47 328.59
318.83 308.20 296.71 284.36 271.12
257.04 242.10 226.30 209.61 192.09
/
5 417.72 416.83 414.49 411.10 406.72
401.41 395.20 388.09 380.09 371.23
361.49 350.88 339.41 327.08 313.86
299.81 284.89 269.12 252.46 234.97
/
6 460.23 459.36 457.03 453.66 449.30
444.00 437.79 430.70 422.72 413.87
404.14 393.56 382.11 369.80 356.60
342.57 327.69 311.94 295.31 277.85
/
7 502.75 501.89 499.58 496.22 491.87
486.58 480.39 473.31 465.34 456.51
446.80 436.24 424.81 412.52 399.34
385.34 370.48 354.77 338.17 320.74
/
8 545.26 544.43 542.13 538.79 534.44
529.17 522.99 515.92 507.97 499.15
489.46 478.92 467.51 455.24 442.09
428.11 413.28 397.60 381.02 363.63
/
9 587.77 586.96 584.68 581.35 577.02
571.75 565.59 558.53 550.60 541.79
532.12 521.60 510.21 497.97 484.83
470.88 456.08 440.43 423.87 406.51
/
10 630.29 629.50 627.23 623.92 619.60
614.34 608.19 601.14 593.23 584.44
574.79 564.28 552.91 540.69 527.58
513.66 498.88 483.25 466.73 449.40
/

View File

@@ -1,314 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- Denne loeftekurven baserer seg paa data
-- fra broenn D-2T2H, som har en broenn-bane
-- noe midt mellom det meste. Denne kurven
-- brukes for gassbroenner.
VFPPROD
--4 2200 'GAS' 'WGR' 'OGR' /
4 2580 'GAS' 'WGR' 'OGR' /
15 150 1500 15000 150000 1.5e+006 /
30 40 60 100 200 250 /
0 0.0003 0.003 0.03 0.3 3 30 /
7.1e-007 1e-006 1e-005 0.0001 0.001 0.002
0.009 /
0 /
1 1 1 1 34.8749 34.8749 34.875 34.879 35.1864 56.3325 /
1 1 2 1 34.8749 34.8749 34.875 34.879 35.1864 56.3327 /
1 1 3 1 34.8749 34.8749 34.875 34.8791 35.188 56.3371 /
1 1 4 1 197.254 196.642 190.199 46.3175 46.4544 58.1071 /
1 1 5 1 197.256 196.664 190.45 46.3206 49.1201 78.9131 /
1 1 6 1 197.259 196.688 190.725 47.104 55.358 102.150 /
1 1 7 1 197.275 196.855 192.579 134.375 104.427 275.263 /
1 2 1 1 241.720 240.982 233.245 48.785 48.905 59.275 /
1 2 2 1 241.720 240.982 233.246 48.785 48.912 59.855 /
1 2 3 1 240.505 239.772 232.089 48.728 48.907 66.133 /
1 2 4 1 229.295 228.601 221.316 48.170 48.374 67.989 /
1 2 5 1 206.287 205.675 199.269 46.881 53.430 86.644 /
1 2 6 1 202.290 201.709 195.653 48.833 56.025 111.214 /
1 2 7 1 198.503 198.082 193.801 136.233 107.064 282.972 /
1 3 1 1 241.720 240.982 233.245 48.785 48.905 59.275 /
1 3 2 1 241.720 240.982 233.246 48.785 48.912 59.855 /
1 3 3 1 241.720 240.983 233.282 48.788 55.851 84.207 /
1 3 4 1 240.505 239.776 232.219 57.512 61.540 143.753 /
1 3 5 1 229.298 228.629 221.714 72.717 65.711 166.223 /
1 3 6 1 222.188 221.564 215.137 92.631 73.168 190.908 /
1 3 7 1 207.088 206.660 202.351 152.134 128.396 355.851 /
1 4 1 1 241.720 240.982 233.245 48.785 48.905 59.275 /
1 4 2 1 241.720 240.982 233.246 48.785 48.912 59.855 /
1 4 3 1 241.720 240.983 233.282 48.788 55.851 84.207 /
1 4 4 1 241.720 240.989 233.625 144.141 115.525 329.563 /
1 4 5 1 240.508 239.813 233.362 192.179 199.676 1000.000 /
1 4 6 1 238.882 238.221 232.105 193.415 202.407 1000.000 /
1 4 7 1 230.267 229.818 225.748 200.889 219.120 1000.000 /
1 5 1 1 241.720 240.982 233.245 48.785 48.905 59.275 /
1 5 2 1 241.720 240.982 233.246 48.785 48.912 59.855 /
1 5 3 1 241.720 240.983 233.282 48.788 55.851 84.207 /
1 5 4 1 241.720 240.989 233.625 144.141 115.525 329.563 /
1 5 5 1 241.723 241.044 236.022 225.283 324.028 1000.000 /
1 5 6 1 241.727 241.102 237.543 237.240 580.061 1000.000 /
1 5 7 1 240.705 240.291 238.459 245.685 1000.000 1000.000 /
1 6 1 1 241.720 240.982 233.245 48.785 48.905 59.275 /
1 6 2 1 241.720 240.982 233.246 48.785 48.912 59.855 /
1 6 3 1 241.720 240.983 233.282 48.788 55.851 84.207 /
1 6 4 1 241.720 240.989 233.625 144.141 115.525 329.563 /
1 6 5 1 241.723 241.044 236.022 225.283 324.028 1000.000 /
1 6 6 1 241.727 241.102 237.543 237.240 580.061 1000.000 /
1 6 7 1 241.751 241.424 241.447 308.888 1000.000 1000.000 /
1 7 1 1 241.720 240.982 233.245 48.785 48.905 59.275 /
1 7 2 1 241.720 240.982 233.246 48.785 48.912 59.855 /
1 7 3 1 241.720 240.983 233.282 48.788 55.851 84.207 /
1 7 4 1 241.720 240.989 233.625 144.141 115.525 329.563 /
1 7 5 1 241.723 241.044 236.022 225.283 324.028 1000.000 /
1 7 6 1 241.727 241.102 237.543 237.240 580.061 1000.000 /
1 7 7 1 241.751 241.424 241.447 308.888 1000.000 1000.000 /
2 1 1 1 46.606 46.606 46.606 46.609 46.837 64.102 /
2 1 2 1 46.606 46.606 46.606 46.609 46.837 64.102 /
2 1 3 1 46.606 46.606 46.606 46.609 46.839 64.123 /
2 1 4 1 206.273 205.754 200.367 57.897 58.016 68.247 /
2 1 5 1 206.275 205.775 200.606 57.900 62.594 88.243 /
2 1 6 1 206.277 205.798 200.870 67.112 66.812 110.729 /
2 1 7 1 206.293 205.962 202.643 167.550 128.423 281.160 /
2 2 1 1 251.774 251.138 244.554 60.430 60.535 69.617 /
2 2 2 1 251.774 251.138 244.555 60.430 60.541 70.138 /
2 2 3 1 250.515 249.883 243.349 60.371 60.528 77.344 /
2 2 4 1 238.948 238.352 232.188 59.795 59.975 78.919 /
2 2 5 1 215.431 214.913 209.567 58.492 66.702 95.558 /
2 2 6 1 211.373 210.886 205.871 78.270 68.123 119.616 /
2 2 7 1 207.536 207.204 203.881 169.168 131.068 289.120 /
2 3 1 1 251.774 251.138 244.554 60.430 60.535 69.617 /
2 3 2 1 251.774 251.138 244.555 60.430 60.541 70.138 /
2 3 3 1 251.774 251.138 244.585 60.433 69.632 93.526 /
2 3 4 1 250.515 249.887 243.461 108.506 76.625 151.455 /
2 3 5 1 238.951 238.380 232.559 129.525 84.472 173.733 /
2 3 6 1 231.653 231.125 225.766 143.385 93.729 198.193 /
2 3 7 1 216.244 215.907 212.561 181.058 151.700 361.549 /
2 4 1 1 251.774 251.138 244.554 60.430 60.535 69.617 /
2 4 2 1 251.774 251.138 244.555 60.430 60.541 70.138 /
2 4 3 1 251.774 251.138 244.585 60.433 69.632 93.526 /
2 4 4 1 251.774 251.144 244.874 180.187 137.797 342.244 /
2 4 5 1 250.518 249.923 244.455 211.245 215.562 1000.000 /
2 4 6 1 248.836 248.274 243.129 212.156 218.291 1000.000 /
2 4 7 1 239.947 239.594 236.425 217.700 233.617 1000.000 /
2 5 1 1 251.774 251.138 244.554 60.430 60.535 69.617 /
2 5 2 1 251.774 251.138 244.555 60.430 60.541 70.138 /
2 5 3 1 251.774 251.138 244.585 60.433 69.632 93.526 /
2 5 4 1 251.774 251.144 244.874 180.187 137.797 342.244 /
2 5 5 1 251.777 251.195 246.919 238.187 334.200 1000.000 /
2 5 6 1 251.781 251.249 248.238 248.543 588.448 1000.000 /
2 5 7 1 250.722 250.397 248.980 256.423 1000.000 1000.000 /
2 6 1 1 251.774 251.138 244.554 60.430 60.535 69.617 /
2 6 2 1 251.774 251.138 244.555 60.430 60.541 70.138 /
2 6 3 1 251.774 251.138 244.585 60.433 69.632 93.526 /
2 6 4 1 251.774 251.144 244.874 180.187 137.797 342.244 /
2 6 5 1 251.777 251.195 246.919 238.187 334.200 1000.000 /
2 6 6 1 251.781 251.249 248.238 248.543 588.448 1000.000 /
2 6 7 1 251.805 251.550 251.737 318.967 1000.000 1000.000 /
2 7 1 1 251.774 251.138 244.554 60.430 60.535 69.617 /
2 7 2 1 251.774 251.138 244.555 60.430 60.541 70.138 /
2 7 3 1 251.774 251.138 244.585 60.433 69.632 93.526 /
2 7 4 1 251.774 251.144 244.874 180.187 137.797 342.244 /
2 7 5 1 251.777 251.195 246.919 238.187 334.200 1000.000 /
2 7 6 1 251.781 251.249 248.238 248.543 588.448 1000.000 /
2 7 7 1 251.805 251.550 251.737 318.967 1000.000 1000.000 /
3 1 1 1 70.217 70.217 70.217 70.219 70.367 82.637 /
3 1 2 1 70.217 70.217 70.217 70.219 70.367 82.637 /
3 1 3 1 70.217 70.217 70.217 70.219 70.368 82.674 /
3 1 4 1 224.227 223.829 219.756 81.175 81.272 89.613 /
3 1 5 1 224.229 223.849 219.980 148.227 88.234 108.257 /
3 1 6 1 224.231 223.872 220.228 178.222 93.569 130.735 /
3 1 7 1 224.247 224.031 221.895 204.287 169.720 297.882 /
3 2 1 1 271.869 271.365 266.215 86.480 83.935 91.352 /
3 2 2 1 271.869 271.365 266.216 89.208 83.939 91.790 /
3 2 3 1 270.518 270.018 264.912 113.880 83.914 100.805 /
3 2 4 1 258.200 257.733 252.962 118.550 83.316 101.882 /
3 2 5 1 233.638 233.242 229.214 170.060 90.593 115.322 /
3 2 6 1 229.458 229.091 225.370 183.365 97.673 139.497 /
3 2 7 1 225.519 225.302 223.164 205.720 172.189 305.242 /
3 3 1 1 271.869 271.365 266.215 86.480 83.935 91.352 /
3 3 2 1 271.869 271.365 266.216 89.208 83.939 91.790 /
3 3 3 1 271.869 271.366 266.239 162.245 94.202 113.742 /
3 3 4 1 270.519 270.021 265.004 211.621 111.012 170.691 /
3 3 5 1 258.203 257.760 253.304 208.137 121.245 192.725 /
3 3 6 1 250.515 250.113 246.085 207.284 132.211 216.629 /
3 3 7 1 234.476 234.256 232.105 216.066 190.920 375.428 /
3 4 1 1 271.869 271.365 266.215 86.480 83.935 91.352 /
3 4 2 1 271.869 271.365 266.216 89.208 83.939 91.790 /
3 4 3 1 271.869 271.366 266.239 162.245 94.202 113.742 /
3 4 4 1 271.870 271.370 266.466 228.706 176.320 356.099 /
3 4 5 1 270.522 270.056 265.824 243.464 244.318 1000.000 /
3 4 6 1 268.719 268.286 264.365 243.125 246.635 1000.000 /
3 4 7 1 259.301 259.070 257.024 245.967 259.876 1000.000 /
3 5 1 1 271.869 271.365 266.215 86.480 83.935 91.352 /
3 5 2 1 271.869 271.365 266.216 89.208 83.939 91.790 /
3 5 3 1 271.869 271.366 266.239 162.245 94.202 113.742 /
3 5 4 1 271.870 271.370 266.466 228.706 176.320 356.099 /
3 5 5 1 271.873 271.417 268.093 261.952 354.731 1000.000 /
3 5 6 1 271.876 271.466 269.160 270.189 606.390 1000.000 /
3 5 7 1 270.755 270.543 269.658 277.400 1000.000 1000.000 /
3 6 1 1 271.869 271.365 266.215 86.480 83.935 91.352 /
3 6 2 1 271.869 271.365 266.216 89.208 83.939 91.790 /
3 6 3 1 271.869 271.366 266.239 162.245 94.202 113.742 /
3 6 4 1 271.870 271.370 266.466 228.706 176.320 356.099 /
3 6 5 1 271.873 271.417 268.093 261.952 354.731 1000.000 /
3 6 6 1 271.876 271.466 269.160 270.189 606.390 1000.000 /
3 6 7 1 271.906 271.744 272.143 339.113 1000.000 1000.000 /
3 7 1 1 271.869 271.365 266.215 86.480 83.935 91.352 /
3 7 2 1 271.869 271.365 266.216 89.208 83.939 91.790 /
3 7 3 1 271.869 271.366 266.239 162.245 94.202 113.742 /
3 7 4 1 271.870 271.370 266.466 228.706 176.320 356.099 /
3 7 5 1 271.873 271.417 268.093 261.952 354.731 1000.000 /
3 7 6 1 271.876 271.466 269.160 270.189 606.390 1000.000 /
3 7 7 1 271.906 271.744 272.143 339.113 1000.000 1000.000 /
4 1 1 1 117.858 117.858 117.858 117.859 117.944 125.402 /
4 1 2 1 117.858 117.858 117.858 117.859 117.945 125.391 /
4 1 3 1 259.867 259.597 256.864 225.509 128.096 133.282 /
4 1 4 1 259.867 259.599 256.885 225.953 128.107 134.242 /
4 1 5 1 259.869 259.618 257.094 230.007 136.635 152.110 /
4 1 6 1 259.871 259.640 257.323 233.872 153.698 178.341 /
4 1 7 1 260.046 259.949 258.999 251.745 235.449 336.749 /
4 2 1 1 312.032 311.669 308.001 266.577 131.080 136.581 /
4 2 2 1 312.032 311.669 308.002 266.658 131.084 136.911 /
4 2 3 1 310.475 310.115 306.487 266.076 131.039 147.440 /
4 2 4 1 296.510 296.181 292.857 255.868 130.343 147.212 /
4 2 5 1 269.773 269.509 266.849 238.777 142.238 161.200 /
4 2 6 1 265.352 265.114 262.734 238.985 159.299 187.310 /
4 2 7 1 261.397 261.300 260.350 253.149 237.446 344.079 /
4 3 1 1 312.032 311.669 308.001 266.577 131.080 136.581 /
4 3 2 1 312.032 311.669 308.002 266.658 131.084 136.911 /
4 3 3 1 312.032 311.670 308.019 268.980 141.035 157.196 /
4 3 4 1 310.475 310.118 306.560 272.361 175.578 217.310 /
4 3 5 1 296.513 296.208 293.173 265.118 187.462 238.431 /
4 3 6 1 287.997 287.731 285.089 261.693 199.271 260.930 /
4 3 7 1 271.013 270.913 269.953 263.246 252.379 410.392 /
4 4 1 1 312.032 311.669 308.001 266.577 131.080 136.581 /
4 4 2 1 312.032 311.669 308.002 266.658 131.084 136.911 /
4 4 3 1 312.032 311.670 308.019 268.980 141.035 157.196 /
4 4 4 1 312.033 311.674 308.186 282.485 239.319 391.181 /
4 4 5 1 310.478 310.152 307.214 294.038 294.546 1000.000 /
4 4 6 1 308.407 308.114 305.481 293.852 296.379 1000.000 /
4 4 7 1 298.207 298.103 297.192 293.685 306.387 1000.000 /
4 5 1 1 312.032 311.669 308.001 266.577 131.080 136.581 /
4 5 2 1 312.032 311.669 308.002 266.658 131.084 136.911 /
4 5 3 1 312.032 311.670 308.019 268.980 141.035 157.196 /
4 5 4 1 312.033 311.674 308.186 282.485 239.319 391.181 /
4 5 5 1 312.036 311.717 309.399 305.578 394.896 1000.000 /
4 5 6 1 312.039 311.761 310.210 312.044 644.179 1000.000 /
4 5 7 1 310.831 310.736 310.401 318.473 1000.000 1000.000 /
4 6 1 1 312.032 311.669 308.001 266.577 131.080 136.581 /
4 6 2 1 312.032 311.669 308.002 266.658 131.084 136.911 /
4 6 3 1 312.032 311.670 308.019 268.980 141.035 157.196 /
4 6 4 1 312.033 311.674 308.186 282.485 239.319 391.181 /
4 6 5 1 312.036 311.717 309.399 305.578 394.896 1000.000 /
4 6 6 1 312.039 311.761 310.210 312.044 644.179 1000.000 /
4 6 7 1 312.101 312.035 312.653 379.357 1000.000 1000.000 /
4 7 1 1 312.032 311.669 308.001 266.577 131.080 136.581 /
4 7 2 1 312.032 311.669 308.002 266.658 131.084 136.911 /
4 7 3 1 312.032 311.670 308.019 268.980 141.035 157.196 /
4 7 4 1 312.033 311.674 308.186 282.485 239.319 391.181 /
4 7 5 1 312.036 311.717 309.399 305.578 394.896 1000.000 /
4 7 6 1 312.039 311.761 310.210 312.044 644.179 1000.000 /
4 7 7 1 312.101 312.035 312.653 379.357 1000.000 1000.000 /
5 1 1 1 235.752 235.752 235.752 235.752 235.794 239.543 /
5 1 2 1 235.752 235.752 235.752 235.752 235.794 239.545 /
5 1 3 1 348.023 347.880 346.444 331.477 243.722 246.929 /
5 1 4 1 348.023 347.882 346.464 331.765 243.729 247.518 /
5 1 5 1 348.025 347.901 346.658 334.443 264.560 273.153 /
5 1 6 1 348.027 347.921 346.871 337.077 286.870 301.177 /
5 1 7 1 354.211 354.206 354.158 353.832 354.276 438.928 /
5 2 1 1 412.337 412.109 409.821 386.210 247.525 250.962 /
5 2 2 1 412.337 412.109 409.822 386.246 247.528 251.173 /
5 2 3 1 410.131 409.907 407.659 384.702 248.035 260.658 /
5 2 4 1 391.299 391.104 389.156 369.286 249.562 259.631 /
5 2 5 1 358.991 358.856 357.507 344.421 272.927 283.472 /
5 2 6 1 354.035 353.925 352.829 342.733 293.266 309.873 /
5 2 7 1 355.707 355.702 355.653 355.330 355.849 445.423 /
5 3 1 1 412.337 412.109 409.821 386.210 247.525 250.962 /
5 3 2 1 412.337 412.109 409.822 386.246 247.528 251.173 /
5 3 3 1 412.337 412.109 409.834 387.322 268.324 277.991 /
5 3 4 1 410.132 409.910 407.719 387.860 311.178 337.629 /
5 3 5 1 391.301 391.133 389.468 374.954 321.963 355.859 /
5 3 6 1 380.534 380.403 379.114 368.338 331.774 374.889 /
5 3 7 1 366.394 366.389 366.340 366.045 367.285 507.375 /
5 4 1 1 412.337 412.109 409.821 386.210 247.525 250.962 /
5 4 2 1 412.337 412.109 409.822 386.246 247.528 251.173 /
5 4 3 1 412.337 412.109 409.834 387.322 268.324 277.991 /
5 4 4 1 412.337 412.113 409.952 394.451 364.305 490.469 /
5 4 5 1 410.135 409.946 408.258 400.746 405.194 1000.000 /
5 4 6 1 407.238 407.085 405.724 399.792 405.892 1000.000 /
5 4 7 1 396.913 396.908 396.865 396.867 410.697 1000.000 /
5 5 1 1 412.337 412.109 409.821 386.210 247.525 250.962 /
5 5 2 1 412.337 412.109 409.822 386.246 247.528 251.173 /
5 5 3 1 412.337 412.109 409.834 387.322 268.324 277.991 /
5 5 4 1 412.337 412.113 409.952 394.451 364.305 490.469 /
5 5 5 1 412.341 412.155 410.817 408.983 495.353 1000.000 /
5 5 6 1 412.344 412.198 411.407 414.071 741.888 1000.000 /
5 5 7 1 411.177 411.175 411.262 419.597 1000.000 1000.000 /
5 6 1 1 412.337 412.109 409.821 386.210 247.525 250.962 /
5 6 2 1 412.337 412.109 409.822 386.246 247.528 251.173 /
5 6 3 1 412.337 412.109 409.834 387.322 268.324 277.991 /
5 6 4 1 412.337 412.113 409.952 394.451 364.305 490.469 /
5 6 5 1 412.341 412.155 410.817 408.983 495.353 1000.000 /
5 6 6 1 412.344 412.198 411.407 414.071 741.888 1000.000 /
5 6 7 1 412.615 412.623 413.412 479.862 1000.000 1000.000 /
5 7 1 1 412.337 412.109 409.821 386.210 247.525 250.962 /
5 7 2 1 412.337 412.109 409.822 386.246 247.528 251.173 /
5 7 3 1 412.337 412.109 409.834 387.322 268.324 277.991 /
5 7 4 1 412.337 412.113 409.952 394.451 364.305 490.469 /
5 7 5 1 412.341 412.155 410.817 408.983 495.353 1000.000 /
5 7 6 1 412.344 412.198 411.407 414.071 741.888 1000.000 /
5 7 7 1 412.615 412.623 413.412 479.862 1000.000 1000.000 /
6 1 1 1 292.633 292.633 292.633 292.634 292.668 295.782 /
6 1 2 1 292.633 292.633 292.633 292.634 292.668 295.784 /
6 1 3 1 391.937 391.823 390.683 378.955 299.593 302.378 /
6 1 4 1 391.937 391.825 390.702 379.222 299.598 302.888 /
6 1 5 1 391.939 391.844 390.895 381.711 323.519 330.898 /
6 1 6 1 391.941 391.864 391.106 384.155 345.701 358.355 /
6 1 7 1 404.456 404.456 404.456 404.473 405.561 489.126 /
6 2 1 1 462.444 462.245 460.257 439.972 303.815 306.803 /
6 2 2 1 462.444 462.245 460.257 440.003 303.817 307.191 /
6 2 3 1 459.843 459.649 457.702 438.048 305.136 315.987 /
6 2 4 1 438.238 438.075 436.438 419.951 307.927 314.598 /
6 2 5 1 403.283 403.178 402.133 392.142 332.194 341.328 /
6 2 6 1 398.125 398.045 397.249 390.028 352.041 366.826 /
6 2 7 1 405.953 405.953 405.953 405.971 407.117 495.594 /
6 3 1 1 462.444 462.245 460.257 439.972 303.815 306.803 /
6 3 2 1 462.444 462.245 460.257 440.003 303.817 307.191 /
6 3 3 1 462.444 462.246 460.269 440.907 327.975 336.271 /
6 3 4 1 459.844 459.652 457.762 440.762 370.743 394.539 /
6 3 5 1 438.241 438.105 436.763 425.179 380.440 411.424 /
6 3 6 1 426.320 426.222 425.259 417.306 389.049 429.077 /
6 3 7 1 416.651 416.651 416.652 416.678 418.410 557.416 /
6 4 1 1 462.444 462.245 460.257 439.972 303.815 306.803 /
6 4 2 1 462.444 462.245 460.257 440.003 303.817 307.191 /
6 4 3 1 462.444 462.246 460.269 440.907 327.975 336.271 /
6 4 4 1 462.444 462.250 460.379 446.999 420.197 541.182 /
6 4 5 1 459.847 459.691 458.296 452.103 457.235 1000.000 /
6 4 6 1 456.454 456.337 455.294 450.770 457.577 1000.000 /
6 4 7 1 447.198 447.198 447.201 447.384 461.282 1000.000 /
6 5 1 1 462.444 462.245 460.257 439.972 303.815 306.803 /
6 5 2 1 462.444 462.245 460.257 440.003 303.817 307.191 /
6 5 3 1 462.444 462.246 460.269 440.907 327.975 336.271 /
6 5 4 1 462.444 462.250 460.379 446.999 420.197 541.182 /
6 5 5 1 462.448 462.294 461.186 459.824 545.545 1000.000 /
6 5 6 1 462.452 462.340 461.739 464.617 791.300 1000.000 /
6 5 7 1 461.468 461.470 461.580 469.937 1000.000 1000.000 /
6 6 1 1 462.444 462.245 460.257 439.972 303.815 306.803 /
6 6 2 1 462.444 462.245 460.257 440.003 303.817 307.191 /
6 6 3 1 462.444 462.246 460.269 440.907 327.975 336.271 /
6 6 4 1 462.444 462.250 460.379 446.999 420.197 541.182 /
6 6 5 1 462.448 462.294 461.186 459.824 545.545 1000.000 /
6 6 6 1 462.452 462.340 461.739 464.617 791.300 1000.000 /
6 6 7 1 462.906 462.918 463.715 530.334 1000.000 1000.000 /
6 7 1 1 462.444 462.245 460.257 439.972 303.815 306.803 /
6 7 2 1 462.444 462.245 460.257 440.003 303.817 307.191 /
6 7 3 1 462.444 462.246 460.269 440.907 327.975 336.271 /
6 7 4 1 462.444 462.250 460.379 446.999 420.197 541.182 /
6 7 5 1 462.448 462.294 461.186 459.824 545.545 1000.000 /
6 7 6 1 462.452 462.340 461.739 464.617 791.300 1000.000 /
6 7 7 1 462.906 462.918 463.715 530.334 1000.000 1000.000 /

View File

@@ -1,9 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
ReadKeywordFile( &
File = "C:\appl\SPEATW2013\Sim\INCLUDE\VFP\NEW_D2_GAS_0.00003.VFP" )

View File

@@ -1,117 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 9.3 - License#:4474 - Sep 17 2006 14:05:16
-- Generated on : 12 Feb 07 08:40
-- Input File : Y:\Project\norne6\prod\gap\WI\WIC.PIPE.OUT
-- Output File : Y:\Project\norne6\prod\gap\WI\WICnew.PIPE.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type :
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : PipeLine Only
--
-- Completion :
-- Gravel Pack :
--
-- Inflow Type :
-- Gas Coning :
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : WIC
-- Platform : Norne FPSO
-- Analyst : sihun
-- Date : 05 Feb 02 12:50
--
--
--
-- Surface Equipment Correlation : Petroleum Experts 4 - (0.964) (1.055)
-- Vertical Lift Correlation : Petroleum Experts 2
--
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
--
-- First Node : 1 Manifold 0 (m)
-- Last Node : 4 Xmas Tree 394 (m)
--
-- Sensitivity Variable 1 : First Node Pressure
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
10 394 'WAT' /
-- 'WAT' units - SM3/DAY
0.1 5714.4 8571.5 11428.6 14285.8
20000.1 22857.2 25714.3 28571.5 31428.6
34285.7 37142.9 40000.0 55000.0 /
-- 'THP' units - BARSA
101.01 123.24 167.68 189.90 212.12
234.35 256.57 278.79 401.01 /
1 139.37 136.66 133.45 129.01 123.34
108.32 98.97 88.39 76.57 63.53
49.24 33.72 16.95 0.0
/
2 161.63 158.92 155.71 151.28 145.61
130.61 121.27 110.70 98.90 85.86
71.59 56.08 39.34 0.0
/
3 206.16 203.45 200.24 195.82 190.17
175.20 165.87 155.32 143.54 130.53
116.29 100.81 84.10 0.0
/
4 228.42 225.71 222.51 218.09 212.44
197.49 188.17 177.63 165.86 152.87
138.64 123.18 106.48 0.0
/
5 250.68 247.97 244.78 240.36 234.72
219.78 210.47 199.94 188.19 175.20
160.99 145.54 128.86 20.90
/
6 272.94 270.24 267.04 262.63 257.00
242.07 232.77 222.25 210.51 197.54
183.34 167.91 151.24 43.39
/
7 295.20 292.50 289.31 284.90 279.27
264.36 255.07 244.56 232.83 219.87
205.69 190.27 173.62 65.88
/
8 317.46 314.76 311.58 307.17 301.55
286.65 277.37 266.88 255.15 242.21
228.04 212.64 196.01 88.37
/
9 439.90 437.21 434.04 429.66 424.07
409.25 400.03 389.59 377.93 365.06
350.96 335.65 319.11 212.06
/

View File

@@ -1,131 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
--
-- Generated by : Prosper 9.3 - License#:4474 - Sep 17 2006 14:05:16
-- Generated on : 12 Feb 07 08:41
-- Input File : Y:\Project\norne6\prod\gap\WI\WIF.PIPE.OUT
-- Output File : Y:\Project\norne6\prod\gap\WI\WIFnew.PIPE.Ecl
--
--
-- Fluid : Water
-- PVT Method : Black Oil
-- Equation Of State :
-- Separator : Single-Stage
-- Emulsions : No
-- Hydrates : Disable Warning
-- Water Viscosity : Use Default Correlation
-- Water Vapour : No Calculations
-- Viscosity Model : Newtonian Fluid
--
-- Flow Type :
-- Well Type : Water Injector
--
-- Artificial Lift : None
-- Lift Type :
--
-- Predicting : Pressure and Temperature (offshore)
-- Temperature Model : Rough Approximation
-- Range : PipeLine Only
--
-- Completion :
-- Gravel Pack :
--
-- Inflow Type :
-- Gas Coning :
--
-- Company : Statoil
-- Field : Norne
-- Location : Nordland II
-- Well : WIC
-- Platform : Norne FPSO
-- Analyst : sihun
-- Date : 05 Feb 02 12:50
--
--
--
-- Surface Equipment Correlation : Petroleum Experts 4 - (0.925) (1.066)
-- Vertical Lift Correlation : Petroleum Experts 2
--
-- Rate Method : User Selected
-- Rate Type : Liquid Rates
--
-- First Node : 1 Manifold 0 (m)
-- Last Node : 4 Xmas Tree 394 (m)
--
-- Sensitivity Variable 1 : First Node Pressure
--
--
-- PROSPER Lift Curves For ECLIPSE Simulator (Water - Water Injector Well) (Units System - METRIC)
VFPINJ
-- Table Datum Depth Rate Type
-- ----- ----------- ---------
11 394 'WAT' /
-- 'WAT' units - SM3/DAY
0.0 2857.1 5714.3 8571.4 11428.6
14285.7 20000.0 22857.1 25714.3 28571.4
31428.6 34285.7 37142.9 40000.0 55000.0 /
-- 'THP' units - BARSA
101.01 145.46 167.68 189.90 212.12
234.35 256.57 278.79 301.01 401.01 /
1 137.81 136.92 134.49 130.55 125.10
118.16 99.74 88.28 75.30 60.81
44.81 27.28 8.24 0.0 0.0
/
2 182.33 181.43 179.01 175.08 169.65
162.71 144.34 132.89 119.94 105.48
89.51 72.02 53.01 32.48 0.0
/
3 204.59 203.69 201.27 197.34 191.92
184.99 166.63 155.20 142.26 127.82
111.86 94.39 75.40 54.89 0.0
/
4 226.85 225.95 223.53 219.61 214.19
207.27 188.93 177.51 164.58 150.15
134.21 116.75 97.78 77.29 0.0
/
5 249.11 248.21 245.80 241.88 236.46
229.55 211.23 199.82 186.90 172.49
156.56 139.12 120.17 99.70 0.0
/
6 271.37 270.47 268.06 264.14 258.73
251.82 233.52 222.12 209.22 194.82
178.91 161.49 142.56 122.11 0.0
/
7 293.63 292.73 290.32 286.41 281.00
274.10 255.82 244.43 231.55 217.16
201.26 183.86 164.94 144.51 12.22
/
8 315.89 314.99 312.58 308.67 303.27
296.38 278.12 266.74 253.87 239.49
223.61 206.23 187.33 166.92 34.75
/
9 338.15 337.25 334.84 330.94 325.55
318.66 300.41 289.05 276.19 261.83
245.96 228.60 209.72 189.33 57.29
/
10 438.32 437.42 435.03 431.14 425.77
418.92 400.75 389.44 376.63 362.34
346.54 329.25 310.46 290.16 158.72
/

View File

@@ -1,646 +0,0 @@
-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Copyright (C) 2015 Statoil
-- Norne full field model for SPE ATW 2013
RUNSPEC
DIMENS
46 112 22 /
--NOSIM
GRIDOPTS
'YES' 0 /
OIL
WATER
GAS
DISGAS
VAPOIL
ENDSCALE
NODIR REVERS /
METRIC
SATOPTS
HYSTER /
START
06 'NOV' 1997 /
EQLDIMS
5 100 20 /
EQLOPTS
'THPRES' / no fine equilibration if swatinit is being used
REGDIMS
-- ntfip nmfipr nrfreg ntfreg
22 3 1* 20 /
TRACERS
-- oil water gas env
1* 7 1* 1* /
WELLDIMS
130 36 15 84 /
TABDIMS
--ntsfun ntpvt nssfun nppvt ntfip nrpvt ntendp
2 2 33 60 16 60 /
-- WI_VFP_TABLES_080905.INC = 10-20
VFPIDIMS
30 20 20 /
-- Table no.
-- DevNew.VFP = 1
-- E1h.VFP = 2
-- AlmostVertNew.VFP = 3
-- GasProd.VFP = 4
-- NEW_D2_GAS_0.00003.VFP = 5
-- GAS_PD2.VFP = 6
-- pd2.VFP = 8 (flowline south)
-- pe2.VFP = 9 (flowline north)
-- PB1.PIPE.Ecl = 31
-- PB2.PIPE.Ecl = 32
-- PD1.PIPE.Ecl = 33
-- PD2.PIPE.Ecl = 34
-- PE1.PIPE.Ecl = 35
-- PE2.PIPE.Ecl = 36
-- B1BH.Ecl = 37
-- B2H.Ecl = 38
-- B3H.Ecl = 39
-- B4DH. Ecl= 40
-- D1CH.Ecl = 41
-- D2H.Ecl = 42
-- D3BH.Ecl = 43
-- E1H.Ecl = 45
-- E3CH.Ecl = 47
-- K3H.Ecl = 48
VFPPDIMS
19 10 10 10 0 50 /
FAULTDIM
10000 /
PIMTDIMS
1 51 /
NSTACK
30 /
UNIFIN
UNIFOUT
--FMTOUT
--FMTIN
OPTIONS
77* 1 /
---------------------------------------------------------
--
-- Input of grid geometry
--
---------------------------------------------------------
GRID
NEWTRAN
-- Ask for an EGRID file; no .GRID output.
GRIDFILE
0 1 /
-- optional for postprocessing of GRID
MAPAXES
0. 100. 0. 0. 100. 0. /
GRIDUNIT
METRES /
-- requests output of INIT file
INIT
MESSAGES
8*10000 20000 10000 1000 1* /
PINCH
0.001 GAP 1* TOPBOT TOP/
NOECHO
--------------------------------------------------------
--
-- Grid and faults
--
--------------------------------------------------------
-- Simulation grid, with slooping faults:
-- file in UTM coordinate system, for importing to DecisionSpace
INCLUDE
'./INCLUDE/GRID/IRAP_1005.GRDECL' /
--
INCLUDE
'./INCLUDE/GRID/ACTNUM_0704.prop' /
-- Faults
INCLUDE
'./INCLUDE/FAULT/FAULT_JUN_05.INC' /
-- Alteration of transmiscibility by use of the 'MULTFLT' keyword
INCLUDE
'./INCLUDE/FAULT/FAULTMULT_AUG-2006.INC' /
--------------------------------------------------------
--
-- Input of grid parametres
--
--------------------------------------------------------
--
INCLUDE
'./INCLUDE/PETRO/PORO_0704.prop' /
INCLUDE
'./INCLUDE/PETRO/NTG_0704.prop' /
INCLUDE
'./INCLUDE/PETRO/PERM_0704.prop' /
COPY
PERMX PERMY /
PERMX PERMZ /
/
-- based on same kv/kh factor
MULTIPLY
'PERMZ' 0.2 1 46 1 112 1 1 / Garn 3
'PERMZ' 0.04 1 46 1 112 2 2 / Garn 2
'PERMZ' 0.25 1 46 1 112 3 3 / Garn 1
'PERMZ' 0.0 1 46 1 112 4 4 / Not (inactive anyway)
'PERMZ' 0.13 1 46 1 112 5 5 / Ile 2.2
'PERMZ' 0.13 1 46 1 112 6 6 / Ile 2.1.3
'PERMZ' 0.13 1 46 1 112 7 7 / Ile 2.1.2
'PERMZ' 0.13 1 46 1 112 8 8 / Ile 2.1.1
'PERMZ' 0.09 1 46 1 112 9 9 / Ile 1.3
'PERMZ' 0.07 1 46 1 112 10 10 / Ile 1.2
'PERMZ' 0.19 1 46 1 112 11 11 / Ile 1.1
'PERMZ' 0.13 1 46 1 112 12 12 / Tofte 2.2
'PERMZ' 0.64 1 46 1 112 13 13 / Tofte 2.1.3
'PERMZ' 0.64 1 46 1 112 14 14 / Tofte 2.1.2
'PERMZ' 0.64 1 46 1 112 15 15 / Tofte 2.1.1
'PERMZ' 0.64 1 46 1 112 16 16 / Tofte 1.2.2
'PERMZ' 0.64 1 46 1 112 17 17 / Tofte 1.2.1
'PERMZ' 0.016 1 46 1 112 18 18 / Tofte 1.1
'PERMZ' 0.004 1 46 1 112 19 19 / Tilje 4
'PERMZ' 0.004 1 46 1 112 20 20 / Tilje 3
'PERMZ' 1.0 1 46 1 112 21 21 / Tilje 2
'PERMZ' 1.0 1 46 1 112 22 22 / Tilje 1
/
--------------------------------------------------------
--
-- Barriers
--
--------------------------------------------------------
-- MULTZ multiplies the transmissibility between blocks
-- (I, J, K) and (I, J, K+1), thus the barriers are at the
-- bottom of the given layer.
-- Region barriers
INCLUDE
'./INCLUDE/PETRO/MULTZ_HM_1.INC' /
-- Field-wide barriers
EQUALS
'MULTZ' 1.0 1 46 1 112 1 1 / Garn3 - Garn 2
'MULTZ' 0.05 1 46 1 112 15 15 / Tofte 2.1.1 - Tofte 1.2.2
'MULTZ' 0.001 1 46 1 112 18 18 / Tofte 1.1 - Tilje 4
'MULTZ' 0.00001 1 46 1 112 20 20 / Tilje 3 - Tilje 2
-- The Top Tilje 2 barrier is included as MULTREGT = 0.0
/
-- Local barriers
INCLUDE
'./INCLUDE/PETRO/MULTZ_JUN_05_MOD.INC' /
-- 20 flux regions generated by the script Xfluxnum
INCLUDE
'./INCLUDE/PETRO/FLUXNUM_0704.prop' /
-- modify transmissibilites between fluxnum using MULTREGT
INCLUDE
'./INCLUDE/PETRO/MULTREGT_D_27.prop' /
NOECHO
MINPV
500 /
EDIT
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
PROPS
--------------------------------------------------------------------------------
--
-- Input of fluid properties and relative permeability
--
---------------------------------------------------------
NOECHO
INCLUDE
'./INCLUDE/PVT/PVT-WET-GAS.INC' /
TRACER
SEA WAT /
HTO WAT /
S36 WAT /
2FB WAT /
4FB WAT /
DFB WAT /
TFB WAT /
/
-- initial water saturation
INCLUDE
'./INCLUDE/PETRO/SWINITIAL.INC' /
-- relative perm.
INCLUDE
'./INCLUDE/RELPERM/SCAL_NORNE.INC' /
SCALECRS
YES /
-- endpoints may be used as tuning papameters
EQUALS
SWL 0.04 1 46 1 112 1 1 /
SWL 0.05 1 46 1 112 2 2 /
SWL 0.15 1 46 1 112 3 3 /
SWL 0.15 1 46 1 112 4 4 /
SWL 0.05 1 46 1 112 5 10 / Ile 2.2.2 and Ile 2.2.1, Ile 2.1.3, Ile 2.1.2, and Ile 2.1.1 Ile 1.3 and Ile 1.2
SWL 0.16 1 46 1 112 11 12 / ile 1.1 and tofte 2.2
SWL 0.07 1 46 1 112 13 15 / tofte 2.1
SWL 0.06 1 46 1 112 16 16 / tofte 1.2.2
SWL 0.12 1 46 1 112 17 22 / Tofte 1.2.1, Tofte 1.2.1, tofte 1.1, tilje
/
COPY
SWL SWCR /
SWL SGU /
/
ADD
SWCR 0.08 1 46 1 112 1 22 /
/
-- SGU = 1 - SWL
MULTIPLY
SGU -1 1 46 1 112 1 22 /
/
ADD
SGU 1 1 46 1 112 1 22 /
/
EQUALS
SGL 0.0 1 46 1 112 1 22 /
SGCR 0.03 1 46 1 112 1 22 /
SOWCR 0.13 1 46 1 112 1 22 /
SOGCR 0.07 1 46 1 112 1 22 /
SWU 1.0 1 46 1 112 1 22 /
/
-- Hysteresis input
EHYSTR
0.1 0 0.1 1* KR /
COPY
'SWCR' 'ISWCR' 1 46 1 112 5 22 /
'SGU' 'ISGU' 1 46 1 112 5 22 /
'SWL' 'ISWL' 1 46 1 112 5 22 /
'SWU' 'ISWU' 1 46 1 112 5 22 /
'SGL' 'ISGL' 1 46 1 112 5 22 /
'SOGCR' 'ISOGCR' 1 46 1 112 5 22 /
'SOWCR' 'ISOWCR' 1 46 1 112 5 22 /
/
EQUALS
ISGCR 0.22 1 46 1 112 1 22 /
/
RPTPROPS
1 1 1 5*0 0 /
--------------------------------------------------------------------------------
REGIONS
--
INCLUDE
'./INCLUDE/PETRO/FIPNUM_0704.prop' /
EQUALS
'SATNUM' 1 1 46 1 112 1 22 /
'IMBNUM' 2 1 46 1 112 1 22 /
'PVTNUM' 1 1 46 1 112 1 22 /
/
INCLUDE
'./INCLUDE/PETRO/EQLNUM_0704.prop' /
-- extra regions for geological formations and numerical layers
--INCLUDE
-- './INCLUDE/PETRO/EXTRA_REG.inc' /
---------------------------------------------------------------------------------
SOLUTION
RPTRST
BASIC=2 KRO KRW KRG /
RPTSOL
FIP=3 SWAT /
---------------------------------------------------------------------------------
-- equilibrium data: do not include this file in case of RESTART
INCLUDE
'./INCLUDE/PETRO/E3.prop' /
THPRES
1 2 0.588031 /
2 1 0.588031 /
1 3 0.787619 /
3 1 0.787619 /
1 4 7.00083 /
4 1 7.00083 /
/
-- initialise injected tracers to zero
TVDPFSEA
1000 0.0
5000 0.0 /
TVDPFHTO
1000 0.0
5000 0.0 /
TVDPFS36
1000 0.0
5000 0.0 /
TVDPF2FB
1000 0.0
5000 0.0 /
TVDPF4FB
1000 0.0
5000 0.0 /
TVDPFDFB
1000 0.0
5000 0.0 /
TVDPFTFB
1000 0.0
5000 0.0 /
-------------------------------------------------------------------------------
SUMMARY
NEWTON
MLINEARS
--
INCLUDE
'./INCLUDE/SUMMARY/summary.data' /
--
--INCLUDE
-- './INCLUDE/SUMMARY/extra.inc' /
--
INCLUDE
'./INCLUDE/SUMMARY/tracer.data' /
--
INCLUDE
'./INCLUDE/SUMMARY/gas.inc' /
--
INCLUDE
'./INCLUDE/SUMMARY/wpave.inc' /
--------------------------------------------------------------------------------
SCHEDULE
DRSDT
0 /
NOECHO
--------------------------------------------
--=======Production Wells========--
--------------------------------------------
--
INCLUDE
'./INCLUDE/VFP/DevNew.VFP' /
--
INCLUDE
'./INCLUDE/VFP/E1h.VFP' /
--
INCLUDE
'./INCLUDE/VFP/NEW_D2_GAS_0.00003.VFP' /
--
INCLUDE
'./INCLUDE/VFP/GAS_PD2.VFP' /
--
INCLUDE
'./INCLUDE/VFP/AlmostVertNew.VFP' /
--
INCLUDE
'./INCLUDE/VFP/GasProd.VFP' /
-- 01.01.07 new VFP curves for producing wells, matched with the latest well tests in Prosper. lmarr
--
INCLUDE
'./INCLUDE/VFP/B1BH.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/B2H.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/B3H.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/B4DH.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/D1CH.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/D2H.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/D3BH.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/E1H.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/E3CH.Ecl' /
--
INCLUDE
'./INCLUDE/VFP/K3H.Ecl' /
--------------------------------------------
--=======Production Flowlines========--
--------------------------------------------
--
-- 16.5.02 new VFP curves for southgoing PD1,PD2,PB1,PB2 flowlines -> pd2.VFP
--
INCLUDE
'./INCLUDE/VFP/pd2.VFP' /
--
-- 16.5.02 new VFP curves for northgoing PE1,PE2 flowlines -> pe2.VFP
--
INCLUDE
'./INCLUDE/VFP/pe2.VFP' /
-- 24.11.06 new matched VLP curves for PB1 valid from 01.07.06
--
INCLUDE
'./INCLUDE/VFP/PB1.PIPE.Ecl' /
--24.11.06 new matched VLP curves for PB2 valid from 01.07.06
--
INCLUDE
'./INCLUDE/VFP/PB2.PIPE.Ecl' /
--24.11.06 new matched VLP curves for PD1 valid from 01.07.06
--
INCLUDE
'./INCLUDE/VFP/PD1.PIPE.Ecl' /
--24.11.06 new matched VLP curves for PD2 valid from 01.07.06
--
INCLUDE
'./INCLUDE/VFP/PD2.PIPE.Ecl' /
--24.11.06 new matched VLP curves for PE1 valid from 01.07.06
--
INCLUDE
'./INCLUDE/VFP/PE1.PIPE.Ecl' /
--24.11.06 new matched VLP curves for PE2 valid from 01.07.06
--
INCLUDE
'./INCLUDE/VFP/PE2.PIPE.Ecl' /
-------------------------------------------
--=======INJECTION FLOWLINES 08.09.2005 ========--
--------------------------------------------
-- VFPINJ nr. 10 Water injection flowline WIC
--
INCLUDE
'./INCLUDE/VFP/WIC.PIPE.Ecl' /
-- VFPINJ nr. 11 Water injection flowline WIF
--
INCLUDE
'./INCLUDE/VFP/WIF.PIPE.Ecl' /
--------------------------------------------
--======= INJECTION Wells 08.09.2005 ========--
--------------------------------------------
-- VFPINJ nr. 12 Water injection wellbore Norne C-1H
--
INCLUDE
'./INCLUDE/VFP/C1H.Ecl' /
-- VFPINJ nr. 13 Water injection wellbore Norne C-2H
--
INCLUDE
'./INCLUDE/VFP/C2H.Ecl' /
-- VFPINJ nr. 14 Water injection wellbore Norne C-3H
--
INCLUDE
'./INCLUDE/VFP/C3H.Ecl' /
-- VFPINJ nr. 15 Water injection wellbore Norne C-4H
--
INCLUDE
'./INCLUDE/VFP/C4H.Ecl' /
-- VFPINJ nr. 16 Water injection wellbore Norne C-4AH
--
INCLUDE
'./INCLUDE/VFP/C4AH.Ecl' /
-- VFPINJ nr. 17 Water injection wellbore Norne F-1H
--
INCLUDE
'./INCLUDE/VFP/F1H.Ecl' /
-- VFPINJ nr. 18 Water injection wellbore Norne F-2H
--
INCLUDE
'./INCLUDE/VFP/F2H.Ecl' /
-- VFPINJ nr. 19 Water injection wellbore Norne F-3 H
--
INCLUDE
'./INCLUDE/VFP/F3H.Ecl' /
-- VFPINJ nr. 20 Water injection wellbore Norne F-4H
--
INCLUDE
'./INCLUDE/VFP/F4H.Ecl' /
TUNING
1 10 0.1 0.15 3 0.3 0.3 1.20 /
5* 0.1 0.0001 0.02 0.02 /
2* 40 1* 15 /
/
-- only possible for ECL 2006.2+ version
ZIPPY2
'SIM=4.2' 'MINSTEP=1E-6' /
-- PI reduction in case of water cut
INCLUDE
'./INCLUDE/PI/pimultab_low-high_aug-2006.inc' /
-- History
INCLUDE
'./INCLUDE/BC0407_HIST01122006.SCH' /
END

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,73 +0,0 @@
#!/usr/bin/env python
import sys
from os.path import isdir, join
from datetime import datetime as dt
import opm.io
from opm.io import Parser, ParseContext
from opm.io.ecl_state import EclipseState
from opm.io.schedule import Schedule
from opm.io.summary import SummaryConfig
def opmdatadir():
global OPMDATA_DIR
if isdir(OPMDATA_DIR):
return OPMDATA_DIR
if len(sys.argv) < 2:
return None
d = sys.argv[1]
if isdir(d) and isdir(join(d, 'norne')):
return d
return None
def haveopmdata():
return opmdatadir() is not None
def parse(fname):
s = dt.now()
ps = ParseContext([('PARSE_RANDOM_SLASH', opm.io.action.ignore)])
deck = Parser().parse(fname, ps)
e = dt.now()
print('Parsing took %s sec' % (e - s).seconds)
return deck
def swof_krw(ecl):
assert('SWOF' in ecl.tables())
krw = lambda x: ecl.tables().evaluate('SWOF', 0, 'KRW', x)
krow = lambda x: ecl.tables().evaluate('SWOF', 0, 'KROW', x)
pcow = lambda x: ecl.tables().evaluate('SWOF', 0, 'PCOW', x)
print('SWOF\tKRW\tKROW\tPCOW')
for i in range(21):
print('%.2f\t%.4f\t%.4f\t%.4f' % (i/20.0, krw(i/20.0), krow(i/20.0), pcow(i/20.0)))
def main():
deck = parse(join(opmdatadir(), 'norne/NORNE_ATW2013.DATA'))
es = EclipseState(deck)
sc = Schedule(deck, es)
wp = sc.get_wells(100)[20]
wi = sc.get_wells(100)[19]
fn = es.faultNames()
f0 = fn[0]
fl = es.faultFaces(f0)
print('state: %s' % es)
print('schedule: %s' % sc)
print('the grid: %s' % es.grid())
print('at timestep 100 (%s)' % sc.timesteps[100])
print('prod well: %s' % wp)
print('inj well: %s' % wi)
print('pos: %s' % list(wp.pos()))
print('fault: %s' % f0)
print(' comprised of %d cells' % len(fl))
swof_krw(es)
if __name__ == '__main__':
global OPMDATA_DIR
OPMDATA_DIR = '../../opm-data'
if haveopmdata():
print('Found norne, parsing ...')
main()
else:
print('Need to have path "%s" or give opm-data as argument' % OPMDATA_DIR)

View File

@@ -1,74 +0,0 @@
#!/usr/bin/env python
import sys
from os.path import isdir, join
from datetime import datetime as dt
import numpy as np
import matplotlib.pyplot as plt
import opm.io
from opm.io.parser import Parser, ParseContext
from opm.io.ecl_state import EclipseState
from opm.io.schedule import Schedule
def plotswof(ecl):
assert('SWOF' in ecl.tables())
krw = lambda x: ecl.tables().evaluate('SWOF', 0, 'KRW', x)
krow = lambda x: ecl.tables().evaluate('SWOF', 0, 'KROW', x)
pcow = lambda x: ecl.tables().evaluate('SWOF', 0, 'PCOW', x)
swofl = [x/20.0 for x in range(21)]
krwl = [krw(x/20.0) for x in range(21)]
krowl = [krow(x/20.0) for x in range(21)]
pcowl = [pcow(x/20.0) for x in range(21)]
plt.figure(1)
plt.plot(swofl, krwl, label = 'KRW')
plt.plot(swofl, krowl, label = 'KROW')
plt.legend()
plt.show()
plt.figure(2)
plt.plot(swofl, pcowl, label = 'Water-oil capillary pressure')
plt.legend()
plt.show()
def opmdatadir():
global OPMDATA_DIR
if isdir(OPMDATA_DIR):
return OPMDATA_DIR
if len(sys.argv) < 2:
return None
d = sys.argv[1]
if isdir(d) and isdir(join(d, 'norne')):
return d
return None
def haveopmdata():
return opmdatadir() is not None
def parse(fname):
s = dt.now()
ps = ParseContext([('PARSE_RANDOM_SLASH', opm.io.action.ignore)])
deck = Parser().parse(fname, ps)
es = EclipseState(deck)
e = dt.now()
print('Parsing took %s sec' % (e - s).seconds)
return es
def main():
es = parse(join(opmdatadir(), 'norne/NORNE_ATW2013.DATA'))
plotswof(es)
if __name__ == '__main__':
global OPMDATA_DIR
OPMDATA_DIR = '../../opm-data'
if haveopmdata():
print('Found norne, parsing ...')
main()
else:
print('Need to have path "%s" or give opm-data as argument' % OPMDATA_DIR)

View File

@@ -1,22 +0,0 @@
from opm.io.parser import Parser
from opm.io.ecl_state import EclipseState
from opm.io.schedule import Schedule
def main():
deck = Parser().parse('../tests/spe3/SPE3CASE1.DATA')
es = EclipseState(deck)
sc = Schedule(deck, es)
wp = sc.get_wells(0)[0] # producer
wi = sc.get_wells(0)[1] # injector
print('state: %s' % es)
print('schedule: %s' % sc)
print('prod well: %s' % wp)
print('inj well: %s' % wi)
for i in range(len(sc.timesteps)):
if not sc.get_wells(i)[0].isproducer() or sc.get_wells(i)[0].isinjector():
print('wp is not producer in step %s' % sc.timesteps[i])
if not sc.get_wells(i)[1].isinjector() or sc.get_wells(i)[1].isproducer():
print('wi is not injector in step %s' % sc.timesteps[i])
if __name__ == '__main__':
main()

View File

@@ -1,46 +0,0 @@
import sys
import os
import shutil
import compileall
import filecmp
src_root = sys.argv[1]
target_prefix = sys.argv[2]
install = int(sys.argv[3])
target_destdir = os.environ.get("DESTDIR", "")
if not target_destdir is "":
target_prefix = target_destdir + target_prefix
if not os.path.isdir(src_root):
sys.exit("No such directory: {}".format(src_root))
path_offset = len(os.path.dirname(src_root))
for path,_ ,fnames in os.walk(src_root):
target_path = os.path.join(target_prefix, path[path_offset+1:])
if not os.path.isdir(target_path):
os.makedirs(target_path)
for f in fnames:
_, ext = os.path.splitext(f)
if ext == ".pyc":
continue
if ext == ".in":
continue
src_file = os.path.join(path, f)
target_file = os.path.join(target_path, f)
if not os.path.isfile(target_file):
shutil.copy(src_file, target_file)
elif not filecmp.cmp(src_file, target_file):
shutil.copy(src_file, target_file)
if install:
print("-- Installing: {}".format(target_file))
if install:
target_root = os.path.join(target_prefix, os.path.basename(src_root))
compileall.compile_dir(target_root)

View File

@@ -1,70 +0,0 @@
version: 1.0.{build}
image:
- Visual Studio 2017
- Visual Studio 2015
test: off
skip_branch_with_pr: true
build:
parallel: true
platform:
- x64
- x86
environment:
matrix:
- PYTHON: 36
CPP: 14
CONFIG: Debug
- PYTHON: 27
CPP: 14
CONFIG: Debug
- CONDA: 36
CPP: latest
CONFIG: Release
matrix:
exclude:
- image: Visual Studio 2015
platform: x86
- image: Visual Studio 2015
CPP: latest
- image: Visual Studio 2017
CPP: latest
platform: x86
install:
- ps: |
if ($env:PLATFORM -eq "x64") { $env:CMAKE_ARCH = "x64" }
if ($env:APPVEYOR_JOB_NAME -like "*Visual Studio 2017*") {
$env:CMAKE_GENERATOR = "Visual Studio 15 2017"
$env:CMAKE_INCLUDE_PATH = "C:\Libraries\boost_1_64_0"
$env:CXXFLAGS = "-permissive-"
} else {
$env:CMAKE_GENERATOR = "Visual Studio 14 2015"
}
if ($env:PYTHON) {
if ($env:PLATFORM -eq "x64") { $env:PYTHON = "$env:PYTHON-x64" }
$env:PATH = "C:\Python$env:PYTHON\;C:\Python$env:PYTHON\Scripts\;$env:PATH"
python -W ignore -m pip install --upgrade pip wheel
python -W ignore -m pip install pytest numpy --no-warn-script-location
} elseif ($env:CONDA) {
if ($env:CONDA -eq "27") { $env:CONDA = "" }
if ($env:PLATFORM -eq "x64") { $env:CONDA = "$env:CONDA-x64" }
$env:PATH = "C:\Miniconda$env:CONDA\;C:\Miniconda$env:CONDA\Scripts\;$env:PATH"
$env:PYTHONHOME = "C:\Miniconda$env:CONDA"
conda --version
conda install -y -q pytest numpy scipy
}
- ps: |
Start-FileDownload 'http://bitbucket.org/eigen/eigen/get/3.3.3.zip'
7z x 3.3.3.zip -y > $null
$env:CMAKE_INCLUDE_PATH = "eigen-eigen-67e894c6cd8f;$env:CMAKE_INCLUDE_PATH"
build_script:
- cmake -G "%CMAKE_GENERATOR%" -A "%CMAKE_ARCH%"
-DPYBIND11_CPP_STANDARD=/std:c++%CPP%
-DPYBIND11_WERROR=ON
-DDOWNLOAD_CATCH=ON
-DCMAKE_SUPPRESS_REGENERATION=1
.
- set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- cmake --build . --config %CONFIG% --target pytest -- /m /v:m /logger:%MSBuildLogger%
- cmake --build . --config %CONFIG% --target cpptest -- /m /v:m /logger:%MSBuildLogger%
- if "%CPP%"=="latest" (cmake --build . --config %CONFIG% --target test_cmake_build -- /m /v:m /logger:%MSBuildLogger%)
on_failure: if exist "tests\test_cmake_build" type tests\test_cmake_build\*.log*

View File

@@ -1,38 +0,0 @@
CMakeCache.txt
CMakeFiles
Makefile
cmake_install.cmake
.DS_Store
*.so
*.pyd
*.dll
*.sln
*.sdf
*.opensdf
*.vcxproj
*.filters
example.dir
Win32
x64
Release
Debug
.vs
CTestTestfile.cmake
Testing
autogen
MANIFEST
/.ninja_*
/*.ninja
/docs/.build
*.py[co]
*.egg-info
*~
.*.swp
.DS_Store
/dist
/build
/cmake/
.cache/
sosize-*.txt
pybind11Config*.cmake
pybind11Targets.cmake

View File

@@ -1,3 +0,0 @@
[submodule "tools/clang"]
path = tools/clang
url = ../../wjakob/clang-cindex-python3

View File

@@ -1,3 +0,0 @@
python:
version: 3
requirements_file: docs/requirements.txt

View File

@@ -1,280 +0,0 @@
language: cpp
matrix:
include:
# This config does a few things:
# - Checks C++ and Python code styles (check-style.sh and flake8).
# - Makes sure sphinx can build the docs without any errors or warnings.
# - Tests setup.py sdist and install (all header files should be present).
# - Makes sure that everything still works without optional deps (numpy/scipy/eigen) and
# also tests the automatic discovery functions in CMake (Python version, C++ standard).
- os: linux
dist: xenial # Necessary to run doxygen 1.8.15
name: Style, docs, and pip
cache: false
before_install:
- pyenv global $(pyenv whence 2to3) # activate all python versions
- PY_CMD=python3
- $PY_CMD -m pip install --user --upgrade pip wheel setuptools
install:
- $PY_CMD -m pip install --user --upgrade sphinx sphinx_rtd_theme breathe flake8 pep8-naming pytest
- curl -fsSL https://sourceforge.net/projects/doxygen/files/rel-1.8.15/doxygen-1.8.15.linux.bin.tar.gz/download | tar xz
- export PATH="$PWD/doxygen-1.8.15/bin:$PATH"
script:
- tools/check-style.sh
- flake8
- $PY_CMD -m sphinx -W -b html docs docs/.build
- |
# Make sure setup.py distributes and installs all the headers
$PY_CMD setup.py sdist
$PY_CMD -m pip install --user -U ./dist/*
installed=$($PY_CMD -c "import pybind11; print(pybind11.get_include(True) + '/pybind11')")
diff -rq $installed ./include/pybind11
- |
# Barebones build
cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) .
make pytest -j 2
make cpptest -j 2
# The following are regular test configurations, including optional dependencies.
# With regard to each other they differ in Python version, C++ standard and compiler.
- os: linux
dist: trusty
name: Python 2.7, c++11, gcc 4.8
env: PYTHON=2.7 CPP=11 GCC=4.8
addons:
apt:
packages:
- cmake=2.\*
- cmake-data=2.\*
- os: linux
dist: trusty
name: Python 3.6, c++11, gcc 4.8
env: PYTHON=3.6 CPP=11 GCC=4.8
addons:
apt:
sources:
- deadsnakes
packages:
- python3.6-dev
- python3.6-venv
- cmake=2.\*
- cmake-data=2.\*
- os: linux
dist: trusty
env: PYTHON=2.7 CPP=14 GCC=6 CMAKE=1
name: Python 2.7, c++14, gcc 4.8, CMake test
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- os: linux
dist: trusty
name: Python 3.5, c++14, gcc 6, Debug build
# N.B. `ensurepip` could be installed transitively by `python3.5-venv`, but
# seems to have apt conflicts (at least for Trusty). Use Docker instead.
services: docker
env: DOCKER=debian:stretch PYTHON=3.5 CPP=14 GCC=6 DEBUG=1
- os: linux
dist: xenial
env: PYTHON=3.6 CPP=17 GCC=7
name: Python 3.6, c++17, gcc 7
addons:
apt:
sources:
- deadsnakes
- ubuntu-toolchain-r-test
packages:
- g++-7
- python3.6-dev
- python3.6-venv
- os: linux
dist: xenial
env: PYTHON=3.6 CPP=17 CLANG=7
name: Python 3.6, c++17, Clang 7
addons:
apt:
sources:
- deadsnakes
- llvm-toolchain-xenial-7
packages:
- python3.6-dev
- python3.6-venv
- clang-7
- libclang-7-dev
- llvm-7-dev
- lld-7
- libc++-7-dev
- libc++abi-7-dev # Why is this necessary???
- os: osx
name: Python 2.7, c++14, AppleClang 7.3, CMake test
osx_image: xcode7.3
env: PYTHON=2.7 CPP=14 CLANG CMAKE=1
- os: osx
name: Python 3.7, c++14, AppleClang 9, Debug build
osx_image: xcode9
env: PYTHON=3.7 CPP=14 CLANG DEBUG=1
# Test a PyPy 2.7 build
- os: linux
dist: trusty
env: PYPY=5.8 PYTHON=2.7 CPP=11 GCC=4.8
name: PyPy 5.8, Python 2.7, c++11, gcc 4.8
addons:
apt:
packages:
- libblas-dev
- liblapack-dev
- gfortran
# Build in 32-bit mode and tests against the CMake-installed version
- os: linux
dist: trusty
services: docker
env: DOCKER=i386/debian:stretch PYTHON=3.5 CPP=14 GCC=6 INSTALL=1
name: Python 3.4, c++14, gcc 6, 32-bit
script:
- |
# Consolidated 32-bit Docker Build + Install
set -ex
$SCRIPT_RUN_PREFIX sh -c "
set -ex
cmake ${CMAKE_EXTRA_ARGS} -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0 .
make install
cp -a tests /pybind11-tests
mkdir /build-tests && cd /build-tests
cmake ../pybind11-tests ${CMAKE_EXTRA_ARGS} -DPYBIND11_WERROR=ON
make pytest -j 2"
set +ex
cache:
directories:
- $HOME/.local/bin
- $HOME/.local/lib
- $HOME/.local/include
- $HOME/Library/Python
before_install:
- |
# Configure build variables
set -ex
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
if [ -n "$CLANG" ]; then
export CXX=clang++-$CLANG CC=clang-$CLANG
EXTRA_PACKAGES+=" clang-$CLANG llvm-$CLANG-dev"
else
if [ -z "$GCC" ]; then GCC=4.8
else EXTRA_PACKAGES+=" g++-$GCC"
fi
export CXX=g++-$GCC CC=gcc-$GCC
fi
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
export CXX=clang++ CC=clang;
fi
if [ -n "$CPP" ]; then CPP=-std=c++$CPP; fi
if [ "${PYTHON:0:1}" = "3" ]; then PY=3; fi
if [ -n "$DEBUG" ]; then CMAKE_EXTRA_ARGS+=" -DCMAKE_BUILD_TYPE=Debug"; fi
set +ex
- |
# Initialize environment
set -ex
if [ -n "$DOCKER" ]; then
docker pull $DOCKER
containerid=$(docker run --detach --tty \
--volume="$PWD":/pybind11 --workdir=/pybind11 \
--env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
--env=GCC_COLORS=\ \
$DOCKER)
SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
$SCRIPT_RUN_PREFIX sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done'
else
if [ "$PYPY" = "5.8" ]; then
curl -fSL https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux64.tar.bz2 | tar xj
PY_CMD=$(echo `pwd`/pypy2-v5.8.0-linux64/bin/pypy)
CMAKE_EXTRA_ARGS+=" -DPYTHON_EXECUTABLE:FILEPATH=$PY_CMD"
else
PY_CMD=python$PYTHON
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
if [ "$PY" = "3" ]; then
brew update && brew upgrade python
else
curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user
fi
fi
fi
if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then
$PY_CMD -m ensurepip --user
fi
$PY_CMD --version
$PY_CMD -m pip install --user --upgrade pip wheel
fi
set +ex
install:
- |
# Install dependencies
set -ex
cmake --version
if [ -n "$DOCKER" ]; then
if [ -n "$DEBUG" ]; then
PY_DEBUG="python$PYTHON-dbg python$PY-scipy-dbg"
CMAKE_EXTRA_ARGS+=" -DPYTHON_EXECUTABLE=/usr/bin/python${PYTHON}dm"
fi
$SCRIPT_RUN_PREFIX sh -c "for s in 0 15; do sleep \$s; \
apt-get -qy --no-install-recommends install \
$PY_DEBUG python$PYTHON-dev python$PY-pytest python$PY-scipy \
libeigen3-dev libboost-dev cmake make ${EXTRA_PACKAGES} && break; done"
else
if [ "$CLANG" = "7" ]; then
export CXXFLAGS="-stdlib=libc++"
fi
export NPY_NUM_BUILD_JOBS=2
echo "Installing pytest, numpy, scipy..."
local PIP_CMD=""
if [ -n $PYPY ]; then
# For expediency, install only versions that are available on the extra index.
travis_wait 30 \
$PY_CMD -m pip install --user --upgrade --extra-index-url https://imaginary.ca/trusty-pypi \
pytest numpy==1.15.4 scipy==1.2.0
else
$PY_CMD -m pip install --user --upgrade pytest numpy scipy
fi
echo "done."
mkdir eigen
curl -fsSL https://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2 | \
tar --extract -j --directory=eigen --strip-components=1
export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH:+$CMAKE_INCLUDE_PATH:}$PWD/eigen"
fi
set +ex
script:
- |
# CMake Configuration
set -ex
$SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS} \
-DPYBIND11_PYTHON_VERSION=$PYTHON \
-DPYBIND11_CPP_STANDARD=$CPP \
-DPYBIND11_WERROR=${WERROR:-ON} \
-DDOWNLOAD_CATCH=${DOWNLOAD_CATCH:-ON} \
.
set +ex
- |
# pytest
set -ex
$SCRIPT_RUN_PREFIX make pytest -j 2 VERBOSE=1
set +ex
- |
# cpptest
set -ex
$SCRIPT_RUN_PREFIX make cpptest -j 2
set +ex
- |
# CMake Build Interface
set -ex
if [ -n "$CMAKE" ]; then $SCRIPT_RUN_PREFIX make test_cmake_build; fi
set +ex
after_failure: cat tests/test_cmake_build/*.log*
after_script:
- |
# Cleanup (Docker)
set -ex
if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi
set +ex

View File

@@ -1,157 +0,0 @@
# CMakeLists.txt -- Build system for the pybind11 modules
#
# Copyright (c) 2015 Wenzel Jakob <wenzel@inf.ethz.ch>
#
# All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
cmake_minimum_required(VERSION 2.8.12)
if (POLICY CMP0048)
# cmake warns if loaded from a min-3.0-required parent dir, so silence the warning:
cmake_policy(SET CMP0048 NEW)
endif()
# CMake versions < 3.4.0 do not support try_compile/pthread checks without C as active language.
if(CMAKE_VERSION VERSION_LESS 3.4.0)
project(pybind11)
else()
project(pybind11 CXX)
endif()
# Check if pybind11 is being used directly or via add_subdirectory
set(PYBIND11_MASTER_PROJECT OFF)
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
set(PYBIND11_MASTER_PROJECT ON)
endif()
option(PYBIND11_INSTALL "Install pybind11 header files?" ${PYBIND11_MASTER_PROJECT})
option(PYBIND11_TEST "Build pybind11 test suite?" ${PYBIND11_MASTER_PROJECT})
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/tools")
include(pybind11Tools)
# Cache variables so pybind11_add_module can be used in parent projects
set(PYBIND11_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/include" CACHE INTERNAL "")
set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} CACHE INTERNAL "")
set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} CACHE INTERNAL "")
set(PYTHON_MODULE_PREFIX ${PYTHON_MODULE_PREFIX} CACHE INTERNAL "")
set(PYTHON_MODULE_EXTENSION ${PYTHON_MODULE_EXTENSION} CACHE INTERNAL "")
set(PYTHON_VERSION_MAJOR ${PYTHON_VERSION_MAJOR} CACHE INTERNAL "")
set(PYTHON_VERSION_MINOR ${PYTHON_VERSION_MINOR} CACHE INTERNAL "")
# NB: when adding a header don't forget to also add it to setup.py
set(PYBIND11_HEADERS
include/pybind11/detail/class.h
include/pybind11/detail/common.h
include/pybind11/detail/descr.h
include/pybind11/detail/init.h
include/pybind11/detail/internals.h
include/pybind11/detail/typeid.h
include/pybind11/attr.h
include/pybind11/buffer_info.h
include/pybind11/cast.h
include/pybind11/chrono.h
include/pybind11/common.h
include/pybind11/complex.h
include/pybind11/options.h
include/pybind11/eigen.h
include/pybind11/embed.h
include/pybind11/eval.h
include/pybind11/functional.h
include/pybind11/numpy.h
include/pybind11/operators.h
include/pybind11/pybind11.h
include/pybind11/pytypes.h
include/pybind11/stl.h
include/pybind11/stl_bind.h
)
string(REPLACE "include/" "${CMAKE_CURRENT_SOURCE_DIR}/include/"
PYBIND11_HEADERS "${PYBIND11_HEADERS}")
if (PYBIND11_TEST)
add_subdirectory(tests)
endif()
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
# extract project version from source
file(STRINGS "${PYBIND11_INCLUDE_DIR}/pybind11/detail/common.h" pybind11_version_defines
REGEX "#define PYBIND11_VERSION_(MAJOR|MINOR|PATCH) ")
foreach(ver ${pybind11_version_defines})
if (ver MATCHES "#define PYBIND11_VERSION_(MAJOR|MINOR|PATCH) +([^ ]+)$")
set(PYBIND11_VERSION_${CMAKE_MATCH_1} "${CMAKE_MATCH_2}" CACHE INTERNAL "")
endif()
endforeach()
set(${PROJECT_NAME}_VERSION ${PYBIND11_VERSION_MAJOR}.${PYBIND11_VERSION_MINOR}.${PYBIND11_VERSION_PATCH})
message(STATUS "pybind11 v${${PROJECT_NAME}_VERSION}")
option (USE_PYTHON_INCLUDE_DIR "Install pybind11 headers in Python include directory instead of default installation prefix" OFF)
if (USE_PYTHON_INCLUDE_DIR)
file(RELATIVE_PATH CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_PREFIX} ${PYTHON_INCLUDE_DIRS})
endif()
if(NOT (CMAKE_VERSION VERSION_LESS 3.0)) # CMake >= 3.0
# Build an interface library target:
add_library(pybind11 INTERFACE)
add_library(pybind11::pybind11 ALIAS pybind11) # to match exported target
target_include_directories(pybind11 INTERFACE $<BUILD_INTERFACE:${PYBIND11_INCLUDE_DIR}>
$<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_options(pybind11 INTERFACE $<BUILD_INTERFACE:${PYBIND11_CPP_STANDARD}>)
add_library(module INTERFACE)
add_library(pybind11::module ALIAS module)
if(NOT MSVC)
target_compile_options(module INTERFACE -fvisibility=hidden)
endif()
target_link_libraries(module INTERFACE pybind11::pybind11)
if(WIN32 OR CYGWIN)
target_link_libraries(module INTERFACE $<BUILD_INTERFACE:${PYTHON_LIBRARIES}>)
elseif(APPLE)
target_link_libraries(module INTERFACE "-undefined dynamic_lookup")
endif()
add_library(embed INTERFACE)
add_library(pybind11::embed ALIAS embed)
target_link_libraries(embed INTERFACE pybind11::pybind11 $<BUILD_INTERFACE:${PYTHON_LIBRARIES}>)
endif()
if (PYBIND11_INSTALL)
install(DIRECTORY ${PYBIND11_INCLUDE_DIR}/pybind11 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
# GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
set(PYBIND11_CMAKECONFIG_INSTALL_DIR "share/cmake/${PROJECT_NAME}" CACHE STRING "install path for pybind11Config.cmake")
configure_package_config_file(tools/${PROJECT_NAME}Config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION ${PYBIND11_CMAKECONFIG_INSTALL_DIR})
# Remove CMAKE_SIZEOF_VOID_P from ConfigVersion.cmake since the library does
# not depend on architecture specific settings or libraries.
set(_PYBIND11_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
unset(CMAKE_SIZEOF_VOID_P)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
VERSION ${${PROJECT_NAME}_VERSION}
COMPATIBILITY AnyNewerVersion)
set(CMAKE_SIZEOF_VOID_P ${_PYBIND11_CMAKE_SIZEOF_VOID_P})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
tools/FindPythonLibsNew.cmake
tools/pybind11Tools.cmake
DESTINATION ${PYBIND11_CMAKECONFIG_INSTALL_DIR})
if(NOT (CMAKE_VERSION VERSION_LESS 3.0))
if(NOT PYBIND11_EXPORT_NAME)
set(PYBIND11_EXPORT_NAME "${PROJECT_NAME}Targets")
endif()
install(TARGETS pybind11 module embed
EXPORT "${PYBIND11_EXPORT_NAME}")
if(PYBIND11_MASTER_PROJECT)
install(EXPORT "${PYBIND11_EXPORT_NAME}"
NAMESPACE "${PROJECT_NAME}::"
DESTINATION ${PYBIND11_CMAKECONFIG_INSTALL_DIR})
endif()
endif()
endif()

View File

@@ -1,49 +0,0 @@
Thank you for your interest in this project! Please refer to the following
sections on how to contribute code and bug reports.
### Reporting bugs
At the moment, this project is run in the spare time of a single person
([Wenzel Jakob](http://rgl.epfl.ch/people/wjakob)) with very limited resources
for issue tracker tickets. Thus, before submitting a question or bug report,
please take a moment of your time and ensure that your issue isn't already
discussed in the project documentation provided at
[http://pybind11.readthedocs.org/en/latest](http://pybind11.readthedocs.org/en/latest).
Assuming that you have identified a previously unknown problem or an important
question, it's essential that you submit a self-contained and minimal piece of
code that reproduces the problem. In other words: no external dependencies,
isolate the function(s) that cause breakage, submit matched and complete C++
and Python snippets that can be easily compiled and run on my end.
## Pull requests
Contributions are submitted, reviewed, and accepted using Github pull requests.
Please refer to [this
article](https://help.github.com/articles/using-pull-requests) for details and
adhere to the following rules to make the process as smooth as possible:
* Make a new branch for every feature you're working on.
* Make small and clean pull requests that are easy to review but make sure they
do add value by themselves.
* Add tests for any new functionality and run the test suite (``make pytest``)
to ensure that no existing features break.
* Please run ``flake8`` and ``tools/check-style.sh`` to check your code matches
the project style. (Note that ``check-style.sh`` requires ``gawk``.)
* This project has a strong focus on providing general solutions using a
minimal amount of code, thus small pull requests are greatly preferred.
### Licensing of contributions
pybind11 is provided under a BSD-style license that can be found in the
``LICENSE`` file. By using, distributing, or contributing to this project, you
agree to the terms and conditions of this license.
You are under no obligation whatsoever to provide any bug fixes, patches, or
upgrades to the features, functionality or performance of the source code
("Enhancements") to anyone; however, if you choose to make your Enhancements
available either publicly, or directly to the author of this software, without
imposing a separate written license agreement for such Enhancements, then you
hereby grant the following license: a non-exclusive, royalty-free perpetual
license to install, use, modify, prepare derivative works, incorporate into
other computer software, distribute, and sublicense such enhancements or
derivative works thereof, in binary and source code form.

View File

@@ -1,17 +0,0 @@
Make sure you've completed the following steps before submitting your issue -- thank you!
1. Check if your question has already been answered in the [FAQ](http://pybind11.readthedocs.io/en/latest/faq.html) section.
2. Make sure you've read the [documentation](http://pybind11.readthedocs.io/en/latest/). Your issue may be addressed there.
3. If those resources didn't help and you only have a short question (not a bug report), consider asking in the [Gitter chat room](https://gitter.im/pybind/Lobby).
4. If you have a genuine bug report or a more complex question which is not answered in the previous items (or not suitable for chat), please fill in the details below.
5. Include a self-contained and minimal piece of code that reproduces the problem. If that's not possible, try to make the description as clear as possible.
*After reading, remove this checklist and the template text in parentheses below.*
## Issue description
(Provide a short description, state the expected behavior and what actually happens.)
## Reproducible example code
(The code should be minimal, have no external dependencies, isolate the function(s) that cause breakage. Submit matched and complete C++ and Python snippets that can be easily compiled and run to diagnose the issue.)

View File

@@ -1,29 +0,0 @@
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Please also refer to the file CONTRIBUTING.md, which clarifies licensing of
external contributions to this project including patches, pull requests, etc.

View File

@@ -1,2 +0,0 @@
recursive-include include/pybind11 *.h
include LICENSE README.md CONTRIBUTING.md

Some files were not shown because too many files have changed in this diff Show More