00001 00010 #ifndef BS_BOS_CORE_DEFAULT_WELL_RATE_CONTROL_FACTORY_H_ 00011 #define BS_BOS_CORE_DEFAULT_WELL_RATE_CONTROL_FACTORY_H_ 00012 00013 #include "well_rate_control_interface.h" 00014 00015 namespace blue_sky { 00016 namespace wells { 00017 00018 template <typename strategy_t> 00019 class BS_API_PLUGIN default_well_rate_control_factory : public well_rate_control_factory <strategy_t> 00020 { 00021 public: 00022 00023 typedef well_rate_control_factory <strategy_t> base_t; 00024 typedef typename base_t::sp_calc_model_t sp_calc_model_t; 00025 typedef typename base_t::sp_well_rate_control_t sp_well_rate_control_t; 00026 00027 sp_well_rate_control_t 00028 create_control (rate_control_type control_type, bool is_bhp, bool is_production, const sp_calc_model_t &calc_model); 00029 00030 BLUE_SKY_TYPE_DECL_T (default_well_rate_control_factory); 00031 }; 00032 00033 00034 00035 } // namespace wells 00036 } // namespace blue_sky 00037 00038 #endif // #ifndef BS_BOS_CORE_DEFAULT_WELL_RATE_CONTROL_FACTORY_H_ 00039