2026/6/10 4:36:37
网站建设
项目流程
游戏网站建设免费版,优化站诊断,北京网站建设 公司,长沙网站建设哪里好多孔介质流动
多孔介质中的两相流动#xff0c;
多尺度模拟#xff0c;孔隙尺度建模#xff0c;Darcy-Brinkman-biot理论。
可以模拟粘性指进#xff0c;毛细管力驱动#xff0c;接触角研究。
模拟驱替和渗吸过程。先甩段代码热热身#xff0c;用OpenFOAM搞个孔隙级模拟 多尺度模拟孔隙尺度建模Darcy-Brinkman-biot理论。 可以模拟粘性指进毛细管力驱动接触角研究。 模拟驱替和渗吸过程。先甩段代码热热身用OpenFOAM搞个孔隙级模拟# 定义两相流场 twoPhaseSystem TwoPhasePhaseSystem( phase1Air, phase2Water, porousZonefoam.PorousZone( permeability1e-9, # 渗透率像堵车似的 porosity0.35 # 孔隙率比海绵蛋糕还密 ) ) solver PimpleFoam( timeSchemes[Backward], nNonOrthogonalCorrectors2 ) solver.run(endTime0.1)这段代码的核心是渗透率参数单位是m²。1e-9什么概念相当于沙子的渗透能力。当两相流体在这种介质里较劲时Darcy方程可能hold不住了得搬出Brinkman修正项来救场$$\mu_{eff} \nabla^2 \mathbf{u} \frac{\mu}{K} \mathbf{u} \nabla p$$这个式子妙在左边是粘性项右边是达西阻力相当于让Navier-Stokes和Darcy两派大佬握手言和。实际模拟时要注意有效粘度μ_eff的取值这货经常在孔隙尺度与宏观尺度之间反复横跳。说到尺度问题最近在折腾多尺度耦合。举个栗子用Python的PoreSpy生成微观结构import porespy as ps im ps.generators.blobs(shape[500,500], porosity0.6) props ps.metrics.pore_size_distribution(im)生成的孔隙网络活像显微镜下的砂岩图1。但直接拿这个做全场模拟算到明年也出不来结果。机智的搞法是把微观参数升尺度到宏观模型——比如把局域毛细管压力曲线打包成等效参数。驱替过程的代码更有意思粘性指进现象堪比流体界的闪电// 表面张力项处理 volScalarField pc pcModel-pc() * (1.0 - saturation); surfaceScalarField phic fvc::interpolate(pc) * mesh.magSf(); // 求解饱和度方程 fvScalarMatrix sEqn ( fvm::ddt(s) fvm::div(phi, s) fvm::laplacian(M, s) fvc::div(phic) );关键在laplacian项里的M——流动特性矩阵它决定了粘性指进的分叉程度。当注入速度超过某个阈值时界面就开始发疯似的分叉这时候需要自适应网格来捕捉细节图2。最后说说接触角这个磨人精。实验室测接触角要烧香拜佛数值模拟也没好到哪去。用VOF方法处理三相接触线时边界条件要这么玩contact_angle 60 # 亲水表面 mesh.boundary[wall].setContactAngle( anglecontact_angle, limiterContactAngleLimiter.COSINE )这个角度参数能让流体界面在固体表面站成特定姿势。但实际中发现动态接触角跟静态设定值能差出20度——所以最新算法开始用神经网络实时预测接触角变化。折腾完这些终于能看着模拟动画里两种流体像贪吃蛇一样在孔隙迷宫里你追我赶。虽然头发掉了一地但看着粘性指进的枝状分叉在屏幕上绽放比看烟花还带劲——当然前提是别问我算这个用了多少CPU小时。