00001 00009 #ifndef BS_WELLBORE_DENSITY_CALC_H_ 00010 #define BS_WELLBORE_DENSITY_CALC_H_ 00011 00012 #include "calc_perf_density_base.h" 00013 00014 namespace blue_sky 00015 { 00016 00021 template <typename strategy_t> 00022 class BS_API_PLUGIN wellbore_density_calc : public calc_perf_density_base <strategy_t> 00023 { 00024 public: 00025 00026 typedef calc_perf_density_base <strategy_t> base_t; 00027 typedef wellbore_density_calc <strategy_t> this_t; 00028 00029 typedef typename base_t::item_t item_t; 00030 typedef typename base_t::sp_well_t sp_well_t; 00031 typedef typename base_t::sp_calc_model_t sp_calc_model_t; 00032 00033 public: 00034 00040 void 00041 calculate (sp_well_t &well, const sp_calc_model_t &calc_model) const; 00042 00044 BLUE_SKY_TYPE_DECL_T (wellbore_density_calc); 00045 00046 protected: 00047 00055 bool 00056 density_calc (sp_well_t &well, const sp_calc_model_t &calc_model, item_t bhp) const; 00057 00058 }; 00059 00060 } // namespace blue_sky 00061 00062 00063 #endif // #ifndef BS_WELLBORE_DENSITY_CALC_H_ 00064