00001 00009 #ifndef BS_WELLS_COMPUTE_CONNECTION_FACTORS_H_ 00010 #define BS_WELLS_COMPUTE_CONNECTION_FACTORS_H_ 00011 00012 #include "calc_well.h" 00013 00014 namespace blue_sky 00015 { 00016 namespace wells 00017 { 00018 namespace compute_factors 00019 { 00020 00025 template <typename strategy_t> 00026 struct peaceman_model 00027 { 00028 00029 typedef connection <strategy_t> connection_t; 00030 typedef typename strategy_t::item_t item_t; 00031 typedef typename strategy_t::index_t index_t; 00032 typedef typename strategy_t::item_array_t item_array_t; 00033 typedef smart_ptr <fi_params, true> sp_params_t; 00034 00035 typedef rs_mesh_iface <strategy_t> mesh_iface_t; 00036 typedef smart_ptr <mesh_iface_t, true> sp_mesh_iface_t; 00037 00051 static void 00052 compute (connection_t &connection, 00053 const physical_constants &internal_constants, 00054 const sp_params_t ¶ms, 00055 const sp_mesh_iface_t &mesh, 00056 const item_array_t &perm, 00057 const item_array_t &ntg, 00058 bool ro_calc_flag); 00059 00060 static item_t compute_grp_pi_mult (connection_t &connection); 00061 }; 00062 00063 //struct baby_odeh_model 00064 //{ 00065 // static void compute (well::connection &connection, physical_constants *internal_constants, 00066 // item_t d1, item_t d2, item_t d3, 00067 // item_t perm1, item_t perm2, item_t perm3, 00068 // const well::item_array_t &ntg, 00069 // bool ro_calc_flag); 00070 00071 //private: 00072 00073 // static item_t F_table (item_t L, item_t d, item_t y_mid, int arg_type); 00074 //}; 00075 00076 } // namespace compute_factors 00077 } // namespace wells 00078 } // namespace blue_sky 00079 00080 #endif // #ifndef BS_WELLS_COMPUTE_CONNECTION_FACTORS_H_ 00081