当前位置:
文档之家› 蒙特卡罗模拟在材料科学中应用举例
蒙特卡罗模拟在材料科学中应用举例
方法二
XN=(/0,0,-1,1/) YN=(/-1,1,0,0/)
RN=4*RAN(ISEED)+1 X=X+YN(RN) Y=Y+YN(RN)
! Monte Carlo Simulation of Two Dimensional Diffusion INTEGER X,Y,XY(1:1000,1:1000) REAL XYM(1:1000) WRITE(*,*) "实验天数Jt,实验次数 Ic" READ(*,*) Jt,Ic ISEED=RTC() DO J=1,Jt !第几天实验 X=0 !!! Y=0 !!! DO I=1,Ic !第几步跳跃 RN=RAN(ISEED) IF(RN.LT.0.25)THEN x=x y=y-1 else IF(RN.LT.0.5.AND.RN.GE.0.25)THEN x=x y=y+1 else IF(RN.LT.0.75.AND.RN.GE.0.5)THEN x=x-1 y=y else IF(RN.GE.0.75)THEN x=x+1 y=y END IF XY(J,I)=X*X+Y*Y END DO END DO OPEN(1,FILE="f:\DIF2.DAT") DO I=1,Ic XYM=0.0 XYM(I)=1.0*SUM(XY(1:Jt,I))/Jt !! WRITE(1,*) I, XYM(I) END DO CLOSE(1) END
蒙特卡罗模拟在材料科学中应用举例
扩散 晶粒形核与长大
再结晶
1、Monte Carlo Simulation of Diffusion
Mechanism : Rand Walk
方均位移平方 X i (i 1,2,3,...,i max)
X
2 i
Xi
Xi
X ij ( j 1,2,3,..., j max)
! X:INSTANTANEOUS POSITION OF ATOM ! XX(J,I):X*X ,J:第几天实验,I:第几步跳跃
! XXM(I): THE MEAN OF XX WRITE(*,*) "实验天数Jt,实验次数 Ic"
Rn2 nr
READ(*,*) Jt, Ic
变量的定义:
ISEED=RTC() DO J=1,Jt !第几天实验 X=0 ! 每天都是从原点出发 DO I=1,Ic !第几步跳跃
!
! ! !
Monte Carlo Simulation of Two Dimensional Diffusion
INTEGER X,XY(1:1000,1:1000),y,XN(1:4),YN(1:4),RN REAL XYM(1:1000) X:INSTANTANEOUS POSITION OF ATOM XY(J,I):X*Y ,J:第几天实验,I:第几步跳跃 XYM(I): THE MEAN OF XY WRITE(*,*) "实验天数Jt,实验次数 Ic" READ(*,*) Jt,Ic
Model Microstructure The grain structure is mapped onto a discrete two or three
dimensional lattice. To each lattice site an integer S between 1 and a maximum value Q is assigned. These integers represent the crystallographic orientation of the different grains and are called "spins" or "orientations". Thus between two adjacent lattice sites of unlike spins there is a grain boundary segment, while two neighboring sites of like spins belong to the same grain and there is no grain boundary between them.
X
2 i
1 j max
j m ax
( X ij
j 1
Xij )
随机行走:原子扩散的平均距离与原子跳动次数的平方根成正比。
!Monte Carlo Simulation of One Dimensional Diffusion
INTEGER X,XX(1:1000,1:1000)
REAL XXM(1:1000)
RN=RAN(ISEED)
IF(RN<0.5)THEN
X=X+1
X——记录原子的位置 xx( j, i)——记录原子每次跳动后距离原点的距离
j :统计的天数,i:跳动的次数 xxm(i)——统计距离与次数的关系
实验天数:Jt,实验次数:Ic
ELSE
X=X-1
END IF XX(J,I)=X*X !记录下原子每天每次跳动后离原点的距离
XN=(/0,0,-1,1/)
YN=(/-1,1,0,0/)
ISEED=RTC()
DO J=1,Jt !第几天实验
X=0 !!!
Y=0 !!!
DO I=1,Ic !第几步跳跃
RN=4*RAN(ISEED)+1
X=X+YN(RN)
Y=Y+YN(RN)
XY(J,I)=X*X+Y*Y
END DO
END DO
OPEN(1,FILE="C:\DIF2.DAT")
DO I=1,Ic
XYM=0.0
XYM(I)=1.0*SUM(XY(1:Jt,I))/Jt !!
WRITE(1,*) I, XYM(I)
END DO
CLOSE(1)
!做三维空间随机行走?
END
Simulation of Recrystallisation & Grain Growth by Means of a Monte Carlo Model
END DO
END DO
OPEN(1,FILE=“f:\DIF1.DAT")
DO I=1,Ic
XXM=0.0
XXM(I)=1.0*SUM(XX(1:Jt,I))/Jt !!
WRITE(1,*) I, XXM(I)
END DO
CLOSE(1)
END
二维随机行走随机的确定
方法一、
RN=RAN(ISEED) IF(RN.LT.0.25)THEN x=x y=y-1 END IF IF(RN.LT.0.5.AND.RN.GE.0.25)THEN x=x y=y+1 END IF IF(RN.LT.0.75.AND.RN.GE.0.5)THEN x=x-1 y=y END IF IF(RN.GE.0.75)THEN x=x+1 y=y END IF