当前位置: 首页 > news >正文

【元胞自动机】基于元胞自动机模拟晶体生长附matlab代码

1 内容介绍

基于溶质扩散和界面能的作用,考虑成分过冷,曲率过冷,界面能各 向异性和界面扰动等因素,建立了单个等轴枝晶的生长模型.采用元胞自动机(cellular automata)方法模拟了枝晶生长,界面扰动和分枝的竞争演化.对液相中的溶质传输进行了计算.通过模拟发现,凝同过程中溶质容易富集在枝晶臂之间, 同时,随着凝固时间的延长,界面前沿的溶质浓度梯度逐渐下降.

2 部分代码

%

clc;clear;close all;

rand('state',0);

set(gcf,'DoubleBuffer','on');

N=256; % 生成状态矩阵大小的控制参数

S=ones(N); % 生成状态矩阵S

% S(N/2,N/4:N*3/4)=0; % 设置状态矩阵的初始值

S(N/2:N*3/4,N/2)=0; % 设置状态矩阵的初始值

Ii=imshow(S); % 显示状态矩阵

ti=title(['time = 0',', N=0'],'Fontsize',14,'Fontname','Times New Roman'); % 显示时间

T=0; % 记录时间的参数

for k=1:30000; % 循环计算

    xt=4; % 产生粒子的位置

    yt=N/2; % 产生粒子的位置

    Ss=0; % 控制下面循环是否终止的参数

    while Ss<1; % 计算当前粒子的吸附过程

        [dx,dy]=choose_D(0.25,0.25,0.25,0.25); % 计算粒子位移量

        xt=xt+dx; % 计算下一时刻粒子的位置

        yt=yt+dy; % 计算下一时刻粒子的位置

        if xt<2.5|xt>N-1.5||yt<2.5|yt>N-1.5; % 判断粒子是否逸出边界           

            Ss=2; % 把Ss赋值为2,从而可以退出循环

        end

        if [S(xt+1,yt)+S(xt-1,yt)+S(xt,yt+1)+S(xt,yt-1)]<3.5; % 判断近邻是否有粒子 

            S(xt,yt)=0; % 固定当前运动的粒子

            Ss=2; % 把Ss赋值为2,从而可以退出循环

        end                

    end

    set(Ii,'CData',S); % 显示当前状态矩阵

    T=T+1; % 累加时间参数

    set(ti,'String',['time = ',num2str(T),', N=',num2str(sum(sum(1-S))-[N/4+1])]); % 更新时间参数

    pause(0.01); % 暂停一下,显示动画效果

end

3 运行结果

4 参考文献

[1]黄建峰, 杨屹, 李羽晨,等. 基于元胞自动机法的等轴枝晶生长数值模拟[J]. 热加工工艺, 2010, 39(10):5.

[2]陈瑞, 许庆彦, 柳百成. 基于元胞自动机方法的定向凝固枝晶竞争生长数值模拟[J]. 物理学报, 2014(18):12.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

相关文章:

  • Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低
  • opencv--GrabCut
  • IT计算机企业如何使用科技虚拟员工规避人工操作风险
  • 【Android】-- 数据存储(一)(共享参数SharePreferences、数据库SQLite)
  • 文件包含漏洞——实例
  • Nacos详解
  • 洛谷刷题(普及-):谁拿了最多奖学金、ISBN 号码、开心的金明、数列、多项式输出
  • SpringMVC(二)
  • 操作系统第九讲——线程的实现方式和多线程模型
  • 爬虫——第一次笔记 urllib的基本使用 urllib一个类型,六个方法 urllib下载 urllib请求对象的定制
  • 神经网络电子书,神经网络入门书
  • 面试说:聊聊JavaScript中的数据类型
  • 深入理解计算机系统——第三章 Machine-Level Representation of Programs
  • C# ZXing.net解码测试(QRCode、DataMatrix、1D-Barcode一维码条码)
  • 新手轻松日赚300+搬砖项目详解
  • [NodeJS] 关于Buffer
  • avalon2.2的VM生成过程
  • CODING 缺陷管理功能正式开始公测
  • const let
  • Debian下无root权限使用Python访问Oracle
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript异步流程控制的前世今生
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • vue-loader 源码解析系列之 selector
  • Webpack 4 学习01(基础配置)
  • 百度地图API标注+时间轴组件
  • 分布式事物理论与实践
  • 给新手的新浪微博 SDK 集成教程【一】
  • 构建二叉树进行数值数组的去重及优化
  • 基于HAProxy的高性能缓存服务器nuster
  • 解决iview多表头动态更改列元素发生的错误
  • 聊聊redis的数据结构的应用
  • 扑朔迷离的属性和特性【彻底弄清】
  • 普通函数和构造函数的区别
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 算法之不定期更新(一)(2018-04-12)
  • 微服务入门【系列视频课程】
  • 微信小程序:实现悬浮返回和分享按钮
  • 怎样选择前端框架
  • 正则学习笔记
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 函数计算新功能-----支持C#函数
  • ​ssh免密码登录设置及问题总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #FPGA(基础知识)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (七)理解angular中的module和injector,即依赖注入
  • (三)docker:Dockerfile构建容器运行jar包
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Linux整合apache和tomcat构建Web服务器