24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 7964  |  回复: 26
【奖励】 本帖被评价16次,作者dbb627增加金币 11.8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

[资源] matlab生成随机行走网格 模拟材料生长

这个板块帖子太少,发一个增加点人气,原始问题见
http://muchong.com/bbs/viewthread.php?tid=3723739
算法如下:
随机生长的步骤如下:
1) 建立材料生长的初始网格,并设定所有网格材料皆为主相;
2) 定义生长相的生长核分布概率数,Cd,其大小不大于此生长相的体积分数。对系统网格的每个单元采用在(0,1)内均匀分布的随机函数赋随机数,其值若小于Cd,则认为此单元为生长相的一个生长核。其次,对每一个生长核,使其从各个方向上向其周围临近网格单元扩张,生长时,每一个方向上需设定一个方向增长概率数,Di,下标i代表方向。每一个生长核,其周围各个单元均会被赋值一个随机数,其值若不大于该方向上的方向增长概率数,则此单元同样成为一个新的生长相。
3)重复步骤二直至此生长相的体积分数到达其给定值。
原帖给的程序不完整,这里重写,并优化了
CODE:
function growth
%作者:dbb627
%2011.10.27
%======设定初值=============
clc;clear;
rand('state',0);
set(gcf,'DoubleBuffer','on');%消除振动
Cd=0.01;%生长核分布概率数
Vr=0.3;%生长相的体积分数
global kn
kn=500;
p=[1/8 1/8 1/8 1/8 1/4 1/4 1/4 1/4];%方向增长概率数
A=rand(kn,kn);%初始网格kn×kn
A(find(A<=Cd))=0;%黑色,生长核
A(find(A>Cd))=1;%白色
imshow(A,'InitialMagnification','fit')%初始图像
k=0;%迭代步骤
N=kn*kn;%格点数
[x,y]=find(A==0);%生长核脚标
Ixy=sub2ind([kn,kn],x,y); % 转化脚标为索引
gn=length(Ixy);%生长核计数
Vs=gn/N;       %体积分数
ti=title(['time = 0 体积分数=',num2str(Vs)],'Fontsize',14,'Fontname','Times new roman'); % 在图题处实时显示时间
%===========================
while Vs     xL=x-1;xR=x+1;
    xL(xL==0)=1;% 对近邻进行边界条件处理
    xR(xR==kn+1)=kn;% 对近邻进行边界条件处理
    yD=y-1;yU=y+1;
    yD(yD==0)=1;% 对近邻进行边界条件处理
    yU(yU==kn+1)=kn;% 对近邻进行边界条件处理
   
    InE=sub2ind([kn,kn],xR,y); % 右方转化脚标为索引
    InS=sub2ind([kn,kn],x,yD); % 下方转化脚标为索引
    InW=sub2ind([kn,kn],xL,y); % 左方转化脚标为索引
    InN=sub2ind([kn,kn],x,yU); % 上方转化脚标为索引
   
    InEN=sub2ind([kn,kn],xR,yU); % 右上方转化脚标为索引
    InES=sub2ind([kn,kn],xR,yD); % 右下方转化脚标为索引
    InWS=sub2ind([kn,kn],xL,yD); % 左下方转化脚标为索引
    InWN=sub2ind([kn,kn],xL,yU); % 左上方转化脚标为索引
     %===用函数的方法写八个方向的生长迭代=====
          [A,Ixy]=growthmod(InE,Ixy,p(5),A);  
          [A,Ixy]=growthmod(InS,Ixy,p(6),A);
          [A,Ixy]=growthmod(InW,Ixy,p(7),A);
          [A,Ixy]=growthmod(InN,Ixy,p(8),A);
          [A,Ixy]=growthmod(InEN,Ixy,p(1),A);
          [A,Ixy]=growthmod(InES,Ixy,p(2),A);
          [A,Ixy]=growthmod(InWS,Ixy,p(3),A);
          [A,Ixy]=growthmod(InWN,Ixy,p(4),A);
  %==========做图========   
    [x,y]=find(A==0);
    Ixy=sub2ind([kn,kn],x,y);
    gn=length(Ixy);
    Vs=gn/N %体积分数
    k=k+1
    pause(0.1)
    imshow(A,'InitialMagnification','fit')%更新图像
    title(['time = ',num2str(k),'体积分数=',num2str(Vs)],'Fontsize',14,'Fontname','Times new roman'); % 更新时间参数
   
end
   
function [A,Ixy]=growthmod(Ind1,Indxy,p,A)
%Ind1 当前方向索引
%,Indxy 当前生长核索引的
%p 当前方向的概率值
%A 当前的生长矩阵
global kn
    CInE=setdiff(Ind1,Indxy);%提取非生长核边界格点索引
    En=rand(1,length(CInE));%各个单元均会被赋值一个随机数
    [i,j]=find(En<=p);%大于该方向上的方向增长概率数,则此单元同样成为一个新的生长相
    pE=sub2ind([1,length(CInE)],i,j);%新的生长相索引的下标
    A(CInE(pE))=0; %更新生长矩阵
    [x,y]=find(A==0);%更新生长核坐标
    Ixy=sub2ind([kn,kn],x,y);%更新生长核索引


生长动画

[ Last edited by dbb627 on 2011-10-27 at 10:19 ]
回复此楼

» 收录本帖的淘帖专辑推荐

科研工具资源Nick 资源收集 小木虫matlab全部资源 科研工具专辑
科研相关 Matlab Study 自己阅读 晶粒长大及相关模拟

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huppid

铁虫 (小有名气)


★★★★★ 五星级,优秀推荐

这段程序有几个问题:
(1)p的总和应该等于1;
(2)对Vs的循环没有添加上限;
(3)画图程序应该放在循环的开头,避免大于上限。
18楼2014-01-03 16:27:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 27 个回答

匿名

用户注销 (小有名气)


本帖仅楼主可见
2楼2011-10-27 09:49:32
已阅   申请计算强帖   回复此楼   编辑   查看我的主页

cxguo

新虫 (正式写手)


★★★★★ 五星级,优秀推荐

引用回帖:
1楼: Originally posted by dbb627 at 2011-10-27 09:20:06:
这个板块帖子太少,发一个增加点人气,原始问题见
http://muchong.com/bbs/viewthread.php?tid=3723739
算法如下:
随机生长的步骤如下:
1) 建立材料生长的初始网格,并设定所有网格材料皆为主相; ...

楼主高手啊,请教以下可以用Matalab画原子生长模拟图不?三位岛状生长的。
4楼2011-10-28 12:41:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
引用回帖:
4楼: Originally posted by cxguo at 2011-10-28 12:41:57:
楼主高手啊,请教以下可以用Matalab画原子生长模拟图不?三位岛状生长的。

有生长的模式吗,你写出来看看,我不是研究材料。不太知道三位岛状生长。
5楼2011-10-28 13:53:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿厦门大学化学学硕307求调剂 +9 y7czhao 2026-03-26 9/450 2026-03-28 07:53 by Iveryant
[考研] 340求调剂 +5 jhx777 2026-03-27 5/250 2026-03-28 04:18 by fmesaito
[考研] 求调剂推荐 材料 304 +15 荷包蛋hyj 2026-03-26 15/750 2026-03-28 04:13 by fmesaito
[考研] 331环境科学与工程求调剂 +3 熠然好运气 2026-03-27 3/150 2026-03-28 04:11 by fmesaito
[考研] 265求调剂 +8 小木虫085600 2026-03-27 8/400 2026-03-27 22:16 by 无际的草原
[考研] 314求调剂 +3 溪云珂 2026-03-26 3/150 2026-03-27 11:20 by sanrepian
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-26 3/150 2026-03-27 07:58 by chemisry
[考研] 321求调剂 +6 Ymlll 2026-03-24 6/300 2026-03-26 20:50 by 不吃魚的貓
[考研] 材料与化工304求B区调剂 +3 邱gl 2026-03-26 6/300 2026-03-26 18:03 by 邱gl
[考研] 机械学硕310分,数一英一,一志愿211本科双非找调剂信息 +3 @357 2026-03-25 3/150 2026-03-26 16:34 by by.MENG
[考研] 085600 材料与化工 329分求调剂 +9 Mr. Z 2026-03-25 9/450 2026-03-26 10:36 by baoball
[考研] 材料专硕 335 分求调剂 +4 拒绝冷暴力 2026-03-25 4/200 2026-03-25 18:45 by haxia
[考研] 284求调剂 +15 Zhao anqi 2026-03-22 15/750 2026-03-25 12:51 by wht0531
[考研] 0854电子信息求调剂 324 +4 Promise-jyl 2026-03-23 4/200 2026-03-25 11:36 by Sugarlight
[考研] 一志愿南航材料专317分求调剂 +5 炸呀炸呀炸薯条 2026-03-23 5/250 2026-03-24 16:52 by 星空星月
[基金申请] 请教下大家 2026年国家基金申请是双盲审吗? +3 lishucheng1 2026-03-22 5/250 2026-03-24 08:22 by gltch
[考研] 276求调剂 +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by 醉在风里
[考研] 一志愿070300浙大化学358分,求调剂! +4 酥酥鱼.. 2026-03-21 4/200 2026-03-23 08:12 by Iveryant
[考研] 315分,诚求调剂,材料与化工085600 +3 13756423260 2026-03-22 3/150 2026-03-22 20:11 by edmund7
[考研] 一志愿东华大学控制学硕320求调剂 +3 Grand777 2026-03-21 3/150 2026-03-21 19:23 by 简之-
信息提示
请填处理意见