
改进的QSGS四参数随机生长法重构三维多孔介质代码
这个三维孔隙生成器有点意思,咱们直接上干货。核心代码里藏了个好玩的生长规则——想象一下往
培养基里撒菌种,菌落随机扩散但受控于四个参数。比如调整孔隙率的暴力方法就藏在下面这个循环里:
```matlab
for k=1:max_growth_steps
[new_pore,prob_map] = neighbor_infection(pore_matrix,dir_prob);
if sum(new_pore(:)) < growth_limit
pore_matrix(new_pore) = 1;
else
break;
end
end
```
这里的dir_prob是个三维概率张量,x/y/z方向给了不同传染概率,这样搞出来的孔隙结构在SEM图
像里看着就像真实页岩的层理结构。最近帮某课题组生成600^3的模型时发现,把各向异性系数调成[0.3,
0.5, 0.7]后,渗透率的各向异性比直接提升了三倍多。
处理孤立孔隙的算法值得细说。老版本用bwlabeln做全连接检测,在千万级体素时直接卡死。现在
改成队列式区域生长:
```matlab
queue = [seed_x, seed_y, seed_z];
while ~isempty(queue)
current = queue(1,:);
queue(1,:) = [];
for dx=-1:1
for dy=-1:1
for dz=-1:1
if pore_matrix(nb) && ~visited(nb)
visited(nb) = 1;
queue(end+1,:) = nb;
end