版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上二維Ising模型的程序設計一、課題名稱:二維Ising模型的程序設計二、班級和姓名: *三、主要容:1. 研究的容和算法:Ising模型最初由Lenz提出和用來作為鐵磁性的一個模型。后來成為他的研究生Ising的博士論文的題目。1925年,Ising給出了一維情況下的解,該解顯示,在一維情況下,Ising模型沒有相變解。1944年,Onsager得到了二維Ising模型的準確解,二維時就有了相變。對于三維,至今還沒有嚴格解,需依靠數(shù)值計算得到。物質(zhì)在外磁場H中的磁場強度M為(1)抗磁體,<0,數(shù)值很小且是常數(shù),不隨溫度變化;(2)順磁體,>0,數(shù)值很小且
2、隨溫度反比或與溫度無關;(3)鐵磁體,在一定相變溫度Tc(Curie溫度)之下,M不隨H作線性變化,具有磁滯回線是磁體物質(zhì)的在磁場中行為的基本特性,磁化率與外磁場有關。在Tc之上時,鐵磁性消失,轉(zhuǎn)變?yōu)轫槾判?。?)反鐵磁體,溫度在Tc之上時是順磁體,之下時隨溫度下降而降低。對于二維Ising模型,令:G=Ld為一個d維、共有N個格點的體系,在每個格點i上有一個自旋,可以朝上或朝下的方向。用自旋變量i表示,。在外磁場H中,體系的哈密頓量為:,其中J 為交換關聯(lián)系數(shù),B表示單個自旋的磁矩,<i,j>表示只對格點i周圍最鄰近的給點j求和。 J為正時為鐵磁體的模型,各個自旋傾向于同向排列;
3、 J為負時為反磁體的模型,各個自旋傾向于反向排列。2.模擬二維Ising模型的步驟:為了方便,令為1。(1) 選擇任意一個初始位形Xx1,x2, xN;(2) 按1/N等概率的選取一個格點i,將其自旋反向,得到一個 新的位形Xx1,x2, xN;(3) 利用公式 ,計算能量差E=E(X)-E(X) ,若E<0,則改變有效,位形改變X X;(4) 如果E>0,則再產(chǎn)生一個0,1之間的隨機數(shù),如果 ;則位形改變有效,否則位形不變;(5) 返回步驟(2),進行下一次迭代。()固定外加磁場,磁化強度隨溫度的變化源程序#include <iostream> #include &l
4、t;string.h>#include <math.h>#include <iomanip>#include <stdlib.h>#include <fstream>#include <cstdio>#include <iomanip> using namespace std;const double pi=3.;const double em=1.0e-12;double randx,randnum;unsigned long randxi=1;const unsigned long randa=16807;uns
5、igned long randm=;/ random number creation *void random_number() if ( randxi = randm ) randxi=randm-1; randxi=(randa*randxi)%randm; randx=randxi; randnum=randx/randm; return;/end random_number */ main *int main(void) FILE *fp8; fp8=fopen("固定外加磁場,隨溫度.txt","w+"); const int lenx=100
6、,leny=lenx; int spinlenxleny,imlenx,iplenx; double mag0=0.0,mag=0.0; double enj=0.5,magmax=0.0; double temp=0.0,den=0.0,trapro=0.0; int l=0,mcsi=0,mcsmax=0; int i=0,j=0,ix=0,iy=0,iz=0,kx=0,ky=0,kz=0,t=0; int dspin=0,imx=0,ipx=0,imy=0,ipy=0; double H=0.0; for (i=0;i<lenx;i+) imi=i-1; ipi=i+1; im0=
7、lenx; iplenx-1=0; /設置邊界條件 mag0=lenx*leny; magmax=abs(mag0);/磁矩最大絕對值 cout<<setw(15)<<"H= "<< 'n' cin>>H; mcsmax=pow(10,5); for (i=1;i<=100;i=i+1) temp=temp+0.1; mag=mag0; for (ix=0;ix<lenx;ix+) for (iy=0;iy<leny;iy+) spinixiy=1;/初始狀態(tài),設置所有初始磁矩為1 for (
8、mcsi=0;mcsi<mcsmax;mcsi+) random_number(); kx=int(lenx*randnum); random_number(); ky=int(leny*randnum); imx=imkx; ipx=ipkx; imy=imky; ipy=ipky; dspin=spinimxky+spinipxky+spinkximy+spinkxipy;/ 對格點(ix,iy)周圍最近鄰的磁矩求和 den=2.0*enj*spinkxky*dspin+2*H*spinkxky; /能量變化,由于磁矩從-1到1或1到-1,所以乘系數(shù)2 trapro=exp(-den
9、/temp); random_number(); if (den <= 0 | randnum <= trapro) mag=mag-2.0*spinkxky; /磁矩的變化 spinkxky=-spinkxky; /自旋反轉(zhuǎn) else goto label1; label1: continue; fprintf(fp8,"%15.6f %15.6f n", temp,mag/magmax); cout<<setw(10)<<"OK"<<'n' goto labelout; labelout
10、: return 0; / end main *計算結果及具體分析討論取關聯(lián)系數(shù)為0.5,外加磁場分別取0.5,1.0,1.5,得到磁化強度隨溫度的變化關系如下圖:外加磁場由圖可得,在不同的外加磁場下,隨著溫度的增加,磁化強度降低,這應該是溫度增加導致的電子的熱運動增加,電子運動變得更加無序,所以磁矩變小。()固定溫度,磁化強度隨外加磁場的變化源程序#include <iostream> #include <string.h>#include <math.h>#include <iomanip>#include <stdlib.h>#
11、include <fstream>#include <cstdio>#include <iomanip> using namespace std;const double pi=3.;const double em=1.0e-12;double randx,randnum;unsigned long randxi=1;const unsigned long randa=16807;unsigned long randm=;/ random number creation *void random_number() if ( randxi = randm )
12、randxi=randm-1; randxi=(randa*randxi)%randm; randx=randxi; randnum=randx/randm; return;/end random_number */ main *int main(void) FILE *fp8; fp8=fopen("固定溫度,隨外加磁場.txt","w+"); const int lenx=100,leny=lenx; int spinlenxleny,imlenx,iplenx; double mag0=0.0,mag=0.0; double enj=0.9,mag
13、max=0.0; double temp=0.0,den=0.0,trapro=0.0; int l=0,mcsi=0,mcsmax=0; int i=0,j=0,ix=0,iy=0,iz=0,kx=0,ky=0,kz=0,t=0; int dspin=0,imx=0,ipx=0,imy=0,ipy=0; double h=-10; for (ix=0;ix<lenx;ix+) for (iy=0;iy<leny;iy+) spinixiy=1;/初始狀態(tài),設置所有初始磁矩為1 for (i=0;i<lenx;i+) imi=i-1; ipi=i+1; im0=lenx; i
14、plenx-1=0; mag0=lenx*leny; magmax=abs(mag0); mag=mag0; cout<<setw(15)<<"Temp= "<< 'n' cin>>temp; mcsmax=pow(10,5); for (i=1;i<=2000;i=i+1) t=t+1; if(t<=1000) h=h+0.02;/磁場從-10增加到10 else h=h-0.02; /磁場從10減少到-10 for (mcsi=0;mcsi<mcsmax;mcsi+) random_num
15、ber(); kx=int(lenx*randnum); random_number(); ky=int(leny*randnum); imx=imkx; ipx=ipkx; imy=imky; ipy=ipky; dspin=spinimxky+spinipxky+spinkximy+spinkxipy;/ 對格點(ix,iy)周圍最近鄰的磁矩求和 den=2.0*enj*spinkxky*dspin+2*h*spinkxky;/能量變化,由于磁矩從-1到1或1到-1,所以乘系數(shù)2 trapro=exp(-den/temp); random_number(); if (den <= 0 | randnum <= trapro) mag=mag-2.0*spinkxky;/磁矩的變化 spinkxky=-spinkxky;/自旋反轉(zhuǎn) else goto label1; label1: continue; fprintf(fp8,"%15.6f %15
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《社會心理因素》課件
- 《電信業(yè)風云》課件
- 寒假自習課 25春初中道德與法治八年級下冊教學課件 第二單元 第2課時 公民基本義務
- 《沙盤規(guī)則介紹》課件
- 《定價的基本策略》課件
- 班干部工作總結3篇
- 2023年學校志愿者心得體會字萬能-學校志愿者工作總結(5篇)
- 2023-2024年項目部安全培訓考試題附答案(典型題)
- 畢業(yè)銷售實習報告模板匯編八篇
- 2023年項目部安全管理人員安全培訓考試題及參考答案(模擬題)
- 推板式造波機的機械結構設計
- SAPHR快速指南
- 廣東海洋大學大數(shù)據(jù)庫課程設計
- 商業(yè)發(fā)票INVOICE模板
- (完整版)食堂管理制度及流程
- 某醫(yī)院后備人才梯隊建設方案
- 二年級上冊英語教案Unit6 Lesson22︱北京課改版
- 桂枝加龍骨牡蠣湯_金匱要略卷上_方劑加減變化匯總
- 電機與電氣控制技術PPT課件
- 廢棄鉆井泥漿和壓裂返排液無害化處理研究報告
- 論文-基于單片機的搶答器.doc
評論
0/150
提交評論