自2001年起,CMG开始进行GEM咸水层CO2封存相关功能研发,目前已成为欧洲CCS模拟标准,业内普及程度最高的CO2封存数值模拟软件。GEM模拟CO2封存,不管是在咸水层、废弃油气藏、煤层ECBM、CO2-EOR等方面,在机理表征、流程操作等方面均具独特优势:
GEM是基于EoS状态方程的组分计算
具备完备的地球化学数据库,可扩展
自带全耦合的地质力学模块,无需对其他软件进行数据交互传输
自带埋存建模向导,界面化操作流程,轻松添加相关机理表征
多精度盖层泄露模拟,满足所需
断层活化功能已在2022版中添加
新一代仪表盘可视化分析技术,让结果分析更容易
已形成CoFlow/CoFlow-X储层–地面一体化模拟,CMOST AI敏感性分析、优化及不确定性分析模拟联动,更适合多个储层采油/气、地面分离、注气等全面化综合管理
GEM自带50多个GHG(GreenHouse Gas)模拟算例,文件夹位置:C:\Program Files (x86)\CMG\GEM\2022.10\TPL\ghg,提供了不同机理的关键字实现方式,本期将对现有模型进行简要介绍,方便大家学习和使用,解锁二氧化碳埋存模拟功能。
算例 | 模型介绍 |
GMGHG001.DAT | 咸水层封存,无地球化学 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 |
GMGHG002.DAT | 咸水层封存,低温储层 咸水层封存,CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 地层温度、压力低于GMGHG001.DAT |
GMGHG003.DAT | 咸水层封存,使用Li-Nghiem方程计算Henry常数 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用内置Li and Nghiem相关式计算Henry常数,自定义组分无法使用该相关式计算 未模拟矿化反应 |
GMGHG004.DAT | 咸水层封存,使用Harvey方程计算Henry常数 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用内置Harvey相关式计算Henry常数 未模拟矿化反应 |
GMGHG005.DAT | 咸水层封存,气相滞后 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用内置Harvey相关式计算Henry常数 模拟气相滞后,并可输出捕集气饱和度场图和曲线 |
GMGHG006.DAT | 咸水层封存,地球化学模拟 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 |
GMGHG007.DAT | 水相浓度物质平衡误差控制 CO2埋存一维模型,一注一采分别位于两端 注入井:恒速注CO2,持续注入100年 生产井:恒定BHP *NORM *AQUEOUS控制物质平衡误差 |
GMGHG008.DAT | 咸水层封存,输出CO2封存信息 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用与温度无关的化学平衡常数 模拟示踪气 模拟CO2在水相中的分子扩散 CO2封存信息输出到out文件和SR3结果文件 |
GMGHG009.DAT | 咸水层封存,Rx’ns的解析微分法(Analytical Derivatives) Field单位制 使用与温度无关的化学平衡常数 模拟示踪气 CO2封存信息输出到OUT文件和SR3结果文件 使用反应项的解析微分法 GHG009.DAT和GHG010.DAT分别为反应项的解析微分法和数值微分法,可进行对比 |
GMGHG010.DAT | 咸水层封存,Rx’ns的数值微分法(Numerical Derivatives) Field单位制 使用与温度无关的化学平衡常数 模拟示踪气 CO2封存信息输出到out文件和SR3文件 使用反应项的数值微分法 GHG009.DAT和GHG010.DAT分别为反应项的解析微分法和数值微分法,可进行对比 |
GMGHG011.DAT | 咸水层封存,定义Primary水相质量摩尔浓度 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 模拟CO2在水相中的分子扩散 仅设置了Primary水层的初始摩尔质量浓度(MOLALITY-AQUEOUS-PRIMARY) |
GMGHG012.DAT | 咸水层封存,化学平衡常数 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 未模拟示踪气 (AQFILL ON) CO2封存信息输出到SR3文件 |
GMGHG013.DAT | 咸水层封存,分子扩散,两个初始化分区 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 设置两个初始化区域 |
GMGHG014.DAT | 咸水层封存,地球化学和滞后模拟 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 模拟CO2在水相中的分子扩散 使用HENRY-CORR (Harvey)模拟CO2在水相中溶解 模拟气相滞后 |
GMGHG015.DAT | 咸水层封存,注海水(Brine) CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M |
GMGHG016.DAT | 咸水层封存,盖层泄漏井模拟 咸水层CO2封存模型 使用井模拟盖层泄露 GMGHG016是GMGHG017的基础文件 |
GMGHG017.DAT | CO2封存,盖层泄漏井模拟(重启动计算) 咸水层CO2封存模型 使用井模拟盖层泄露 GMGHG017是GMGHG016的重启文件 |
GMGHG018.DAT | 咸水层封存,水蒸发 Field单位制 使用与温度无关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 设置H2O组分 模拟水蒸发(CO2可存在于气相中) |
GMGHG019.DAT | 3D非均质封存模型 第十三届SPE会议对比模型,1995 (SPE 29110),Killough, J.E., “Ninth SPE Comparative Solution Project: A Reexamination of Black-Oil Simulation” 24×25×15非均质笛卡尔网格模型,倾斜油藏,包含1口注气井,和位于底部的6口注水井,以及25口生产井 注入水矿化度不同 |
GMGHG020.DAT | 咸水层封存,使用体积倍数模拟大体积水体 在模型的边缘使用体积倍数关键字来模拟一个水体 使用C1模拟示踪气 使用*AQFILL *ON设置初始模型中不含CO2 检查残差平方,重复迭代,直到*CONVERGE *CEQAQU指定的公差满足检查迭代(*NCHECK-CEQ),否则在日志文件中输出不收敛信息 使用关键字*DIARY *CHANGES-UNCONV用于输出收敛情况 |
GMGHG021.DAT | 咸水层封存,吸附 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 模拟气体在矿物表面的吸附 定义关键字ADS_WATERZONE确保Langmuir吸附模型计算的吸附量乘以网格块含气饱和度 |
GMGHG022.DAT | 咸水层封存,地球化学,热效应模拟 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用温度相关的化学平衡常数 模拟示踪气 模拟CO2在水相中的扩散 模拟注入50摄氏度CO2的热效应 |
GMGHG023.DAT | 注海水,3D非均质模拟,热模拟 第十三届SPE会议对比模型,1995 (SPE 29110),Killough, J.E., “Ninth SPE Comparative Solution Project: A Reexamination of Black-Oil Simulation” , 24×25×15非均质笛卡尔网格模型,倾斜油藏,包含1口注气井,和位于底部的6口注水井,以及25口生产井 6口注水井的注水温度不同 |
GMGHG024.DAT | 咸水层封存,矿物的生成 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用温度相关的化学平衡常数 模拟示踪气 模拟CO2在水相中的扩散 使用最小反应表面积和过饱和度指数模拟矿物的形成(GMGHG006.dat之后) |
GMGHG025.DAT | 油藏注CO2,地球化学 测试活度系数(activity coefficients)的输入,使用关键字*EQUIL-REACT-RATE *ON和*CHEM-EQUIL-SET *ON定义平衡条件 展示关键词的使用: * ACTIVCOEF * EQUIL-REACT-RATE *ON * CHEM-EQUIL-SET *ON * CONV-RESONLY *ON |
GMGHG026.DAT | 油藏注CO2,地球化学 测试使用关键字*EQUIL-REACT-RATE *ON和*CHEM-EQUIL-SET *ON定义平衡条件输入所有水相质量摩尔浓度 展示关键词的使用: *ACTIVCOEF-SOL *ON *EQUIL-REACT-RATE *ON *CHEM-EQUIL-SET *ON *CALC-MOLALITYAQ-SECONDARY *OFF *CONV-RESONLY *ON |
GMGHG027.DAT | 使用*NORM *AQUEOUS控制物质平衡误差 CO2埋存一维模型,一注一采分别位于两端 注入井:恒速注CO2,持续注入100年 生产井:恒定BHP 使用关键字*NORM *AQUEOUS表明对物质平衡误差的控制 通过关键字*REACTION-CHEM and *REACTION-RATE输入化学平衡反应和矿物质反应数据 |
GMGHG028.DAT | 注聚,地球化学模拟 模拟四分之一的五点井网普通稠油油藏中注聚 油相由8个组分组成,其中包括可溶于水相的CO2水相由4个组分组成,其中包括2个聚合物组分 循环注入聚合物段塞和水段塞考虑速率反应方式的聚合物降解 此外,使用地球化学V2输入格式模拟化学平衡和矿物反应 注意,聚合物和水表面活性剂组分不能参与反应 |
GMGHG029.DAT | 经验法泡沫模型,地球化学 该算例展示了在经验泡沫模型中关键字语法泡沫是在水相中存在至少一种表面活性剂成分的情况下产生的,可存在气相中 在本例中,表面活性剂组分是通过组分属性部分中的*COMPNAME-SURFACTANT定义的注意,必须通过*COMPNAME-AQUEOUS定义水相组分,*MW_AQUOUS定义水组分的分子量 泡沫的特征是由许多经验确定的参数,如*FMMOB, *FMSURF等,这些参数在岩石流体部分设置如有必要,也可在同时输入表面活性剂的吸附数据 通过*INTCOMP *AQUEOUS ‘surf_name’进行相渗插值,内插相渗曲线通过*KRINTRP定义,通过*DTRAPW, *DTRAPN或*INTCOMP_VAL给出的插值参数 表面活性剂可与水一起注入,使用*INCOMP *AQUEOUS定义 最后,通过关键字FMC1~FMC6、*FMCD输出不同因素对相渗插值的影响相渗插值可以通过关键字*KRINTER进行输出 在这个简化的算例中,水相中定义了一个表面活性剂组分几乎所有与泡沫相关的关键词都在Rock-Fluid部分进行设置 该油藏衰竭开采2年,然后同时注水和注气表面活性剂随水一起注入 通过观察网格块中的相渗插值,可以直观地看出泡沫的存在数值为1表示没有泡沫,接近0表示泡沫最强 注意,本算例使用的泡沫参数仅用于说明目的,实际应用中,需要参考的实验数据并进行判断 聚合物和水相表活剂组分不参与反应 |
GMGHG030.DAT | 咸水层封存—水相分子扩散 Field单位制 EOS列表中引入H2O组分 使用*OGW_FLASH *ON模拟水蒸发 使用*DIFCOR-AQU模拟分子扩散 水相中指定组分的分子扩散使用Wilke-Chang and Stokes-Einstein相关式定义 Wilke-Chang 用于可溶的烃组分 Stokes-Einstein用于气体水组分 |
GMGHG031.DAT | CO2和H2S咸水层封存 咸水层CO2和H2S封存模型,持续注入25年,然后关井,模拟接下来的225年CO2和H2S羽流情况 使用GEM内置Harvey (*HENRY-MOD1-)计算CO2和H2S的Henry定律常数 CO2-H2O使用温度相关的BINs,H2S-H2O通过关键字*BIN-TDEP-CO2和*BIN-TDEP-H2S使用初始时间的平均储层温度下BINs |
GMGHG032.DAT | 咸水层封存——使用*TRACE-INTERNAL-OFF 在模型的边缘使用网格体积倍数模拟大的含水层 C1为示踪气组分 使用*AQFILL *ON确保在运行开始时系统中没有二氧化碳 检查残差平方,重复迭代,直到*CONVERGE *CEQAQU指定的公差满足检查迭代(*NCHECK-CEQ),否则在日志文件中输出不收敛信息 使用关键字*DIARY *CHANGES-UNCONV用于输出收敛情况 |
GMGHG033.DAT | 地球化学模拟CO2封存,使用*CRDAMP-ALL and *CRDAMP抑制化学反应 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用温度相关的化学平衡常数 示踪气 CO2在水中的分子扩散 展示使用*CRDAMP-ALL and *CRDAMP抑制化学反应以达到平衡
|
GMGHG034.DAT | 地球化学模拟CO2封存,使用*MRDAMP-ALL 和*MRDAMP抑制矿化反应 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用温度相关的化学平衡常数 模拟示踪气 模拟CO2在水中的分子扩散 本算例展示了使用*CRDAMP-ALL and *CRDAMP抑制化学反应以达到平衡关键字*MRDAMP-ALL用于抑制矿化反应 |
GMGHG035.DAT | 使用*MINERAL-ERA和*NORM *MINERAL-VFR 咸水层CO2封存模型,CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用温度相关的化学平衡常数 模拟CO2在水中的分子扩散 使用*MINERAL-ERA *ON(缺省)降低矿物组分的物质平衡误差,*NORM *MINERAL-VFR和*MAXCHANGE *MINERAL-VFR用于控制基于矿物质变化的时间步大小 |
GMGHG036.DAT | 关闭水蒸发模拟 CO2持续注入25年,然后关井,模拟接下来的225年CO2羽流情况 使用温度相关的化学平衡常数 模拟示踪气 模拟CO2在水中的分子扩散 在H2O_INCLUDED模型中使用*OGW_FLASH *NO_H2OVAP关闭水蒸发 |
GMGHG037.DAT | CO2封存,注入海水(Brine) CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M 通过关键字*ACTIVITY-MODEL *PITZER使用PITZER活度模型,该模型完全依赖于GEM内部数据库的Wolery和Parkhurst的Pitzer系数 GEM将弹出离子对和三元组不可用系数的警告消息通过关键字*CATION-ANION等提供相关信息,如配套算例gmghg038 |
GMGHG038.DAT | 咸水层封存,Pitzer系数 CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M 通过关键字*ACTIVITY-MODEL *PITZER2调用PITZER活度模型该模型部分依赖于GEM内置数据库可用的Wolery和Parkhurst的Pitzer系数 Pitzer系数由关键字提供: *CATION-ANION-COEF *CATION-CATION-ANION-COEF,等 离子对或离子三元组后定义空白将促使GEM在内置数据库中搜索该离子对或离子三元组如果设置,则使用这些值,否则,假定输入为0这些关键字提供了从GEM内部库覆盖Pitzer系数的机会 |
GMGHG039.DAT | 咸水层封存,注入海水(Brine) CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流情况 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M 通过关键字*ACTIVITY-MODEL *PITZER2调用PITZER活度模型该模型部分依赖于GEM内置数据库可用的Wolery和Parkhurst的Pitzer系数 与gmghg038相似,不同的是使用了*PITZER2 其计算成本更高,需谨慎使用,特别是在大模型中 |
GMGHG040.DAT | 咸水层封存,注入高矿化度海水(Brine) CO2持续注入25年,再注10M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M 通过关键字*ACTIVITY-MODEL *PITZER2调用PITZER活度模型该模型部分依赖于GEM内置数据库可用的Wolery和Parkhurst的Pitzer系数 与gmghg039相似,不同的是注入高矿化度海水(brine)矿物溶解和沉淀的差异比gmghg038更明显 |
GMGHG041.DAT | 咸水层封存,*PITZER2 CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M 通过关键字*ACTIVITY-MODEL *PITZER2调用PITZER活度模型该模型部分依赖于GEM内置数据库可用的Wolery和Parkhurst的Pitzer系数 与gmghg040相似,但是*PITZER2替代*PITZER,尽管gmghg041与gmghg040的结果相当,但大大减少了运行时间 |
GMGHG042.DAT | 咸水层封存,使用*PORMNR计算阻力系数 CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流 使用与温度相关的化学平衡常数 模拟示踪气 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M ————————————————————————————————– 通过关键字*ACTIVITY-MODEL *PITZER调用PITZER活度模型该模型部分依赖于GEM内置数据库可用的Wolery和Parkhurst的Pitzer系数 Pitzer系数通过关键字: *CATION-ANION-COEF *CATION-CATION-ANION-COEF,等 离子对或离子三元组后定义空白将促使GEM在内置数据库中搜索该离子对或离子三元组如果设置,则使用这些值,否则,假定输入为0这些关键字提供了从GEM内部库覆盖Pitzer系数的机会 ————————————————————————————————— 使用可选关键字*PORMNR计算*RFCALC,确保阻力系数计算时考虑矿物质引起的仅孔隙度变化 耦合地球化学和地质力学模型 |
GMGHG043.DAT | 咸水层封存,水蒸发和矿物沉淀 在USER_INPUT初始化中使用*SWOC关键字,将输入SW的最大值限制为SWOC值模拟水蒸气蒸发和矿物沉淀过程 |
GMGHG044.DAT | 使用K值方式表征气体在水相的溶解 CO2持续注入25年,再注0.5M海水(Brine)1年,然后关井,模拟接下来的225年CO2羽流情况 使用与温度相关的化学平衡常数 输出CO2封存信息,可绘制曲线 模拟CO2在水相中的分子扩散 初始NaCl浓度为0.05M 由gmghg015修改 ————————————————————————————————— 由WinProp生成的GW K值表,用于水相溶解的计算,考虑矿化度的影响可与gmghg015做结果对比 |
GMGHG045.DAT | 通过*SOLUBILITY-MODEL对CO2 and H2S使用不同的溶解模型 咸水层CO2和H2S封存模型,持续注入25年,然后关井,模拟接下来的225年CO2和H2S羽流情况 使用预生成的K值关键字*SOLUBILITY-MODEL用于CO2溶解的模拟,H2S的Henry定律常数使用*ENI模型 CO2-H2O使用基于温度的BINs,通过关键字*BIN-TDEP-CO2和*BIN-TDEP-H2S,使用初始时平均储层温度下取值 |
GMGHG046.DAT | 使用已生成的K值表模拟CO2封存中的水蒸发 咸水层CO2封存模型 使用与温度无关的化学平衡常数 EOS列表中引入H2O组分 使用*OGW_FLASH *ON模拟水蒸发 —————————————————————————————————– 使用气水系统的K值表模拟CO2溶解和水蒸发 |
GMGHG047.DAT | 矿物平衡反应 使用一维模型模拟CO2封存,注采井分别位于两端 注入井:恒定注气速度(CO2),持续注入100年 生产井:恒定BHP 方解石反应使用关键字*REACTION_EQUIL-MNR模拟为矿物的拟平衡反应 |
GMGHG048.DAT | 使用矿物平衡反应模拟沉淀 在USER_INPUT初始化中使用*SWOC关键字,将输入SW的最大值设置为SWOC值模拟水蒸气蒸发和矿物沉淀过程 使用矿物平衡反应 |
GMGHG049.DAT | 模拟H2和CO2咸水层封存中甲烷化反应 模拟H2和CO2咸水层封存注采井分别位于两端 注入井:恒定注气速度(CO2和H2) 生产井:恒定BHP 注入的H2通过与CO2的阿伦尼乌斯甲烷化反应转化为CH4H2, CO2和CH4可溶于水相调整指前因子和活化可控制反应速率 |
GMGHG050.DAT | 溶解选项及优先级 咸水层封存使用不同的溶解选项 在没有*SOLUBILITY-MODEL关键字的情况下,根据优先级计算溶解度 优先级:K-value > ENI > HARVEY > HENRYCST |
GMGHG051.DAT | 溶解选项及*SOLUBILITY-MODEL关键字的使用 咸水层封存使用不同的溶解选项 在定义*SOLUBILITY-MODEL关键字的情况下,选择对应的溶解度计算模型 |