opm-simulators/opm/core/InjectionSpecification.hpp
2012-03-27 16:57:01 +02:00

48 lines
1.3 KiB
C++

#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 */