00001
00010 #ifndef BS_WELL_TYPE_HELPER_H_
00011 #define BS_WELL_TYPE_HELPER_H_
00012
00013 #include BS_FORCE_PLUGIN_IMPORT ()
00014 #include "constants.h"
00015 #include BS_STOP_PLUGIN_IMPORT ()
00016
00017 namespace blue_sky
00018 {
00019 namespace wells
00020 {
00021
00022 template <typename strategy_type>
00023 struct type_helper
00024 {
00025 typedef strategy_type strategy_t;
00026 typedef typename strategy_t::item_t item_t;
00027 typedef typename strategy_t::index_t index_t;
00028
00029 typedef boost::array <index_t, FI_PHASE_TOT> phase_d_t;
00030 typedef boost::array <index_t, FI_PHASE_TOT> sat_d_t;
00031
00032 typedef item_t item_ww_block_t;
00033 typedef boost::array <item_t, FI_PHASE_TOT * FI_PHASE_TOT>
00034 item_rr_block_t;
00035
00036 typedef boost::array <item_t, FI_PHASE_TOT> item_wr_block_t;
00037 typedef boost::array <item_t, FI_PHASE_TOT> item_rw_block_t;
00038 typedef boost::array <item_t, FI_PHASE_TOT> item_rhs_block_t;
00039 typedef boost::array <item_t, FI_PHASE_TOT> item_ps_block_t;
00040 typedef boost::array <item_t, FI_PHASE_TOT> item_sp_block_t;
00041
00042 typedef boost::array <item_t, FI_PHASE_TOT> item_q_rate_t;
00043 typedef boost::array <item_t, FI_PHASE_TOT> item_q_rate_inflow_t;
00044 typedef boost::array <item_t, GAS_RATE_TOTAL> item_gas_rate_t;
00045
00046 typedef boost::array <item_t, FI_PHASE_TOT> invers_fvf_avgerage_t;
00047
00048 typedef boost::array <item_t, FI_PHASE_TOT> initial_rate_t;
00049 };
00050
00051
00052 }
00053 }
00054
00055 #endif // #ifndef BS_WELL_TYPE_HELPER_H_
00056