24小时热门版块排行榜    

Znn3bq.jpeg
查看: 8052  |  回复: 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的回帖

hedonistful

至尊木虫 (著名写手)


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

LZ在吗?
想请教你问题呀。
9楼2011-10-29 15:58:30
已阅   回复此楼   关注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的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 070300化学279求调剂 +13 哈哈哈^_^ 2026-04-08 14/700 2026-04-09 08:21 by liuhuiying09
[考研] 085801 总分275 本科新能源 求调剂 +5 bradoner 2026-04-08 6/300 2026-04-09 08:04 by Sammy2
[考研] 070300化学 求调剂 +10 73372112 2026-04-08 10/500 2026-04-09 07:59 by yuandd_2001
[考研] 一志愿211 0703化学 346分求调剂 +5 土豆er? 2026-04-09 5/250 2026-04-09 07:48 by yuandd_2001
[考研] 22408 270分 +5 sanjin020722 2026-04-08 6/300 2026-04-09 07:09 by may_新宇
[考研] 0703化学 +29 妮妮ninicgb 2026-04-04 32/1600 2026-04-08 22:50 by 猪会飞
[考研] 本科211,293分请求调剂 +12 莲菜就是藕吧 2026-04-03 13/650 2026-04-08 20:30 by 背对大海出发
[考研] 材料专硕(0856) 339分求调剂 +16 哈哈哈鹅哈哈哈 2026-04-05 16/800 2026-04-08 16:02 by luoyongfeng
[考研] 一志愿085404,总分291,四级已过,求调剂 +9 阿俊阿俊阿俊 2026-04-04 11/550 2026-04-08 10:56 by 学员Xf6pzY
[考博] 申博 +8 IQwQl 2026-04-04 8/400 2026-04-08 09:43 by 0608104024
[考研] 326求调剂 +5 9ahye 2026-04-02 6/300 2026-04-07 21:37 by lijunpoly
[考研] 372求调剂 +4 jj涌77 2026-04-02 4/200 2026-04-07 09:31 by 白云朵朵飞
[考研] 一志愿北交大材料工程总分358求调剂 +10 cs0106 2026-04-05 12/600 2026-04-06 19:41 by 无际的草原
[考研] 一志愿9材料学硕297已过六级求调剂推荐 +11 adaie 2026-04-04 12/600 2026-04-05 19:04 by 蓝云思雨
[考研] 358求调剂 +7 秋gk 2026-04-04 7/350 2026-04-05 13:29 by huangmoli
[考研] 考研调剂 +5 四川王涛 2026-04-04 5/250 2026-04-04 22:18 by 啵啵啵0119
[考研] 一志愿北京交通大学材料工程总分358 +4 cs0106 2026-04-03 4/200 2026-04-03 13:41 by 百灵童888
[考研] 初试成绩337找调剂 +3 ??? ?. ? 2026-04-03 3/150 2026-04-03 11:43 by 土木硕士招生
[考研] 081200-11408-276学硕求调剂 +6 崔wj 2026-04-02 6/300 2026-04-03 10:19 by 蓝云思雨
[考研] 312求调剂 +6 小小墨123 2026-04-02 7/350 2026-04-03 07:32 by jsw79
信息提示
请填处理意见