Started reading the gruptree

This commit is contained in:
Kjetil Olsen Lye 2012-03-27 16:57:01 +02:00
parent d2e4f5d664
commit eedb506ad0
6 changed files with 284 additions and 0 deletions

View File

@ -0,0 +1,62 @@
#include <opm/core/InjectionSpecification.hpp>
namespace Opm {
InjectionSpecification::InjectionSpecification()
: component_(WATER), control_mode_(NONE), surface_injection_target_(0.0),
reinjection_fraction_target_(0.0), BHP_target_(0.0) {
}
InjectionSpecification::InjectionSpecification(const InjectionSpecification& orig) {
}
InjectionSpecification::~InjectionSpecification() {
}
InjectionSpecification::Component InjectionSpecification::component() {
return component_;
}
void InjectionSpecification::set_component(InjectionSpecification::Component comp) {
component_ = comp;
}
InjectionSpecification::ControlMode InjectionSpecification::control_mode() {
return control_mode_;
}
void InjectionSpecification::set_control_mode(InjectionSpecification::ControlMode mode) {
control_mode_ = mode;
}
/// \returns 0 if no limit, else the target/limit of the surface Injector
/// rate.
double InjectionSpecification::surface_injection_target() {
return surface_injection_target_;
}
void InjectionSpecification::set_surface_injection_target(double target) {
surface_injection_target_ = target;
}
/// \returns 0 if no limit, else the target/limit of the reInjector fraction
double InjectionSpecification::reinjection_fraction_target() {
return reinjection_fraction_target_;
}
void InjectionSpecification::set_reinjection_fraction_target(double target) {
reinjection_fraction_target_ = target;
}
/// \returns 0 if no limit, else the target/limit of the BHP
double InjectionSpecification::BHP_target() {
return BHP_target_;
}
void InjectionSpecification::set_BHP_target(double target) {
BHP_target_ = target;
}
} // namespace Opm

View File

@ -0,0 +1,47 @@
#ifndef OPM_INJECTORSPECIFICATION_HPP
#define OPM_INJECTORSPECIFICATION_HPP
namespace Opm {
class InjectionSpecification {
public:
enum Component {
GAS, OIL, WATER
};
enum ControlMode {
NONE, RATE, REIN, RESV, VREP, WGRA, FLD
};
InjectionSpecification();
InjectionSpecification(const InjectionSpecification& orig);
virtual ~InjectionSpecification();
Component component();
void set_component(Component comp);
ControlMode control_mode();
void set_control_mode(ControlMode mode);
/// \returns 0 if no limit, else the target/limit of the surface injection
/// rate.
double surface_injection_target();
void set_surface_injection_target(double target);
/// \returns 0 if no limit, else the target/limit of the reinjection fraction
double reinjection_fraction_target();
void set_reinjection_fraction_target(double target);
/// \returns 0 if no limit, else the target/limit of the BHP
double BHP_target();
void set_BHP_target(double target);
private:
Component component_;
ControlMode control_mode_;
double surface_injection_target_;
double reinjection_fraction_target_;
double BHP_target_;
};
}
#endif /* OPM_INJECTORSPECIFICATION_HPP */

View File

@ -0,0 +1,73 @@
#include <opm/core/ProductionSpecification.hpp>
namespace Opm {
ProductionSpecification::ProductionSpecification() :
component_(OIL),
control_mode_(NONE_CM),
procedure_(NONE_P),
oil_production_target_(-1.0),
water_production_target_(-1.0),
liquid_production_target_(-1.0),
BHP_target_(-1.0)
{
}
ProductionSpecification::~ProductionSpecification() {
}
void ProductionSpecification::set_BHP_target(double BHP_target_) {
this->BHP_target_ = BHP_target_;
}
double ProductionSpecification::get_BHP_target() const {
return BHP_target_;
}
void ProductionSpecification::set_liquid_production_target(double liquid_production_target_) {
this->liquid_production_target_ = liquid_production_target_;
}
double ProductionSpecification::get_liquid_production_target() const {
return liquid_production_target_;
}
void ProductionSpecification::set_water_production_target(double water_production_target_) {
this->water_production_target_ = water_production_target_;
}
double ProductionSpecification::get_water_production_target() const {
return water_production_target_;
}
void ProductionSpecification::set_oil_production_target(double oil_production_target_) {
this->oil_production_target_ = oil_production_target_;
}
double ProductionSpecification::get_oil_production_target() const {
return oil_production_target_;
}
void ProductionSpecification::set_procedure(ProductionSpecification::Procedure procedure_) {
this->procedure_ = procedure_;
}
ProductionSpecification::Procedure ProductionSpecification::get_procedure() const {
return procedure_;
}
void ProductionSpecification::set_control_mode(ProductionSpecification::ControlMode control_mode_) {
this->control_mode_ = control_mode_;
}
ProductionSpecification::ControlMode ProductionSpecification::get_control_mode() const {
return control_mode_;
}
void ProductionSpecification::set_component(ProductionSpecification::Component component_) {
this->component_ = component_;
}
ProductionSpecification::Component ProductionSpecification::get_component() const {
return component_;
}
}

View File

@ -0,0 +1,52 @@
#ifndef OPM_PRODUCTIONSPECIFICATION_HPP
#define OPM_PRODUCTIONSPECIFICATION_HPP
namespace Opm {
class ProductionSpecification {
public:
enum Component {
GAS, OIL, WATER
};
enum ControlMode {
NONE_CM, ORAT, WRAT, REIN, RESV, VREP, WGRA, FLD
};
enum Procedure {
WELL, RATE, NONE_P
};
ProductionSpecification();
virtual ~ProductionSpecification();
void set_BHP_target(double BHP_target_);
double get_BHP_target() const;
void set_liquid_production_target(double liquid_production_target_);
double get_liquid_production_target() const;
void set_water_production_target(double water_production_target_);
double get_water_production_target() const;
void set_oil_production_target(double oil_production_target_);
double get_oil_production_target() const;
void set_procedure(Procedure procedure_);
Procedure get_procedure() const;
void set_control_mode(ControlMode control_mode_);
ControlMode get_control_mode() const;
void set_component(Component component_);
Component get_component() const;
private:
Component component_;
ControlMode control_mode_;
Procedure procedure_;
double oil_production_target_;
double water_production_target_;
double liquid_production_target_;
double BHP_target_;
};
}
#endif /* OPM_PRODUCTIONSPECIFICATION_HPP */

20
opm/core/WellsGroup.cpp Normal file
View File

@ -0,0 +1,20 @@
/*
* File: WellsGroup.cpp
* Author: kjetilo
*
* Created on March 27, 2012, 9:27 AM
*/
#include "WellsGroup.hpp"
namespace Opm {
AbstractWellsGroup::AbstractWellsGroup() {
}
AbstractWellsGroup::~AbstractWellsGroup() {
}
const std::string& AbstractWellsGroup::get_name() {
return name_;
}
}
}

30
opm/core/WellsGroup.hpp Normal file
View File

@ -0,0 +1,30 @@
#ifndef OPM_WELLSGROUP_HPP
#define OPM_WELLSGROUP_HPP
#include <opm/core/InjectionSpecification.hpp>
#include <opm/core/ProductionSpecification.hpp>
namespace Opm {
class AbstractWellsGroup {
public:
AbstractWellsGroup(const std::string& name);
virtual ~AbstractWellsGroup();
const std::string& get_name();
const ProductionSpecification& get_production_specification() const;
const InjectionSpecification& get_injection_specification() const;
private:
std::string name_;
ProductionSpecification production_specification_;
InjectionSpecification injection_specification_;
};
class WellsGroup : public AbstractWellsGroup {
};
}
#endif /* OPM_WELLSGROUP_HPP */