@ -4,8 +4,8 @@
nmDataReservoir : : nmDataReservoir ( ) {
nmDataReservoir : : nmDataReservoir ( ) {
// 基础属性
// 基础属性
m_initialPressure = nmDataAttribute ( " Initial Pressure " , 40.0 , " MPa " , UNIT_TYPE_PRESSURE , QStringList ( ) , QStringList ( ) < < " psia " < < " Pa " < < " kPa " < < " atm " < < " bara " < < " kg/cm^2 " < < " m " < < " psig " < < " bar " < < " MPa " < < " kPag " ) ;
m_initialPressure = nmDataAttribute ( " Initial Pressure " , 40.0 , " MPa " , UNIT_TYPE_PRESSURE , QStringList ( ) , QStringList ( ) < < " psia " < < " Pa " < < " kPa " < < " atm " < < " bara " < < " kg/cm^2 " < < " m " < < " psig " < < " bar " < < " MPa " < < " kPag " ) ;
// 求解器直接读取该数值, 内部基准单位固定为D; 显示换算由框架单位绑定器负责 。
// 数据层基准单位固定为mD; 进入PEBI求解器前再统一转换为D 。
m_permeability = nmDataAttribute ( " Permeability " , 0.025, " D" ) ;
m_permeability = nmDataAttribute ( " Permeability " , 25.0, " m D" ) ;
m_thickness = nmDataAttribute ( " Thickness " , 10.0 , " m " , UNIT_TYPE_LENGTH , QStringList ( ) , QStringList ( ) < < " ft " < < " m " < < " cm " < < " mm " < < " in " < < " 0.1 in " < < " mile " < < " km " ) ;
m_thickness = nmDataAttribute ( " Thickness " , 10.0 , " m " , UNIT_TYPE_LENGTH , QStringList ( ) , QStringList ( ) < < " ft " < < " m " < < " cm " < < " mm " < < " in " < < " 0.1 in " < < " mile " < < " km " ) ;
m_porosity = nmDataAttribute ( " Porosity " , 0.1 , " " , UNIT_TYPE_DIMENSIONLESS , QStringList ( ) , QStringList ( ) ) ;
m_porosity = nmDataAttribute ( " Porosity " , 0.1 , " " , UNIT_TYPE_DIMENSIONLESS , QStringList ( ) , QStringList ( ) ) ;
m_kxKy = nmDataAttribute ( " Kx/Ky " , 1.0 , " " , UNIT_TYPE_DIMENSIONLESS , QStringList ( ) , QStringList ( ) ) ;
m_kxKy = nmDataAttribute ( " Kx/Ky " , 1.0 , " " , UNIT_TYPE_DIMENSIONLESS , QStringList ( ) , QStringList ( ) ) ;
@ -41,7 +41,7 @@ nmDataReservoir::nmDataReservoir() {
void nmDataReservoir : : resetToDefaults ( )
void nmDataReservoir : : resetToDefaults ( )
{
{
m_permeability . setValue ( 0.025 ) ;
m_permeability . setValue ( 25.0 ) ;
m_transmissibility . setValue ( 1000.0 ) ;
m_transmissibility . setValue ( 1000.0 ) ;
}
}
@ -148,8 +148,8 @@ void nmDataReservoir::FromJsonValue(const rapidjson::Value& jsonValue)
}
}
if ( jsonValue . HasMember ( " Permeability " ) & & jsonValue [ " Permeability " ] . IsObject ( ) ) {
if ( jsonValue . HasMember ( " Permeability " ) & & jsonValue [ " Permeability " ] . IsObject ( ) ) {
m_permeability . FromJsonValue ( jsonValue [ " Permeability " ] ) ;
m_permeability . FromJsonValue ( jsonValue [ " Permeability " ] ) ;
// JSON中的单位文本不参与兼容换算, 读取后的 内部单位始终按求解器标准固定为 D。
// JSON中的单位文本不参与兼容换算, 读取后的 数据层单位始终固定为m D。
m_permeability . setUnit ( " D" ) ;
m_permeability . setUnit ( " m D" ) ;
}
}
if ( jsonValue . HasMember ( " Thickness " ) & & jsonValue [ " Thickness " ] . IsObject ( ) ) {
if ( jsonValue . HasMember ( " Thickness " ) & & jsonValue [ " Thickness " ] . IsObject ( ) ) {
m_thickness . FromJsonValue ( jsonValue [ " Thickness " ] ) ;
m_thickness . FromJsonValue ( jsonValue [ " Thickness " ] ) ;
@ -244,7 +244,7 @@ bool nmDataReservoir::_parseData(VecVariant vec, int& n) {
m_reservoirType = nmDataAttribute ( " Reservoir Type " , vec [ n + + ] . toString ( ) , " " ) ;
m_reservoirType = nmDataAttribute ( " Reservoir Type " , vec [ n + + ] . toString ( ) , " " ) ;
m_Bo = nmDataAttribute ( " Bo " , vec [ n + + ] . toString ( ) , " " ) ;
m_Bo = nmDataAttribute ( " Bo " , vec [ n + + ] . toString ( ) , " " ) ;
m_Miuo = nmDataAttribute ( " Miuo " , vec [ n + + ] . toString ( ) , " mPa.s " ) ;
m_Miuo = nmDataAttribute ( " Miuo " , vec [ n + + ] . toString ( ) , " mPa.s " ) ;
m_permeability = nmDataAttribute ( " Permeability " , vec [ n + + ] . toString ( ) , " D" ) ;
m_permeability = nmDataAttribute ( " Permeability " , vec [ n + + ] . toString ( ) , " m D" ) ;
m_thickness = nmDataAttribute ( " Thickness " , vec [ n + + ] . toString ( ) , " m " ) ;
m_thickness = nmDataAttribute ( " Thickness " , vec [ n + + ] . toString ( ) , " m " ) ;
m_porosity = nmDataAttribute ( " Porosity " , vec [ n + + ] . toString ( ) , " " ) ;
m_porosity = nmDataAttribute ( " Porosity " , vec [ n + + ] . toString ( ) , " " ) ;
m_Ct = nmDataAttribute ( " Ct " , vec [ n + + ] . toString ( ) , " 1/MPa " ) ;
m_Ct = nmDataAttribute ( " Ct " , vec [ n + + ] . toString ( ) , " 1/MPa " ) ;
@ -284,8 +284,8 @@ void nmDataReservoir::onDeserialize(ZxSerializer* ser) {
ser - > read ( " ReservoirType " , tempValue ) ; m_reservoirType = nmDataAttribute ( " Reservoir Type " , tempValue , " " ) ;
ser - > read ( " ReservoirType " , tempValue ) ; m_reservoirType = nmDataAttribute ( " Reservoir Type " , tempValue , " " ) ;
ser - > read ( " Bo " , tempValue ) ; m_Bo = nmDataAttribute ( " Bo " , tempValue , " " ) ;
ser - > read ( " Bo " , tempValue ) ; m_Bo = nmDataAttribute ( " Bo " , tempValue , " " ) ;
ser - > read ( " Miuo " , tempValue ) ; m_Miuo = nmDataAttribute ( " Miuo " , tempValue , " mPa.s " ) ;
ser - > read ( " Miuo " , tempValue ) ; m_Miuo = nmDataAttribute ( " Miuo " , tempValue , " mPa.s " ) ;
// 序列化格式只保存数值,读取时明确按 求解器基准单位 D解释。
// 序列化格式只保存数值,读取时明确按 数据层基准单位m D解释。
ser - > read ( " Permeability " , tempValue ) ; m_permeability = nmDataAttribute ( " Permeability " , tempValue , " D" ) ;
ser - > read ( " Permeability " , tempValue ) ; m_permeability = nmDataAttribute ( " Permeability " , tempValue , " m D" ) ;
ser - > read ( " Thickness " , tempValue ) ; m_thickness = nmDataAttribute ( " Thickness " , tempValue , " m " ) ;
ser - > read ( " Thickness " , tempValue ) ; m_thickness = nmDataAttribute ( " Thickness " , tempValue , " m " ) ;
ser - > read ( " Porosity " , tempValue ) ; m_porosity = nmDataAttribute ( " Porosity " , tempValue , " " ) ;
ser - > read ( " Porosity " , tempValue ) ; m_porosity = nmDataAttribute ( " Porosity " , tempValue , " " ) ;
ser - > read ( " Ct " , tempValue ) ; m_Ct = nmDataAttribute ( " Ct " , tempValue , " 1/MPa " ) ;
ser - > read ( " Ct " , tempValue ) ; m_Ct = nmDataAttribute ( " Ct " , tempValue , " 1/MPa " ) ;