From c69bc81da379f0060450abf3cf9e07922d8ed2ac Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Mon, 9 Feb 2015 15:43:40 -0500 Subject: [PATCH 01/11] One of the first commits. Added del_energy routine,global varibale file and is currently compiling. Working on random generator bug --- src/Makefile | 6 ++-- src/global.f95 | 15 ++++++++++ src/global.mod | 61 +++++++++++++++++++++++++++++++++++++++++ src/global.o | Bin 0 -> 1617 bytes src/ising.exe | Bin 0 -> 11710 bytes src/ising.f95 | 50 +++++++++++++++++++++++++++++++++ src/ising.o | Bin 0 -> 7848 bytes src/ising_routines.f95 | 14 ++++++++++ 8 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 src/global.f95 create mode 100644 src/global.mod create mode 100644 src/global.o create mode 100755 src/ising.exe create mode 100644 src/ising.f95 create mode 100644 src/ising.o create mode 100644 src/ising_routines.f95 diff --git a/src/Makefile b/src/Makefile index eb24188..e041fc3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,15 +1,15 @@ FC = gfortran FFLAGS = -Wall -Wextra -march=native -O3 -fimplicit-none #FFLAGS += -pedantic -fbounds-check -fmax-errors=1 -g -FFLAGS += $(shell pkg-config --cflags plplotd-f95) -LDFLAGS = $(shell pkg-config --libs plplotd-f95) +#FFLAGS += $(shell pkg-config --cflags plplotd-f95) +#LDFLAGS = $(shell pkg-config --libs plplotd-f95) LIBS = COMPILE = $(FC) $(FFLAGS) LINK = $(FC) $(LDFLAGS) TARGET = ising.exe # Name of final executable to produce -OBJS = plot.o ising.o # List of object dependencies +OBJS = global.o ising.o # List of object dependencies $(TARGET): $(OBJS) $(LINK) -o $@ $^ $(LIBS) diff --git a/src/global.f95 b/src/global.f95 new file mode 100644 index 0000000..f65cd95 --- /dev/null +++ b/src/global.f95 @@ -0,0 +1,15 @@ +module global + + implicit none + + integer :: latticeSize,ii,iters,n + integer, allocatable :: lattice(:,:) + real(8) :: rand_loc(2) + integer :: rand_loc_int(2) + real(8) :: del_e + real(8) :: h(2) + real(8) :: j !magnetic coefficients + real(8) :: temp + integer :: spin + integer :: h1,h2,h3,h4 +end module global diff --git a/src/global.mod b/src/global.mod new file mode 100644 index 0000000..4bf20f1 --- /dev/null +++ b/src/global.mod @@ -0,0 +1,61 @@ +GFORTRAN module version '0' created from global.f95 on Fri Feb 6 12:58:12 2015 +MD5:a07b1f53039efeb355014739b8bfca4c -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +(2 'del_e' 'global' 'del_e' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +3 'global' 'global' 'global' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +4 'h' 'global' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 +'2')) 0 () () () 0 0) +5 'h1' 'global' 'h1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +6 'h2' 'global' 'h2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +7 'h3' 'global' 'h3' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +8 'h4' 'global' 'h4' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +9 'ii' 'global' 'ii' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +10 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +11 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +12 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN ALLOCATABLE DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () +(2 DEFERRED () () () ()) 0 () () () 0 0) +13 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () +() () 0 0) +14 'n' 'global' 'n' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +15 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 +EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +16 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () +(1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +17 'spin' 'global' 'spin' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +18 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +) + +('del_e' 0 2 'global' 0 3 'h' 0 4 'h1' 0 5 'h2' 0 6 'h3' 0 7 'h4' 0 8 'ii' +0 9 'iters' 0 10 'j' 0 11 'lattice' 0 12 'latticesize' 0 13 'n' 0 14 +'rand_loc' 0 15 'rand_loc_int' 0 16 'spin' 0 17 'temp' 0 18) diff --git a/src/global.o b/src/global.o new file mode 100644 index 0000000000000000000000000000000000000000..03d632bfa16e571ef98db746e3922dc99a5f9dd4 GIT binary patch literal 1617 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 P!jp^^HGVMA2><^A^b<2k literal 0 HcmV?d00001 diff --git a/src/ising.f95 b/src/ising.f95 new file mode 100644 index 0000000..b269042 --- /dev/null +++ b/src/ising.f95 @@ -0,0 +1,50 @@ +program ising + + use global + + implicit none + + latticeSize=10 !Lattice Size + ii=0 !Iteration Variable + iters=3 !Number of iterations the program runs through + rand_loc=2 !Init Random Location Variable + n=1 !Random Number Generator Seed + j=-1.d0 !magnetic coeffient + spin=0 !spin initation + + allocate(lattice(latticeSize,latticeSize)) + lattice=1 + + do ii=0,iters + Call random_seed(n) + Call random_number(rand_loc) + rand_loc=rand_loc*latticeSize + rand_loc_int=int(rand_loc)+1 + print*, rand_loc_int + end do + + call del_energy(lattice) + print*, del_e +end program + +subroutine del_energy + + use global + spin=lattice(rand_loc_int(1),rand_loc_int(2)) + h1=lattice(rand_loc_int(1)+1,rand_loc_int(2)+1) + h2=lattice(rand_loc_int(1)+1,rand_loc_int(2)-1) + h3=lattice(rand_loc_int(1)-1,rand_loc_int(2)+1) + h4=lattice(rand_loc_int(1)-1,rand_loc_int(2)-1) + h(1)=j*spin*(h1+h2+h3+h4) + print*,'h(1):',h(1) + if(spin==-1) then + spin=1 + h(2)=j*spin*(h1+h2+h3+h4) + else + spin=-1 + h(2)=j*spin*(h1+h2+h3+h4) + end if + print*,'h(2)',h(2) + del_e=h(1)-h(2) + print*,'del_e',del_e +end subroutine diff --git a/src/ising.o b/src/ising.o new file mode 100644 index 0000000000000000000000000000000000000000..bb2770ff5bdf6ae8f24e4adca7118b82e5008f29 GIT binary patch literal 7848 zcmbW5e{5UT700h*mxdDT6uPwxXdlCcq-srETGk*KahlPW;uOYcJ4C^_iPLyi#|2#xgaSMA6%ZzQ{4?r=8+Hn^c+=`VqMmF@R_r${EwY##Ub0b~7uydliT%mkA9F{xKjH%LY4kXHXlD#pV7 zq4b3i<-P9zm%ej%?DA22e@7H!RFpQxDV>`Jamz+5 zVVj1po78io?B~%MNt^wGR!DnJYaj2?ZO)^t*1)w!tAxVpO`l!%_C%$Bwq9G6Dz;YV zQRj_{VKA+zf(jMQ3){#@jvC*ylPvT|M#dt;+X>lvZze~VQU&UqH$|r6Nm@>Jxg)yB z?A*@Q-y}y(?{A6LM;=>D?vi>}C(B1B&g8w?owOC#yA3aDhskJT(%rJ~q+R~h{>Q-$ z?($uo?w0v=Uc8g7Z$uv3OLocf@#nF|N=G90`0+Zs`7OKrYUxPOZar*A)*Z4(4n~H@ z>y%pWuG(dn&+vTPrSZW2v%FE4UJlvi*X`!d?AGJkkJ_z=oc_-8d!5biB+Do5@e_4P zcfr%>P}j&oC)VjMI6vuzcE%6(di}7=@7Sfi0ek$zklp(BzVX2aLM_{mCj)PFwZ7vl zO_mSa&7a!tg8B69j4WwWUb}U=-MyjC)>poDqO-Iw&=r_W26Hst)*gzEyO_c^x&n<> zCUxXQ<`ocT3cYkLk^TzH~&J;F!{u z3w3G@=`@Ogvf+%wNFV3+gZpqw+;)3nOXBv#9f{OS-oc=c6RNJJn>zDR&u3FpmATCp zvjf{=y{)U&jdwd%zSru{^ydqMDwlSgYhuL;W(N8yBzAE<>ak&E|>34I~h_6nRL(KH0ZI?g+hAJ zx_oI7uhAJY!~{O&qt>lmd$rZHZo|fAYgKGj>?&(zOMGR^l`X5SrkgW8mYsGqU$Lqg zJ{A~9fqQONfgO#33mfLv<4B7VzsQvR2+JlBZYq& z|F=G_DQJHsJyN)R?`9?nU<={2&FENyQpQaG+ax62^5t#H&(=N%YL(BP8IFQ8P7`es zR5Ld<<|IJ&mhr+Vvcc(SnL?8Ul{r+ZG1+@3bQS%Am*c2cik2A8`=C;ScE!i7DOgJB zc_MD!JBJv~kJ)_OP=nuDgBNP>hidTe)ZkCn;Lq0J<2Cr3HTWNDaD-;II4r8cTWavN z#1ZG+X5D-5Y-)3T4f{K5@WC3qT!TMRgFjn?kJsP_YVhCJ;HPTv2#tTXcrL5KRpo}5 zr|VmOpcre3#aCb1s$$8tEAbPLEALJ?kSS~%OsQ0ATQ0vfolAAy*pVuv2YOO;)k|gR z(ot2ychV|Yyem6UZPpj}tqB1FZN~% zsqVgXA>Hj{3bPf`jWs7Y`$_fW2gsQmzP>AWB|0~xC@__lGfv6`v)bMSrI@|P=O~-4 zHl%JBiq(iiT}=m6zjxObt-~sn$q@~K2fpl=^Am!TTfR;1^{BST-G=SGzZfVFKe%Et-%mOO9N!GgUk4-s$KNl^4*`;Zf1V!Z zM*vB{F-GQm^n>H>z;OOUR)6ZeS z5eHsByA1cQ6P&{kfBb)KILDvY)*)dp-`g@joHBjQ>f&;29B-507gHI>d4=F|y)}zs<+}Q=;Bs9(DY%U1PYvhzSZ2Vl347cLInIX!$9cv3=(OPQ!Rxlp zT;frDiQo-_e^Ky-f?rCU+gJN8G<;#e+x1s_~RMEe2vbkhkU%r@W%zmyMyENl;H4xjj?~)$N9VYXFkq; ze&OTBjrx_3W35Bp_HoPsChW1+*neJddA{8(IOc`zhiY(FaI8-2eap literal 0 HcmV?d00001 diff --git a/src/ising_routines.f95 b/src/ising_routines.f95 new file mode 100644 index 0000000..9282f21 --- /dev/null +++ b/src/ising_routines.f95 @@ -0,0 +1,14 @@ +module ising_routines + + contains + pure function energy(lattice) + + use global + + implicit none + + integer, intent(inout) :: lattice(latticeSize,latticeSize) + + print*,'latice:',lattice + end function +end module From bd08c49e0c8e8d8ce8e05424165663d8e14b4e42 Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Mon, 9 Feb 2015 16:00:37 -0500 Subject: [PATCH 02/11] Fixed random generation indexing issue. Added zero padding on matrix. --- src/ising.exe | Bin 11710 -> 12222 bytes src/ising.f95 | 8 ++++++-- src/ising.o | Bin 7848 -> 8432 bytes 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ising.exe b/src/ising.exe index 1198a678fb2e648ea7f2bd8a169528603292c439..1e3b280fceb2feafb2ccb869c95984ba0ddeac61 100755 GIT binary patch delta 4161 zcmZu!4Qx}_6@Jh01DnKoc48-XNMe(|Gzp|YRv2?Pim4*FW=@w7)jd=3hQb^p|lM@AuHZ@uAhl< zdnMm{zVDuM?>Xn*ci!{C`wp%jY>{i8nfpRpl_Xlo7$wOku#A2New_y2S=A%>&MIz_ zn;Zta)nK<)@!RC}4wq1oe6D~Hd@la7JmkFZ&?hHfJTWxX`1pM`#23<=bF^fhA93 z+*QC^3;5jy{Hy~0#R9&xfZtodmr2sy*QfRuOxUiol9VXm%M19!1-x3oA93@cnT-(z zi?isPmN&ACpR)U;Y-2xq)f<3Bcq3V4PG->>pCC+0&KwbVGhs?@CL!=9!gM&9y#hZ# z*i3l0!1ofSq-O>NUJV@CNZHQx31Sr~P?9sf0^dQHlAGxf_%_0n)J&(qUn5M(%mf6U zOPG?FStxJ=VZpO)!;MSQ(I5YB(T<)P;(G zlx~9N#NZ%{er#beWTq?6LMiJ^3ZaF6x zwECJ!Ikxl_46((>1gLvl49fRuNcC%nk@mGte%cz8ResB?`H^{81AGE}AH;TD*;DS5 zR>aLS^`$RC(rqtLuRMpI=_i)Q%Ph&MwaO46%-)0VPIf4-gUkHuS~e?g#PaVR-0kEKmwDwf zK2WAbFiDpOc%9d}t7>rT=sl2^mPJ{XYc7Vy=4Vgkp_e4De#C z6hlfmhT$Tf6sEUpZrs%mfJ6RMp_p=l6!bNkUESdl3oItxpnfbl`KYo94?A0|f5!Ah z8XNwvDX8u_#`Lge3B|i_yU6sb?DFWH@kP6W@ou|m!(hmtQg^(LU_$z5{C(RT(|$A0 z+S>`HyY> zDCi#vKir|e9c(!o(*Mnd&r=A0ydDC!s!UFPl3?-H!M4#2gG@ilqOZ$r__Ue%|CyYO zwAV>SWJkkwLHV6kap#Mw7gYxviWeW$%|Sl`W)He9S#cQZ9%n=g#n)8B!_600#cKzn zrxD9p#PVMBG-7!hv5d2U_rk5K;$_(JD!mS9*A!hnTH4I?V*1Ee@L@Ox>yX?iN(I9iL+7nT%|Q}dvG@U$55#eIXycPlRppo|F-Qsd(f7( zAn0=9kI? z5h`)0K5o3&a9^_N+b?IcF(p77=qG5#g0veY$_{Zh76L0l?8}K}h;$dCX_HYXY*v_4 z!N`rRRBde+XAFsiQ)WRk z-YNT&x+^;aFZY3$P>Jx~GJ!W9*q`93jdyFlwnVxc@rX#;wPvGmF7%S)?V3*n(5`7S zfYYC2aVVnlZ$RmnC`Gcd?^>FA@=b;u-M4Oe_wsei?_a+D4HmN{us_qww9J($GM>yl zg7MHoDzh%w9Jn3Q!34TPE6~B4N5v+SnWZSgeB55|cuo-K@ot$1DZOHnTO5n6Qzq1# zc;keLuW-yW-8#V^bF8)Xf@IMv*|6s|e2R`cG;4MOyVA$bzN(69*$32#NCJp>E5;*u zSslh`M|#p2eY~TxRi5BaR5mFHOrOD@ue{lG(+vLi%7!@-l)nijDfF}{TGC$b+f+_3 z2+4`xAMo>WhqGFC^A_i;CX17way|;M+Lh%ab1L~s*}QLK)k4L@O8GBl&!1&Mu+*S9 zI(v!LKt3n`jk}6B*Uqs{eTQ(g@YUXB^4xtpy+4(|mk%tblGo@gGHzFIk^U>-O_EJI zQpumXX=NmTbqvD~h1Hkiof7jEQmAOPGU4Qxc`tZbLSBpXo5A~}>AZ2KwNN#pCLRZj z4?@Qwd8D5kJc@#7n+@Jq#6M;5twsD!@D+%ZKGLb7ii$R5@Ci#mV17aCswuvBSByos zd-wy5D`gLVxp9H)M?s delta 3629 zcmZuzeNa@_6~AwnC%eG1pX>sy>_Z=)K|VTFLsIKv7=4)4A~6;W1}3#F!W-t|llDhq!yKiB; z$(ecg+~4n>bMLw5e!M%`HTlqJl~njl_45rLCM0NR#uR}ilq>MH8hop#Tkx$OZjvgT z27B0G4}17MQkT;$Oqk*hh>GIoC#7-EqiWq#L(%h3ytMmJ=W5rNif)(=WlwaQuABS4 z-NKH>F^gKV=rQ;8^KpIbDq~w^v_tOCMrDQbC!IC1OpG)Jd zY5a*aJ|~TTA&t*X<4>pYd5k@<)O04T!M4OQ7Ea^y)A);NygiM7!^_9B%lhXLq&9fL z@@iu3(R_s^%7#$d{Q=Yn_mD??HUTMnk}xGX{)WH@2~%?8VS#%I)8fQW3;YP-EW#%Q z-c6X29v>CB4YhHEYQrTT|8{fajDuesKpEzz*z3@|M^T`yF0))8Q_3RvD4 z9n}UuuxKOl4jZ4hRBX2?jD6?+b3NG7AkPA7Pru(yXnN7C4ZbgFjWdVTZ`l3K49N{k znl3*Jql70Sj7H?|lS|{w!7H!HhitspTI|a~mk(F{+6W}+DsHRVDNZa5FWgng(MduK$h0Wiy}M5&^TEIMpAu;^yF zIEmyE=%_rD$4hd3{#?Wt`iVLVUz%tPx&z~)I)`c<- zuv%vMhA3~MjLQ4qi+I3Z1&%CMhbf)Ox>J4yT>Ni$5(%**n!Y-D!o|Oy=a+K$aGu(a z#vBSoehf8|sC)o5I!T&ti=e9M1+PIx<7;LBq1#u1~i58XHQO!Xks(VsqQF%A9 zNrR2c?9S!tj@0<@TW1*ChxcLhsZsP6``v9MWH@XedK{ECQcwng^J2= zLe1l(XnM0+h`ss`;FiWe2S;r0l7YTcwb+lBpu6D62C@z6S0cCe%e~k~Eo<$k{<1Zc z_j@r7J*YZ@p-$htrr*{+zPvqD^IS`)(`gck3pW1Ae*6{K1@)`^9b2hs+QbvK2LIn% zs@@9f^V;+^Q!wQD6?L?2_;O!uOUUC6hO+oq@;`5_fBb4ty0oqFE#8-}*1i7SYb}Ep zq;1k-(7X>LHtt1$p%TnsWX%x^W%^qvNrtc4j~(Gtj;a;d+p!mJ@edt=`)HeE2NvRT zgG(Z|?p7j!HJ8`H3F~enjqOi17F>|D|7bf@P|riE1C)<6)cTE)V^|9@vb>NyXn*(^q08B@47Ey)5xwA(6}ZNSe~mqd z8!7={EX@(DPpDH>8p5#-L@lChRx6DoQvW$j8D~NnNNRNjbZict!w_d2zoAJ+iMW%b zV!KE`eL+Je9@^8?*|ewW;ij%v&wd#*o(!Xy+Kd8Y{ZQE7itojRFjWsOmIr2(gvVVa z&fkjm4{>GOi&|{gA}@5WwdR_!RYGN1X1>dPm+8Kne9+xt8!%xqgA0kiqH}m*#NDdZ zPR{fX@KfdZ^gt(6c_(lv6oktlvfj|$AFgK zQJ0rdw}-p@OKtc=v@IjNt;YQ8Eyf>T<2(F*KIbpuub0?)q0(SA8fFl#vOb00@$xZc zqs1#CW9_^_b@LCDGK()s+z~`gX_@5bZKWHf%89Ykr=Xw#_KA#b-PNsPRs4dG+QI$SpN-u&pF&hgz`O&g1{i)4lIKC&me5}=o!JyfqsJK`# zWAr=`!!6&H+7kNNl`6X&>KRRacbZ<;ScX?0N#Hdc3NxJtM@uXr(?YGral?uQLXp mitq{W6k&H>Ku}~yGQeM|^6@~m6&c-Hz1cMDm>8?Bk^cvDut9kM diff --git a/src/ising.f95 b/src/ising.f95 index b269042..25d053d 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -14,12 +14,16 @@ program ising allocate(lattice(latticeSize,latticeSize)) lattice=1 + lattice(:,1)=0 + lattice(:,latticeSize)=0 + lattice(1,:)=0 + lattice(latticeSize,:)=0 do ii=0,iters Call random_seed(n) Call random_number(rand_loc) - rand_loc=rand_loc*latticeSize - rand_loc_int=int(rand_loc)+1 + rand_loc=rand_loc*(latticeSize-2) + rand_loc_int=int(rand_loc)+2 print*, rand_loc_int end do diff --git a/src/ising.o b/src/ising.o index bb2770ff5bdf6ae8f24e4adca7118b82e5008f29..07cc21a8f390884c79902465df0f64a3cf5428d4 100644 GIT binary patch delta 1988 zcmZ`&T}T{P6rMZIuKQkz$KKPi>mlRq|kw6{_*%h{%ng*)YSSx6wr6&HxrWJqF?YXlvIuUx{&b{|L zzu!G)Zk$|sGaf+ht4EUP=+(tF^eXuSHKXGLLH2W07_%|Voj78cM+^w=O7NYnHu5m% z*!!|LBU3G)>UqJ-_ZGqh$Bt7(QpZvoZHDqGR%->E{F9aV{xPgZ1c$6OyuOOnO}sYp zmR8#*X$@YsB`%9;zIPD3W%Vh!#2sXBbEKE6@lQ*EaanzalS{0u6?{wMhq^{0$0V&F zU)DTin)5kp+UI3791_O~XA`1#JC-CRh2$KcAm>27khsWe{!At#$0`L$S#s;CRA7Z; zP?}yyNRz!R)*4Q&Vy&Q0nc;DAp2cgwDKj~;I3)3BhjG^k-#MQHPMS=uYP+$z!Tak0 zP?9KZr-fnV2M$No`#A6ni(}zANgR$ehtzvgU{qG8aB`VaxV1w8Qst*Mo+PkV8Lt^> ziDPvXD}x9pXE`iBNNq&xOBsXNXrxp^_k&u&4c?zk$Yv7`a*_yy@r6SD&i5BY1z9^^ z1Qmu?gPJd{%mSAM;4-Pq0+)NhWde6iMk<4v2QqH*{x=}tAWFk~=v+9gj_Cvz+ULMN z(u~z{DKH@eExiXmqX(0bDjAJt>-Y85jL^c=VXQ9I36!gpy#%8T%FV zHA&m6k)N#F>&tO0Td?X89EbFLHYr%rM`_a$=8b=W-qo;|wUr;(Ec z;p-wj`gchGx;zx2J|B1jROdOxCd$YVz;5EoJB@e}gm3;pPo6!;sp|92FhO$8TSRVp zS5W!D^?lVWS|C^}{Yq|aXl3+U^zZNbYeIGYO>5NdxA*1BPT!oXdC39wA5v)ESvXvXiz z;!(y8;33l*_Ae|BuUH(uwBThH{3`>eadw6b&Z8E48sAJj`5Yc)7!H(F=AKjRIy~8f zoA&D#+zb9@0-Hk*r@s)zO>tT9VgPmfC_LZWhJrG%I$X3k95x-m{*ndvS@5t0r>!vy z>i8eL2XNq@?d3j;!!?ToZ^6GY@V!s{qs4xQ85H`!!0Aks!ZKxY*FLKM>1L&~y9&n2 zY}Uf0(rwPh*lwqoz JscmaO;P?&@XG1JB)apZELxc;CC*Jb14) z;l}#$h8bKp{$(3C!z%8@Ey*Bv4Hx%o5SmV4gw_x-e=H>q4`|?{rs;IR`&Jq?XKDPn zOAyB@iAox6r9_H52W&uHwAORhpm?sRPVfD z8?tmReNx%fihq9CC2&-R5W(4Hf(i+8z*k)vR0$;(99PmBQ$r~XhlD}=5M~7rE{83l z4NmEI8GCjznQ2;N4Z&so5qM%OO{Vlt%td%uHq>&pd{S#PV6#g{MT$X-)eat0nPAU> zLFh2;<9c*3Wh{XSQ@t8~$b|;859=Uk_Q8Z%2MMzm3$Q?#00s-a(yX% zut2aL45AO4AxN&)mY67D|V6}r&X z8xDuU$?wHawRk^FIf>XQz-wnB$}6W!Pi{By-{jn>85mwe_>UaU_!Mp+%tc(aHb!4d zpjs!Ua3f)RR57{V$Z;E@jq8Z33AdoT!V$g8l%r|t>SLyy5|UMfp5^J4gF)+gT&?ph zkE{B0jz_a&6*7$lZMM%}o_j*b%saX_Gza%$twQ+f#p5{@j*1`Si!+!wQ-&O?x From 140343a7df3c0505c637062fc129973664efc6b0 Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Mon, 9 Feb 2015 16:39:34 -0500 Subject: [PATCH 03/11] added flip_bit routine. stable state. (2/9/2015) --- src/global.f95 | 8 +++++-- src/global.mod | 57 ++++++++++++++++++++++++++++++------------------- src/global.o | Bin 1617 -> 1830 bytes src/ising.exe | Bin 12222 -> 13153 bytes src/ising.f95 | 34 +++++++++++++++++++++++------ src/ising.o | Bin 8432 -> 10424 bytes 6 files changed, 69 insertions(+), 30 deletions(-) diff --git a/src/global.f95 b/src/global.f95 index f65cd95..0bc995a 100644 --- a/src/global.f95 +++ b/src/global.f95 @@ -2,14 +2,18 @@ module global implicit none - integer :: latticeSize,ii,iters,n + integer :: latticeSize,ii,iters,n1,n2 integer, allocatable :: lattice(:,:) real(8) :: rand_loc(2) + real(8) :: rand_temp + real(8) :: temp_prob integer :: rand_loc_int(2) real(8) :: del_e real(8) :: h(2) - real(8) :: j !magnetic coefficients + real(8) :: j !magnetic coefficients real(8) :: temp integer :: spin integer :: h1,h2,h3,h4 + real(8) :: k !boltzman constant + real(8) :: B !combination of temp and boltzman end module global diff --git a/src/global.mod b/src/global.mod index 4bf20f1..fa9b475 100644 --- a/src/global.mod +++ b/src/global.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from global.f95 on Fri Feb 6 12:58:12 2015 -MD5:a07b1f53039efeb355014739b8bfca4c -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from global.f95 on Mon Feb 9 16:37:15 2015 +MD5:87afde1a74226fdbbbdefd5d4acdf1ea -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -12,50 +12,63 @@ MD5:a07b1f53039efeb355014739b8bfca4c -- If you edit this, you'll get what you de () -(2 'del_e' 'global' 'del_e' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +(2 'b' 'global' 'b' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +3 'del_e' 'global' 'del_e' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -3 'global' 'global' 'global' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +4 'global' 'global' 'global' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) -4 'h' 'global' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +5 'h' 'global' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -5 'h1' 'global' 'h1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +6 'h1' 'global' 'h1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -6 'h2' 'global' 'h2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +7 'h2' 'global' 'h2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -7 'h3' 'global' 'h3' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +8 'h3' 'global' 'h3' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -8 'h4' 'global' 'h4' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +9 'h4' 'global' 'h4' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -9 'ii' 'global' 'ii' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +10 'ii' 'global' 'ii' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -10 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +11 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -11 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +12 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +13 'k' 'global' 'k' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -12 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +14 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN ALLOCATABLE DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (2 DEFERRED () () () ()) 0 () () () 0 0) -13 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT +15 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -14 'n' 'global' 'n' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +16 'n1' 'global' 'n1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +17 'n2' 'global' 'n2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -15 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT +18 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -16 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT +19 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -17 'spin' 'global' 'spin' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +20 'rand_temp' 'global' 'rand_temp' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () +0 0) +21 'spin' 'global' 'spin' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -18 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +22 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +23 'temp_prob' 'global' 'temp_prob' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () +0 0) ) -('del_e' 0 2 'global' 0 3 'h' 0 4 'h1' 0 5 'h2' 0 6 'h3' 0 7 'h4' 0 8 'ii' -0 9 'iters' 0 10 'j' 0 11 'lattice' 0 12 'latticesize' 0 13 'n' 0 14 -'rand_loc' 0 15 'rand_loc_int' 0 16 'spin' 0 17 'temp' 0 18) +('b' 0 2 'del_e' 0 3 'global' 0 4 'h' 0 5 'h1' 0 6 'h2' 0 7 'h3' 0 8 'h4' +0 9 'ii' 0 10 'iters' 0 11 'j' 0 12 'k' 0 13 'lattice' 0 14 'latticesize' +0 15 'n1' 0 16 'n2' 0 17 'rand_loc' 0 18 'rand_loc_int' 0 19 'rand_temp' +0 20 'spin' 0 21 'temp' 0 22 'temp_prob' 0 23) diff --git a/src/global.o b/src/global.o index 03d632bfa16e571ef98db746e3922dc99a5f9dd4..4d7847797b58968bbe8fa80a92e0397858fe9623 100644 GIT binary patch delta 509 zcmcb}vy5-U3`WKulV>viXIwCOCX+em3|0m(=$m|#>As;fkS)l-%)kK=gwuLZaRI0} zjJBP8ky%{Q7b>d)m1Tj_v6C5D#3gf~vN~w8wUZ5jvb|7Q6ExWclM`9Q>(@hN9iXx> zckP3UCqTtLp!8*^_zEZ==8`v1@il1Tf1u(U(8PHd!QoKPZ~!U+^RN;`g5d&G9OfV! zsQ3*u@nER<1E@I6L8(yj7ij9sq2eFF;*-T#l^K&JYqKt5%$~fT)mG4uAwE7mCqF4M pC*IfJB|gt+@*h?^&Z5M;l=za=+=9tEY^vfYDnO#~1x5Ku3;?biJ?Q`d delta 329 zcmZ3+cadkq491BXJd>9&eqq#@Jd??sQ-PHM3=AjVWV+8NKlviFxTGFXM38}*K>;Gg zzyhW1CNr{#OZq`&HPB?^CL01}^PsW@XtH&a6IsOTCqiW{pt2lLdI4120m}D)(p#b8 z9Z){ZCFh{xJ!s;0q2d#u;sQ|mGeq2oVF6SCW-%`##H%Zy;xG&3q2e1Rcd}|sKEOI< Rax$C#gfhYl|yI8hmBFN)v?)UGr_sp4- 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 V*IljJ*)sEQvRc&m#ZV*s{{v1}3=;qV diff --git a/src/ising.f95 b/src/ising.f95 index 25d053d..f35268f 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -8,9 +8,13 @@ program ising ii=0 !Iteration Variable iters=3 !Number of iterations the program runs through rand_loc=2 !Init Random Location Variable - n=1 !Random Number Generator Seed + n1=1 !Random Number Generator Seed lattice + n2=2 !Random Number Generator Seed temp j=-1.d0 !magnetic coeffient spin=0 !spin initation + k=1 !Nomarlized Boltzman Constant + temp=1 !Tempereature of simulation + B=1/(k*temp) !constant of temp and boltman allocate(lattice(latticeSize,latticeSize)) lattice=1 @@ -20,15 +24,13 @@ program ising lattice(latticeSize,:)=0 do ii=0,iters - Call random_seed(n) + Call random_seed(n1) Call random_number(rand_loc) rand_loc=rand_loc*(latticeSize-2) rand_loc_int=int(rand_loc)+2 - print*, rand_loc_int + call del_energy + call flip_bit end do - - call del_energy(lattice) - print*, del_e end program subroutine del_energy @@ -52,3 +54,23 @@ subroutine del_energy del_e=h(1)-h(2) print*,'del_e',del_e end subroutine + +subroutine flip_bit + + use global + + if (del_e .lt. 0) then + lattice(rand_loc_int(1),rand_loc_int(2))=-spin + print*,'flip neg_temp' + else + temp_prob=exp(-B*del_e) + call random_seed(n2) + call random_number(rand_temp) + if (rand_temp .lt. temp_prob) then + print*,'rand_temp',rand_temp,'=<','temp_prob',temp_prob + lattice(rand_loc_int(1),rand_loc_int(2))=-spin + print*,'flip based on prob' + end if + end if +end subroutine + diff --git a/src/ising.o b/src/ising.o index 07cc21a8f390884c79902465df0f64a3cf5428d4..7e00a5a7959a07125b265b11cc97e1665d34ef4d 100644 GIT binary patch literal 10424 zcmbW6e{j^r6~MpuLr5Xs1)+-a>nj{JLAd4uXhOB-Fv1=lSQW)8dLGH;hbB3^`%*w< zh+e3i@hjNrbg0v5osRa0wWGEDLvcnDB*tI02vry;qS!$}Q7nTBi1fYPeaX8`uFiC4 zF1!2Lw{PFReY@ZNezW$f_&l%2V^Q*0KePsFL@jIg*#qTTS**22Spn;Mao;D8on=|Q zr^?_jSQ<$+D?(c0z((E6bWKCOsPkuK>M(N`D3?w0Uu?ULbWu`(Uu4 zZOQLPXTAagm<)?LL))RD78*bXm2{}$HYhUN_HV{{aoe=V2W(U8NAc68-Elc|v$|&E zU(q!|Wy)dPrux^w_J73dU#@d+^el4yzTBsth4ni`{TDIM9^sCk7;{TY>bgqTy9+$I z!ybW6uR@ny+j{Pq)`NZP^3w4OUH^zh?wE6gTRKvBcFyg(Y~#Exe+TsJ@^8Y}!YRVY zIO!Q+4V!dbUfMO!^$*WWtCdDYAr7Ko0>wXcBL}&DPw%m5uRu#rFOU4qs7*SIVn_y5 z0il+h9Pdo9GYkQ(;>9P8QGa3M$jSBBWLuy7dj=BjLeqx-v5#;uU;^K=kNjl5jKSiz z)2_z7Kv9ozekt_tJ+)Ms>JN25mEyg?Ptb3`RsB1m1jKo?89QO%ycp~)GrN%7^5MeeLkF?VU1SFTsQrZ2c*D~uk`|L1v7Yvm3EMbBZcsCY}{U&|fviJCnk zIDe;Dwhepb&{vNt0Kg3+8%qzOkXKw49;|tvJf5?3RbN|>YzTBJp049D6CjPEiw>Q{% z5+X;qi_wKA(1L;eqU^wFf%*OO-K(`Jrxtwepa3#7-v^^Srvi9kagJ_|gybFqIJi3xD46xVr%7x2eed zoQoH@rLd?cgOhL;o<4LddKl*Owp`DTaXpVYZ6d!*RJ<$l$Ibc7j=AH?dp⋘kJfsh|m6unA*Gf&m!G;FjtU;-`^ejSN*<%q#)0E>IzIF?Q`f#+w^yADy{D#k_g5m_Qk%|{Qujxm znwQim7F<_{$4744O}E?{T^hYLdRsK{lF)Z4I1fq=9sC;F^Cu4747ogmr9OGysskKN z*XmKO>hzg2E!md#rf_4;Z0nj8j-76_+fr@m%xbGO={PO*DJ$yOtu5^-J5qyXDzy4^<7Tpp>I(_CIv z(U59Qq=wMRQ5{syZ~$c)-a3yuIFbVsvz@e^Y;8@~C!G`&GO1+4>VD8*Co`GkYWt$8 z*^3Nqvf4oqb@QJ!|H>=p*yZyV-B4lA3eO5(Vpmm0sw!tz&bG_1gE@($qxg(j6{us3 zR^+++I?J=F%rmZZcnLl@W&t0s+p00pqJgrUcYffRk>1u3fwE|zW3p}cL)kyCz zB(tm#h%VOs{#4MJDX2s)vBLG~wzgC|C~Z$WsW5naM%GEz z-wAziyi{|dF_Ucjws_Gl_}0t@30!Bq)ALlTD{tU~pQSQZ#^N~m;p5g!+s{|zv4F~h zkl{Ebs%nkZ`S&!JN1kSwl}hI`po`{M(}APT|F?ex`l4M`@Z*Wbmlqe-fU=k*8Oej zsB>C>$}_rur6E_V`_C{q*-iO9y1yZ2wdwvQr+&mY>i(wxm+Stokf6?K-h{iLV8#@- zEiYFRLS+`lFRG;e6u+Z@nX!jms^!DavL3|>OQ!u;H*H7pv3fzj(#D~`aV&Fu{6I0( z_+{ro1EkG{a&vqoHTW;e`K`~*M~)Qq$%q-;$2X)UXx~sCMlSFBgB1A&okmK;XAK`D zi`&El^0(_2Tj!Yh`n|=V0PPWzWxw@ZT2U&lcf5Mfi5$Xy;MA#pIm_ z?A%pE{zwr%4CXnM{pS|p6-D?JMff#E_-#e_@*;d?5&lpS{+lA)8o1G?;o6*T&xR|* zk=e7VtZ@9wO8heu|3s=SytpTpwKxeYk!Wg7FH5#27G6`AP?z=sw9HDaT3#sCUR7A{ ze;u$AO^xY{18)imd|ODjC9co*~U~RQQw@* zBZaOt7V;P!Qai$rd8=K_P87 zCUa+DGp@PSCSS>zeXu5S*$b92olT@NnKWOi%!+oWr7fj+BI&^1#zfa62yc1!gV$e~ z#>iH6r@$)+@yU#jW*nb0m{1R1)k%IPLP*F_C-EO5goIBl`JqwP)IVXci1O#ckL0gL z2njh}Nr+#E5EAO4yA;;(K8p$E@fCvP69^%h`kNG%9QBa=M$Pew&Tkp|o2-<_XE@2f ztmV-jd>7K!H|urHaa?@YA$fdWVKVLCr?AwI@3|y@SaZ^kKEm{w%A`Ek|Fz~MPd=i5 z;hFZxPnXaK^JD{0|IHH^8|D zCp}kdZmt(TpE05RHvC9_1><}j@i~l%{C1(LS`RRJ?&l4Rb3go%aqfp_3{LiRGtT{> zzCkMck&_?ZG~`LoKFv)(9Axq~=pp%0=om>xh1!eY9J1 zGfq5O0Oh&=1DccntDzm!XeQ77KY_{Pxb((1mC1Ae&tRPUe>UShPNJHd_Frqr>#Ehv zIDR6a^=f0B&-ZT4X}*`?WFf6(@_fDzF?sz7LdrkFqjN`X68h5q9wb|BM#=}gH`d^FMFL+NQ{Xb{&+&_;pZZr8O z82>(SvgawrD;fVQYPmr+3za21lDPeQt2t z?_V3dT!~v{!&Cw7#BakiUz>5X6Tib?y2#+PzrqG5J+lq2v{+WH!Eujans4xs!dAlI zbnj|n9KTu8xIfVj$9Z9V5?`Y~Rhj&8#!)xPKgl?c=RVDGA7LC)dV|UH`~NqZOK&NbCND=9pn<>#Fr6lgGOT>3`agr+xP~#)pGErRNz({kCrC cX8LhYkbY{%b;KW~n{+(_<--v)QiPL0DVq`y5 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 o%LtcCio Date: Mon, 9 Feb 2015 16:58:03 -0500 Subject: [PATCH 04/11] added energy routine and flip bit routine. Stable (2/9/2015) --- src/global.f95 | 5 ++++- src/global.mod | 58 +++++++++++++++++++++++++++---------------------- src/global.o | Bin 1830 -> 1918 bytes src/ising.exe | Bin 13153 -> 13945 bytes src/ising.f95 | 25 ++++++++++++++++++++- src/ising.o | Bin 10424 -> 12072 bytes 6 files changed, 60 insertions(+), 28 deletions(-) diff --git a/src/global.f95 b/src/global.f95 index 0bc995a..41ef165 100644 --- a/src/global.f95 +++ b/src/global.f95 @@ -2,7 +2,7 @@ module global implicit none - integer :: latticeSize,ii,iters,n1,n2 + integer :: latticeSize,ii,iters,n1,n2,jj integer, allocatable :: lattice(:,:) real(8) :: rand_loc(2) real(8) :: rand_temp @@ -16,4 +16,7 @@ module global integer :: h1,h2,h3,h4 real(8) :: k !boltzman constant real(8) :: B !combination of temp and boltzman + + !Energy Variables + real(8) :: energy_sum !sum of total energy in lattice end module global diff --git a/src/global.mod b/src/global.mod index fa9b475..2e0954a 100644 --- a/src/global.mod +++ b/src/global.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from global.f95 on Mon Feb 9 16:37:15 2015 -MD5:87afde1a74226fdbbbdefd5d4acdf1ea -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from global.f95 on Mon Feb 9 16:50:39 2015 +MD5:4dd945ba952bc043c39f84f5eb6d4c38 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -16,59 +16,65 @@ MD5:87afde1a74226fdbbbdefd5d4acdf1ea -- If you edit this, you'll get what you de UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) 3 'del_e' 'global' 'del_e' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -4 'global' 'global' 'global' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +4 'energy_sum' 'global' 'energy_sum' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () +0 0) +5 'global' 'global' 'global' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) -5 'h' 'global' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +6 'h' 'global' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -6 'h1' 'global' 'h1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +7 'h1' 'global' 'h1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -7 'h2' 'global' 'h2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +8 'h2' 'global' 'h2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -8 'h3' 'global' 'h3' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +9 'h3' 'global' 'h3' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -9 'h4' 'global' 'h4' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +10 'h4' 'global' 'h4' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -10 'ii' 'global' 'ii' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +11 'ii' 'global' 'ii' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -11 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +12 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -12 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +13 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -13 'k' 'global' 'k' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +14 'jj' 'global' 'jj' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +15 'k' 'global' 'k' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -14 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +16 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN ALLOCATABLE DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (2 DEFERRED () () () ()) 0 () () () 0 0) -15 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT +17 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -16 'n1' 'global' 'n1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +18 'n1' 'global' 'n1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -17 'n2' 'global' 'n2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +19 'n2' 'global' 'n2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -18 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT +20 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -19 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT +21 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -20 'rand_temp' 'global' 'rand_temp' 1 ((VARIABLE UNKNOWN-INTENT +22 'rand_temp' 'global' 'rand_temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -21 'spin' 'global' 'spin' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +23 'spin' 'global' 'spin' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -22 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +24 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -23 'temp_prob' 'global' 'temp_prob' 1 ((VARIABLE UNKNOWN-INTENT +25 'temp_prob' 'global' 'temp_prob' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) ) -('b' 0 2 'del_e' 0 3 'global' 0 4 'h' 0 5 'h1' 0 6 'h2' 0 7 'h3' 0 8 'h4' -0 9 'ii' 0 10 'iters' 0 11 'j' 0 12 'k' 0 13 'lattice' 0 14 'latticesize' -0 15 'n1' 0 16 'n2' 0 17 'rand_loc' 0 18 'rand_loc_int' 0 19 'rand_temp' -0 20 'spin' 0 21 'temp' 0 22 'temp_prob' 0 23) +('b' 0 2 'del_e' 0 3 'energy_sum' 0 4 'global' 0 5 'h' 0 6 'h1' 0 7 'h2' +0 8 'h3' 0 9 'h4' 0 10 'ii' 0 11 'iters' 0 12 'j' 0 13 'jj' 0 14 'k' 0 +15 'lattice' 0 16 'latticesize' 0 17 'n1' 0 18 'n2' 0 19 'rand_loc' 0 20 +'rand_loc_int' 0 21 'rand_temp' 0 22 'spin' 0 23 'temp' 0 24 'temp_prob' +0 25) diff --git a/src/global.o b/src/global.o index 4d7847797b58968bbe8fa80a92e0397858fe9623..5c41b8f37cad71307ffa6a66c08f130061e306d3 100644 GIT binary patch delta 448 zcmZ3+_m6MG3?{}4lV>uSbDm&j0E2CtZ!)nnT5>>m3~oSLkb#*&0m>JE(xFgs11O&b zN~cavWD&0~h00o>$+kkpZP3K0Ld6}>#Fs+FUC_jLK*c?v;xN}9hlo2d1fXfS4%HBW zrr{Y>JOL^WGw}E1gDm2nB8(8vuYt5Y=1xA!+RvCZ*_G`f09nE+Z~y=R delta 386 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 AUjP6A delta 4835 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 literal 10424 zcmbW6e{j^r6~MpuLr5Xs1)+-a>nj{JLAd4uXhOB-Fv1=lSQW)8dLGH;hbB3^`%*w< zh+e3i@hjNrbg0v5osRa0wWGEDLvcnDB*tI02vry;qS!$}Q7nTBi1fYPeaX8`uFiC4 zF1!2Lw{PFReY@ZNezW$f_&l%2V^Q*0KePsFL@jIg*#qTTS**22Spn;Mao;D8on=|Q zr^?_jSQ<$+D?(c0z((E6bWKCOsPkuK>M(N`D3?w0Uu?ULbWu`(Uu4 zZOQLPXTAagm<)?LL))RD78*bXm2{}$HYhUN_HV{{aoe=V2W(U8NAc68-Elc|v$|&E zU(q!|Wy)dPrux^w_J73dU#@d+^el4yzTBsth4ni`{TDIM9^sCk7;{TY>bgqTy9+$I z!ybW6uR@ny+j{Pq)`NZP^3w4OUH^zh?wE6gTRKvBcFyg(Y~#Exe+TsJ@^8Y}!YRVY zIO!Q+4V!dbUfMO!^$*WWtCdDYAr7Ko0>wXcBL}&DPw%m5uRu#rFOU4qs7*SIVn_y5 z0il+h9Pdo9GYkQ(;>9P8QGa3M$jSBBWLuy7dj=BjLeqx-v5#;uU;^K=kNjl5jKSiz z)2_z7Kv9ozekt_tJ+)Ms>JN25mEyg?Ptb3`RsB1m1jKo?89QO%ycp~)GrN%7^5MeeLkF?VU1SFTsQrZ2c*D~uk`|L1v7Yvm3EMbBZcsCY}{U&|fviJCnk zIDe;Dwhepb&{vNt0Kg3+8%qzOkXKw49;|tvJf5?3RbN|>YzTBJp049D6CjPEiw>Q{% z5+X;qi_wKA(1L;eqU^wFf%*OO-K(`Jrxtwepa3#7-v^^Srvi9kagJ_|gybFqIJi3xD46xVr%7x2eed zoQoH@rLd?cgOhL;o<4LddKl*Owp`DTaXpVYZ6d!*RJ<$l$Ibc7j=AH?dp⋘kJfsh|m6unA*Gf&m!G;FjtU;-`^ejSN*<%q#)0E>IzIF?Q`f#+w^yADy{D#k_g5m_Qk%|{Qujxm znwQim7F<_{$4744O}E?{T^hYLdRsK{lF)Z4I1fq=9sC;F^Cu4747ogmr9OGysskKN z*XmKO>hzg2E!md#rf_4;Z0nj8j-76_+fr@m%xbGO={PO*DJ$yOtu5^-J5qyXDzy4^<7Tpp>I(_CIv z(U59Qq=wMRQ5{syZ~$c)-a3yuIFbVsvz@e^Y;8@~C!G`&GO1+4>VD8*Co`GkYWt$8 z*^3Nqvf4oqb@QJ!|H>=p*yZyV-B4lA3eO5(Vpmm0sw!tz&bG_1gE@($qxg(j6{us3 zR^+++I?J=F%rmZZcnLl@W&t0s+p00pqJgrUcYffRk>1u3fwE|zW3p}cL)kyCz zB(tm#h%VOs{#4MJDX2s)vBLG~wzgC|C~Z$WsW5naM%GEz z-wAziyi{|dF_Ucjws_Gl_}0t@30!Bq)ALlTD{tU~pQSQZ#^N~m;p5g!+s{|zv4F~h zkl{Ebs%nkZ`S&!JN1kSwl}hI`po`{M(}APT|F?ex`l4M`@Z*Wbmlqe-fU=k*8Oej zsB>C>$}_rur6E_V`_C{q*-iO9y1yZ2wdwvQr+&mY>i(wxm+Stokf6?K-h{iLV8#@- zEiYFRLS+`lFRG;e6u+Z@nX!jms^!DavL3|>OQ!u;H*H7pv3fzj(#D~`aV&Fu{6I0( z_+{ro1EkG{a&vqoHTW;e`K`~*M~)Qq$%q-;$2X)UXx~sCMlSFBgB1A&okmK;XAK`D zi`&El^0(_2Tj!Yh`n|=V0PPWzWxw@ZT2U&lcf5Mfi5$Xy;MA#pIm_ z?A%pE{zwr%4CXnM{pS|p6-D?JMff#E_-#e_@*;d?5&lpS{+lA)8o1G?;o6*T&xR|* zk=e7VtZ@9wO8heu|3s=SytpTpwKxeYk!Wg7FH5#27G6`AP?z=sw9HDaT3#sCUR7A{ ze;u$AO^xY{18)imd|ODjC9co*~U~RQQw@* zBZaOt7V;P!Qai$rd8=K_P87 zCUa+DGp@PSCSS>zeXu5S*$b92olT@NnKWOi%!+oWr7fj+BI&^1#zfa62yc1!gV$e~ z#>iH6r@$)+@yU#jW*nb0m{1R1)k%IPLP*F_C-EO5goIBl`JqwP)IVXci1O#ckL0gL z2njh}Nr+#E5EAO4yA;;(K8p$E@fCvP69^%h`kNG%9QBa=M$Pew&Tkp|o2-<_XE@2f ztmV-jd>7K!H|urHaa?@YA$fdWVKVLCr?AwI@3|y@SaZ^kKEm{w%A`Ek|Fz~MPd=i5 z;hFZxPnXaK^JD{0|IHH^8|D zCp}kdZmt(TpE05RHvC9_1><}j@i~l%{C1(LS`RRJ?&l4Rb3go%aqfp_3{LiRGtT{> zzCkMck&_?ZG~`LoKFv)(9Axq~=pp%0=om>xh1!eY9J1 zGfq5O0Oh&=1DccntDzm!XeQ77KY_{Pxb((1mC1Ae&tRPUe>UShPNJHd_Frqr>#Ehv zIDR6a^=f0B&-ZT4X}*`?WFf6(@_fDzF?sz7LdrkFqjN`X68h5q9wb|BM#=}gH`d^FMFL+NQ{Xb{&+&_;pZZr8O z82>(SvgawrD;fVQYPmr+3za21lDPeQt2t z?_V3dT!~v{!&Cw7#BakiUz>5X6Tib?y2#+PzrqG5J+lq2v{+WH!Eujans4xs!dAlI zbnj|n9KTu8xIfVj$9Z9V5?`Y~Rhj&8#!)xPKgl?c=RVDGA7LC)dV|UH`~NqZOK&NbCND=9pn<>#Fr6lgGOT>3`agr+xP~#)pGErRNz({kCrC cX8LhYkbY{%b;KW~n{ Date: Wed, 11 Feb 2015 11:10:55 -0500 Subject: [PATCH 05/11] Changed energy and hfield to functions. --- src/Makefile | 2 +- src/energy.out | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++ src/global.f95 | 5 +- src/global.mod | 51 +-- src/global.o | Bin 1918 -> 1636 bytes src/hfield.out | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++ src/ising.exe | Bin 13945 -> 13832 bytes src/ising.f95 | 72 ++-- src/ising.o | Bin 12072 -> 10648 bytes 9 files changed, 2073 insertions(+), 59 deletions(-) create mode 100644 src/energy.out create mode 100644 src/hfield.out diff --git a/src/Makefile b/src/Makefile index e041fc3..9c2487d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -3,7 +3,7 @@ FFLAGS = -Wall -Wextra -march=native -O3 -fimplicit-none #FFLAGS += -pedantic -fbounds-check -fmax-errors=1 -g #FFLAGS += $(shell pkg-config --cflags plplotd-f95) #LDFLAGS = $(shell pkg-config --libs plplotd-f95) -LIBS = +BINDIR := bin COMPILE = $(FC) $(FFLAGS) LINK = $(FC) $(LDFLAGS) diff --git a/src/energy.out b/src/energy.out new file mode 100644 index 0000000..f3789ca --- /dev/null +++ b/src/energy.out @@ -0,0 +1,1001 @@ + 0 -4.0000000000000000 + 1 -8.0000000000000000 + 2 -16.000000000000000 + 3 -18.000000000000000 + 4 -26.000000000000000 + 5 -26.000000000000000 + 6 -30.000000000000000 + 7 -34.000000000000000 + 8 -42.000000000000000 + 9 -50.000000000000000 + 10 -54.000000000000000 + 11 -54.000000000000000 + 12 -58.000000000000000 + 13 -62.000000000000000 + 14 -70.000000000000000 + 15 -70.000000000000000 + 16 -74.000000000000000 + 17 -78.000000000000000 + 18 -78.000000000000000 + 19 -80.000000000000000 + 20 -80.000000000000000 + 21 -84.000000000000000 + 22 -84.000000000000000 + 23 -88.000000000000000 + 24 -90.000000000000000 + 25 -98.000000000000000 + 26 -98.000000000000000 + 27 -98.000000000000000 + 28 -100.00000000000000 + 29 -100.00000000000000 + 30 -100.00000000000000 + 31 -104.00000000000000 + 32 -104.00000000000000 + 33 -104.00000000000000 + 34 -104.00000000000000 + 35 -104.00000000000000 + 36 -108.00000000000000 + 37 -108.00000000000000 + 38 -108.00000000000000 + 39 -112.00000000000000 + 40 -112.00000000000000 + 41 -112.00000000000000 + 42 -112.00000000000000 + 43 -112.00000000000000 + 44 -112.00000000000000 + 45 -116.00000000000000 + 46 -118.00000000000000 + 47 -118.00000000000000 + 48 -118.00000000000000 + 49 -118.00000000000000 + 50 -118.00000000000000 + 51 -118.00000000000000 + 52 -118.00000000000000 + 53 -122.00000000000000 + 54 -122.00000000000000 + 55 -130.00000000000000 + 56 -132.00000000000000 + 57 -132.00000000000000 + 58 -132.00000000000000 + 59 -132.00000000000000 + 60 -132.00000000000000 + 61 -132.00000000000000 + 62 -132.00000000000000 + 63 -132.00000000000000 + 64 -132.00000000000000 + 65 -132.00000000000000 + 66 -132.00000000000000 + 67 -132.00000000000000 + 68 -140.00000000000000 + 69 -140.00000000000000 + 70 -140.00000000000000 + 71 -140.00000000000000 + 72 -142.00000000000000 + 73 -142.00000000000000 + 74 -142.00000000000000 + 75 -142.00000000000000 + 76 -142.00000000000000 + 77 -142.00000000000000 + 78 -142.00000000000000 + 79 -142.00000000000000 + 80 -142.00000000000000 + 81 -142.00000000000000 + 82 -142.00000000000000 + 83 -142.00000000000000 + 84 -142.00000000000000 + 85 -142.00000000000000 + 86 -142.00000000000000 + 87 -142.00000000000000 + 88 -142.00000000000000 + 89 -142.00000000000000 + 90 -142.00000000000000 + 91 -142.00000000000000 + 92 -142.00000000000000 + 93 -144.00000000000000 + 94 -144.00000000000000 + 95 -144.00000000000000 + 96 -144.00000000000000 + 97 -144.00000000000000 + 98 -144.00000000000000 + 99 -144.00000000000000 + 100 -144.00000000000000 + 101 -148.00000000000000 + 102 -148.00000000000000 + 103 -148.00000000000000 + 104 -148.00000000000000 + 105 -148.00000000000000 + 106 -148.00000000000000 + 107 -148.00000000000000 + 108 -148.00000000000000 + 109 -148.00000000000000 + 110 -148.00000000000000 + 111 -149.00000000000000 + 112 -149.00000000000000 + 113 -149.00000000000000 + 114 -149.00000000000000 + 115 -149.00000000000000 + 116 -149.00000000000000 + 117 -149.00000000000000 + 118 -152.00000000000000 + 119 -152.00000000000000 + 120 -152.00000000000000 + 121 -152.00000000000000 + 122 -152.00000000000000 + 123 -154.00000000000000 + 124 -154.00000000000000 + 125 -154.00000000000000 + 126 -154.00000000000000 + 127 -154.00000000000000 + 128 -154.00000000000000 + 129 -154.00000000000000 + 130 -154.00000000000000 + 131 -154.00000000000000 + 132 -155.00000000000000 + 133 -155.00000000000000 + 134 -155.00000000000000 + 135 -155.00000000000000 + 136 -155.00000000000000 + 137 -155.00000000000000 + 138 -155.00000000000000 + 139 -155.00000000000000 + 140 -155.00000000000000 + 141 -155.00000000000000 + 142 -155.00000000000000 + 143 -155.00000000000000 + 144 -155.00000000000000 + 145 -155.00000000000000 + 146 -154.00000000000000 + 147 -154.00000000000000 + 148 -154.00000000000000 + 149 -154.00000000000000 + 150 -154.00000000000000 + 151 -154.00000000000000 + 152 -154.00000000000000 + 153 -154.00000000000000 + 154 -154.00000000000000 + 155 -154.00000000000000 + 156 -154.00000000000000 + 157 -154.00000000000000 + 158 -154.00000000000000 + 159 -154.00000000000000 + 160 -154.00000000000000 + 161 -154.00000000000000 + 162 -154.00000000000000 + 163 -154.00000000000000 + 164 -154.00000000000000 + 165 -154.00000000000000 + 166 -154.00000000000000 + 167 -154.00000000000000 + 168 -154.00000000000000 + 169 -154.00000000000000 + 170 -154.00000000000000 + 171 -154.00000000000000 + 172 -154.00000000000000 + 173 -154.00000000000000 + 174 -154.00000000000000 + 175 -154.00000000000000 + 176 -154.00000000000000 + 177 -154.00000000000000 + 178 -154.00000000000000 + 179 -154.00000000000000 + 180 -154.00000000000000 + 181 -154.00000000000000 + 182 -154.00000000000000 + 183 -154.00000000000000 + 184 -154.00000000000000 + 185 -154.00000000000000 + 186 -154.00000000000000 + 187 -154.00000000000000 + 188 -154.00000000000000 + 189 -154.00000000000000 + 190 -154.00000000000000 + 191 -154.00000000000000 + 192 -154.00000000000000 + 193 -154.00000000000000 + 194 -154.00000000000000 + 195 -154.00000000000000 + 196 -154.00000000000000 + 197 -155.00000000000000 + 198 -155.00000000000000 + 199 -155.00000000000000 + 200 -155.00000000000000 + 201 -155.00000000000000 + 202 -155.00000000000000 + 203 -155.00000000000000 + 204 -155.00000000000000 + 205 -155.00000000000000 + 206 -155.00000000000000 + 207 -155.00000000000000 + 208 -155.00000000000000 + 209 -155.00000000000000 + 210 -156.00000000000000 + 211 -156.00000000000000 + 212 -156.00000000000000 + 213 -156.00000000000000 + 214 -157.00000000000000 + 215 -157.00000000000000 + 216 -157.00000000000000 + 217 -157.00000000000000 + 218 -157.00000000000000 + 219 -157.00000000000000 + 220 -157.00000000000000 + 221 -157.00000000000000 + 222 -157.00000000000000 + 223 -157.00000000000000 + 224 -157.00000000000000 + 225 -157.00000000000000 + 226 -157.00000000000000 + 227 -157.00000000000000 + 228 -157.00000000000000 + 229 -157.00000000000000 + 230 -157.00000000000000 + 231 -157.00000000000000 + 232 -157.00000000000000 + 233 -157.00000000000000 + 234 -157.00000000000000 + 235 -157.00000000000000 + 236 -157.00000000000000 + 237 -157.00000000000000 + 238 -157.00000000000000 + 239 -157.00000000000000 + 240 -157.00000000000000 + 241 -157.00000000000000 + 242 -157.00000000000000 + 243 -157.00000000000000 + 244 -157.00000000000000 + 245 -157.00000000000000 + 246 -157.00000000000000 + 247 -157.00000000000000 + 248 -157.00000000000000 + 249 -157.00000000000000 + 250 -157.00000000000000 + 251 -157.00000000000000 + 252 -157.00000000000000 + 253 -157.00000000000000 + 254 -157.00000000000000 + 255 -157.00000000000000 + 256 -157.00000000000000 + 257 -157.00000000000000 + 258 -157.00000000000000 + 259 -157.00000000000000 + 260 -157.00000000000000 + 261 -157.00000000000000 + 262 -157.00000000000000 + 263 -157.00000000000000 + 264 -157.00000000000000 + 265 -157.00000000000000 + 266 -158.00000000000000 + 267 -158.00000000000000 + 268 -158.00000000000000 + 269 -158.00000000000000 + 270 -158.00000000000000 + 271 -159.00000000000000 + 272 -159.00000000000000 + 273 -159.00000000000000 + 274 -159.00000000000000 + 275 -159.00000000000000 + 276 -159.00000000000000 + 277 -159.00000000000000 + 278 -159.00000000000000 + 279 -159.00000000000000 + 280 -159.00000000000000 + 281 -159.00000000000000 + 282 -159.00000000000000 + 283 -159.00000000000000 + 284 -159.00000000000000 + 285 -159.00000000000000 + 286 -159.00000000000000 + 287 -159.00000000000000 + 288 -159.00000000000000 + 289 -159.00000000000000 + 290 -159.00000000000000 + 291 -159.00000000000000 + 292 -160.00000000000000 + 293 -160.00000000000000 + 294 -160.00000000000000 + 295 -160.00000000000000 + 296 -160.00000000000000 + 297 -160.00000000000000 + 298 -160.00000000000000 + 299 -161.00000000000000 + 300 -162.00000000000000 + 301 -162.00000000000000 + 302 -162.00000000000000 + 303 -162.00000000000000 + 304 -162.00000000000000 + 305 -162.00000000000000 + 306 -163.00000000000000 + 307 -163.00000000000000 + 308 -163.00000000000000 + 309 -164.00000000000000 + 310 -164.00000000000000 + 311 -164.00000000000000 + 312 -164.00000000000000 + 313 -164.00000000000000 + 314 -164.00000000000000 + 315 -164.00000000000000 + 316 -164.00000000000000 + 317 -164.00000000000000 + 318 -164.00000000000000 + 319 -164.00000000000000 + 320 -164.00000000000000 + 321 -164.00000000000000 + 322 -164.00000000000000 + 323 -164.00000000000000 + 324 -164.00000000000000 + 325 -164.00000000000000 + 326 -164.00000000000000 + 327 -164.00000000000000 + 328 -164.00000000000000 + 329 -164.00000000000000 + 330 -164.00000000000000 + 331 -164.00000000000000 + 332 -164.00000000000000 + 333 -164.00000000000000 + 334 -164.00000000000000 + 335 -164.00000000000000 + 336 -164.00000000000000 + 337 -164.00000000000000 + 338 -164.00000000000000 + 339 -164.00000000000000 + 340 -164.00000000000000 + 341 -164.00000000000000 + 342 -164.00000000000000 + 343 -164.00000000000000 + 344 -164.00000000000000 + 345 -164.00000000000000 + 346 -164.00000000000000 + 347 -164.00000000000000 + 348 -164.00000000000000 + 349 -164.00000000000000 + 350 -164.00000000000000 + 351 -164.00000000000000 + 352 -164.00000000000000 + 353 -164.00000000000000 + 354 -164.00000000000000 + 355 -164.00000000000000 + 356 -164.00000000000000 + 357 -164.00000000000000 + 358 -164.00000000000000 + 359 -164.00000000000000 + 360 -164.00000000000000 + 361 -164.00000000000000 + 362 -164.00000000000000 + 363 -164.00000000000000 + 364 -164.00000000000000 + 365 -164.00000000000000 + 366 -164.00000000000000 + 367 -164.00000000000000 + 368 -164.00000000000000 + 369 -164.00000000000000 + 370 -164.00000000000000 + 371 -164.00000000000000 + 372 -164.00000000000000 + 373 -164.00000000000000 + 374 -164.00000000000000 + 375 -162.00000000000000 + 376 -162.00000000000000 + 377 -162.00000000000000 + 378 -162.00000000000000 + 379 -162.00000000000000 + 380 -162.00000000000000 + 381 -162.00000000000000 + 382 -162.00000000000000 + 383 -162.00000000000000 + 384 -162.00000000000000 + 385 -162.00000000000000 + 386 -162.00000000000000 + 387 -162.00000000000000 + 388 -162.00000000000000 + 389 -162.00000000000000 + 390 -162.00000000000000 + 391 -162.00000000000000 + 392 -162.00000000000000 + 393 -162.00000000000000 + 394 -162.00000000000000 + 395 -162.00000000000000 + 396 -162.00000000000000 + 397 -161.00000000000000 + 398 -162.00000000000000 + 399 -162.00000000000000 + 400 -163.00000000000000 + 401 -163.00000000000000 + 402 -163.00000000000000 + 403 -163.00000000000000 + 404 -163.00000000000000 + 405 -163.00000000000000 + 406 -164.00000000000000 + 407 -164.00000000000000 + 408 -164.00000000000000 + 409 -164.00000000000000 + 410 -164.00000000000000 + 411 -164.00000000000000 + 412 -164.00000000000000 + 413 -164.00000000000000 + 414 -164.00000000000000 + 415 -164.00000000000000 + 416 -164.00000000000000 + 417 -164.00000000000000 + 418 -164.00000000000000 + 419 -164.00000000000000 + 420 -164.00000000000000 + 421 -164.00000000000000 + 422 -164.00000000000000 + 423 -165.00000000000000 + 424 -165.00000000000000 + 425 -165.00000000000000 + 426 -165.00000000000000 + 427 -165.00000000000000 + 428 -165.00000000000000 + 429 -165.00000000000000 + 430 -165.00000000000000 + 431 -165.00000000000000 + 432 -165.00000000000000 + 433 -165.00000000000000 + 434 -165.00000000000000 + 435 -165.00000000000000 + 436 -165.00000000000000 + 437 -165.00000000000000 + 438 -165.00000000000000 + 439 -165.00000000000000 + 440 -165.00000000000000 + 441 -165.00000000000000 + 442 -165.00000000000000 + 443 -165.00000000000000 + 444 -165.00000000000000 + 445 -165.00000000000000 + 446 -165.00000000000000 + 447 -165.00000000000000 + 448 -165.00000000000000 + 449 -165.00000000000000 + 450 -165.00000000000000 + 451 -166.00000000000000 + 452 -166.00000000000000 + 453 -166.00000000000000 + 454 -167.00000000000000 + 455 -167.00000000000000 + 456 -167.00000000000000 + 457 -167.00000000000000 + 458 -167.00000000000000 + 459 -167.00000000000000 + 460 -167.00000000000000 + 461 -167.00000000000000 + 462 -167.00000000000000 + 463 -168.00000000000000 + 464 -168.00000000000000 + 465 -167.00000000000000 + 466 -167.00000000000000 + 467 -167.00000000000000 + 468 -167.00000000000000 + 469 -167.00000000000000 + 470 -167.00000000000000 + 471 -167.00000000000000 + 472 -167.00000000000000 + 473 -167.00000000000000 + 474 -167.00000000000000 + 475 -167.00000000000000 + 476 -167.00000000000000 + 477 -167.00000000000000 + 478 -167.00000000000000 + 479 -167.00000000000000 + 480 -167.00000000000000 + 481 -167.00000000000000 + 482 -168.00000000000000 + 483 -168.00000000000000 + 484 -168.00000000000000 + 485 -168.00000000000000 + 486 -168.00000000000000 + 487 -168.00000000000000 + 488 -168.00000000000000 + 489 -168.00000000000000 + 490 -168.00000000000000 + 491 -168.00000000000000 + 492 -168.00000000000000 + 493 -168.00000000000000 + 494 -168.00000000000000 + 495 -168.00000000000000 + 496 -168.00000000000000 + 497 -168.00000000000000 + 498 -168.00000000000000 + 499 -168.00000000000000 + 500 -168.00000000000000 + 501 -168.00000000000000 + 502 -168.00000000000000 + 503 -168.00000000000000 + 504 -168.00000000000000 + 505 -168.00000000000000 + 506 -168.00000000000000 + 507 -168.00000000000000 + 508 -168.00000000000000 + 509 -168.00000000000000 + 510 -168.00000000000000 + 511 -169.00000000000000 + 512 -169.00000000000000 + 513 -169.00000000000000 + 514 -170.00000000000000 + 515 -172.00000000000000 + 516 -172.00000000000000 + 517 -172.00000000000000 + 518 -172.00000000000000 + 519 -172.00000000000000 + 520 -172.00000000000000 + 521 -172.00000000000000 + 522 -172.00000000000000 + 523 -172.00000000000000 + 524 -172.00000000000000 + 525 -172.00000000000000 + 526 -172.00000000000000 + 527 -172.00000000000000 + 528 -172.00000000000000 + 529 -172.00000000000000 + 530 -172.00000000000000 + 531 -172.00000000000000 + 532 -172.00000000000000 + 533 -172.00000000000000 + 534 -172.00000000000000 + 535 -172.00000000000000 + 536 -172.00000000000000 + 537 -172.00000000000000 + 538 -172.00000000000000 + 539 -172.00000000000000 + 540 -172.00000000000000 + 541 -172.00000000000000 + 542 -172.00000000000000 + 543 -172.00000000000000 + 544 -172.00000000000000 + 545 -172.00000000000000 + 546 -172.00000000000000 + 547 -172.00000000000000 + 548 -172.00000000000000 + 549 -172.00000000000000 + 550 -172.00000000000000 + 551 -172.00000000000000 + 552 -172.00000000000000 + 553 -172.00000000000000 + 554 -172.00000000000000 + 555 -173.00000000000000 + 556 -173.00000000000000 + 557 -173.00000000000000 + 558 -173.00000000000000 + 559 -173.00000000000000 + 560 -173.00000000000000 + 561 -173.00000000000000 + 562 -173.00000000000000 + 563 -173.00000000000000 + 564 -173.00000000000000 + 565 -173.00000000000000 + 566 -173.00000000000000 + 567 -173.00000000000000 + 568 -173.00000000000000 + 569 -173.00000000000000 + 570 -173.00000000000000 + 571 -173.00000000000000 + 572 -173.00000000000000 + 573 -173.00000000000000 + 574 -173.00000000000000 + 575 -173.00000000000000 + 576 -173.00000000000000 + 577 -173.00000000000000 + 578 -173.00000000000000 + 579 -173.00000000000000 + 580 -173.00000000000000 + 581 -173.00000000000000 + 582 -173.00000000000000 + 583 -173.00000000000000 + 584 -173.00000000000000 + 585 -173.00000000000000 + 586 -173.00000000000000 + 587 -173.00000000000000 + 588 -173.00000000000000 + 589 -174.00000000000000 + 590 -174.00000000000000 + 591 -174.00000000000000 + 592 -174.00000000000000 + 593 -174.00000000000000 + 594 -174.00000000000000 + 595 -174.00000000000000 + 596 -174.00000000000000 + 597 -174.00000000000000 + 598 -174.00000000000000 + 599 -174.00000000000000 + 600 -174.00000000000000 + 601 -174.00000000000000 + 602 -174.00000000000000 + 603 -173.00000000000000 + 604 -173.00000000000000 + 605 -174.00000000000000 + 606 -174.00000000000000 + 607 -173.00000000000000 + 608 -173.00000000000000 + 609 -173.00000000000000 + 610 -173.00000000000000 + 611 -173.00000000000000 + 612 -173.00000000000000 + 613 -173.00000000000000 + 614 -173.00000000000000 + 615 -173.00000000000000 + 616 -173.00000000000000 + 617 -173.00000000000000 + 618 -173.00000000000000 + 619 -173.00000000000000 + 620 -173.00000000000000 + 621 -173.00000000000000 + 622 -173.00000000000000 + 623 -173.00000000000000 + 624 -173.00000000000000 + 625 -173.00000000000000 + 626 -173.00000000000000 + 627 -173.00000000000000 + 628 -173.00000000000000 + 629 -173.00000000000000 + 630 -174.00000000000000 + 631 -174.00000000000000 + 632 -174.00000000000000 + 633 -174.00000000000000 + 634 -174.00000000000000 + 635 -174.00000000000000 + 636 -174.00000000000000 + 637 -174.00000000000000 + 638 -174.00000000000000 + 639 -174.00000000000000 + 640 -174.00000000000000 + 641 -174.00000000000000 + 642 -175.00000000000000 + 643 -175.00000000000000 + 644 -175.00000000000000 + 645 -175.00000000000000 + 646 -175.00000000000000 + 647 -176.00000000000000 + 648 -177.00000000000000 + 649 -177.00000000000000 + 650 -177.00000000000000 + 651 -177.00000000000000 + 652 -177.00000000000000 + 653 -177.00000000000000 + 654 -177.00000000000000 + 655 -177.00000000000000 + 656 -177.00000000000000 + 657 -178.00000000000000 + 658 -178.00000000000000 + 659 -178.00000000000000 + 660 -178.00000000000000 + 661 -178.00000000000000 + 662 -179.00000000000000 + 663 -179.00000000000000 + 664 -179.00000000000000 + 665 -179.00000000000000 + 666 -179.00000000000000 + 667 -179.00000000000000 + 668 -179.00000000000000 + 669 -179.00000000000000 + 670 -179.00000000000000 + 671 -179.00000000000000 + 672 -179.00000000000000 + 673 -179.00000000000000 + 674 -180.00000000000000 + 675 -180.00000000000000 + 676 -180.00000000000000 + 677 -180.00000000000000 + 678 -181.00000000000000 + 679 -181.00000000000000 + 680 -181.00000000000000 + 681 -181.00000000000000 + 682 -181.00000000000000 + 683 -181.00000000000000 + 684 -181.00000000000000 + 685 -181.00000000000000 + 686 -181.00000000000000 + 687 -181.00000000000000 + 688 -181.00000000000000 + 689 -182.00000000000000 + 690 -182.00000000000000 + 691 -182.00000000000000 + 692 -182.00000000000000 + 693 -182.00000000000000 + 694 -182.00000000000000 + 695 -182.00000000000000 + 696 -182.00000000000000 + 697 -182.00000000000000 + 698 -182.00000000000000 + 699 -182.00000000000000 + 700 -182.00000000000000 + 701 -182.00000000000000 + 702 -182.00000000000000 + 703 -182.00000000000000 + 704 -182.00000000000000 + 705 -183.00000000000000 + 706 -183.00000000000000 + 707 -183.00000000000000 + 708 -183.00000000000000 + 709 -183.00000000000000 + 710 -183.00000000000000 + 711 -183.00000000000000 + 712 -183.00000000000000 + 713 -183.00000000000000 + 714 -183.00000000000000 + 715 -183.00000000000000 + 716 -183.00000000000000 + 717 -183.00000000000000 + 718 -183.00000000000000 + 719 -184.00000000000000 + 720 -184.00000000000000 + 721 -184.00000000000000 + 722 -184.00000000000000 + 723 -184.00000000000000 + 724 -185.00000000000000 + 725 -186.00000000000000 + 726 -186.00000000000000 + 727 -187.00000000000000 + 728 -187.00000000000000 + 729 -187.00000000000000 + 730 -187.00000000000000 + 731 -187.00000000000000 + 732 -187.00000000000000 + 733 -187.00000000000000 + 734 -187.00000000000000 + 735 -187.00000000000000 + 736 -187.00000000000000 + 737 -187.00000000000000 + 738 -187.00000000000000 + 739 -187.00000000000000 + 740 -187.00000000000000 + 741 -187.00000000000000 + 742 -187.00000000000000 + 743 -187.00000000000000 + 744 -187.00000000000000 + 745 -187.00000000000000 + 746 -187.00000000000000 + 747 -187.00000000000000 + 748 -188.00000000000000 + 749 -188.00000000000000 + 750 -188.00000000000000 + 751 -188.00000000000000 + 752 -188.00000000000000 + 753 -188.00000000000000 + 754 -188.00000000000000 + 755 -188.00000000000000 + 756 -188.00000000000000 + 757 -189.00000000000000 + 758 -189.00000000000000 + 759 -189.00000000000000 + 760 -189.00000000000000 + 761 -189.00000000000000 + 762 -189.00000000000000 + 763 -189.00000000000000 + 764 -189.00000000000000 + 765 -189.00000000000000 + 766 -189.00000000000000 + 767 -189.00000000000000 + 768 -189.00000000000000 + 769 -189.00000000000000 + 770 -189.00000000000000 + 771 -189.00000000000000 + 772 -189.00000000000000 + 773 -189.00000000000000 + 774 -189.00000000000000 + 775 -189.00000000000000 + 776 -188.00000000000000 + 777 -188.00000000000000 + 778 -188.00000000000000 + 779 -188.00000000000000 + 780 -188.00000000000000 + 781 -188.00000000000000 + 782 -188.00000000000000 + 783 -188.00000000000000 + 784 -188.00000000000000 + 785 -188.00000000000000 + 786 -188.00000000000000 + 787 -188.00000000000000 + 788 -189.00000000000000 + 789 -189.00000000000000 + 790 -189.00000000000000 + 791 -189.00000000000000 + 792 -189.00000000000000 + 793 -189.00000000000000 + 794 -189.00000000000000 + 795 -189.00000000000000 + 796 -189.00000000000000 + 797 -189.00000000000000 + 798 -189.00000000000000 + 799 -189.00000000000000 + 800 -189.00000000000000 + 801 -189.00000000000000 + 802 -189.00000000000000 + 803 -189.00000000000000 + 804 -189.00000000000000 + 805 -189.00000000000000 + 806 -189.00000000000000 + 807 -189.00000000000000 + 808 -189.00000000000000 + 809 -189.00000000000000 + 810 -189.00000000000000 + 811 -189.00000000000000 + 812 -189.00000000000000 + 813 -189.00000000000000 + 814 -189.00000000000000 + 815 -189.00000000000000 + 816 -189.00000000000000 + 817 -189.00000000000000 + 818 -189.00000000000000 + 819 -189.00000000000000 + 820 -189.00000000000000 + 821 -189.00000000000000 + 822 -190.00000000000000 + 823 -190.00000000000000 + 824 -190.00000000000000 + 825 -190.00000000000000 + 826 -190.00000000000000 + 827 -190.00000000000000 + 828 -190.00000000000000 + 829 -190.00000000000000 + 830 -190.00000000000000 + 831 -190.00000000000000 + 832 -191.00000000000000 + 833 -191.00000000000000 + 834 -191.00000000000000 + 835 -191.00000000000000 + 836 -191.00000000000000 + 837 -191.00000000000000 + 838 -191.00000000000000 + 839 -191.00000000000000 + 840 -191.00000000000000 + 841 -191.00000000000000 + 842 -192.00000000000000 + 843 -192.00000000000000 + 844 -192.00000000000000 + 845 -192.00000000000000 + 846 -192.00000000000000 + 847 -192.00000000000000 + 848 -192.00000000000000 + 849 -192.00000000000000 + 850 -192.00000000000000 + 851 -192.00000000000000 + 852 -192.00000000000000 + 853 -192.00000000000000 + 854 -192.00000000000000 + 855 -192.00000000000000 + 856 -192.00000000000000 + 857 -192.00000000000000 + 858 -192.00000000000000 + 859 -192.00000000000000 + 860 -192.00000000000000 + 861 -192.00000000000000 + 862 -192.00000000000000 + 863 -192.00000000000000 + 864 -192.00000000000000 + 865 -192.00000000000000 + 866 -192.00000000000000 + 867 -193.00000000000000 + 868 -193.00000000000000 + 869 -193.00000000000000 + 870 -193.00000000000000 + 871 -193.00000000000000 + 872 -193.00000000000000 + 873 -193.00000000000000 + 874 -193.00000000000000 + 875 -192.00000000000000 + 876 -192.00000000000000 + 877 -192.00000000000000 + 878 -192.00000000000000 + 879 -192.00000000000000 + 880 -192.00000000000000 + 881 -192.00000000000000 + 882 -193.00000000000000 + 883 -193.00000000000000 + 884 -193.00000000000000 + 885 -193.00000000000000 + 886 -193.00000000000000 + 887 -193.00000000000000 + 888 -193.00000000000000 + 889 -193.00000000000000 + 890 -193.00000000000000 + 891 -193.00000000000000 + 892 -193.00000000000000 + 893 -193.00000000000000 + 894 -193.00000000000000 + 895 -193.00000000000000 + 896 -193.00000000000000 + 897 -194.00000000000000 + 898 -194.00000000000000 + 899 -194.00000000000000 + 900 -194.00000000000000 + 901 -194.00000000000000 + 902 -194.00000000000000 + 903 -194.00000000000000 + 904 -194.00000000000000 + 905 -194.00000000000000 + 906 -194.00000000000000 + 907 -194.00000000000000 + 908 -194.00000000000000 + 909 -194.00000000000000 + 910 -194.00000000000000 + 911 -195.00000000000000 + 912 -195.00000000000000 + 913 -195.00000000000000 + 914 -195.00000000000000 + 915 -195.00000000000000 + 916 -196.00000000000000 + 917 -196.00000000000000 + 918 -196.00000000000000 + 919 -196.00000000000000 + 920 -196.00000000000000 + 921 -196.00000000000000 + 922 -197.00000000000000 + 923 -197.00000000000000 + 924 -197.00000000000000 + 925 -198.00000000000000 + 926 -198.00000000000000 + 927 -198.00000000000000 + 928 -198.00000000000000 + 929 -198.00000000000000 + 930 -198.00000000000000 + 931 -198.00000000000000 + 932 -198.00000000000000 + 933 -198.00000000000000 + 934 -199.00000000000000 + 935 -197.00000000000000 + 936 -197.00000000000000 + 937 -197.00000000000000 + 938 -198.00000000000000 + 939 -198.00000000000000 + 940 -198.00000000000000 + 941 -198.00000000000000 + 942 -198.00000000000000 + 943 -198.00000000000000 + 944 -198.00000000000000 + 945 -198.00000000000000 + 946 -199.00000000000000 + 947 -199.00000000000000 + 948 -200.00000000000000 + 949 -200.00000000000000 + 950 -200.00000000000000 + 951 -200.00000000000000 + 952 -200.00000000000000 + 953 -200.00000000000000 + 954 -200.00000000000000 + 955 -200.00000000000000 + 956 -200.00000000000000 + 957 -200.00000000000000 + 958 -200.00000000000000 + 959 -200.00000000000000 + 960 -200.00000000000000 + 961 -200.00000000000000 + 962 -200.00000000000000 + 963 -200.00000000000000 + 964 -200.00000000000000 + 965 -200.00000000000000 + 966 -200.00000000000000 + 967 -200.00000000000000 + 968 -200.00000000000000 + 969 -200.00000000000000 + 970 -200.00000000000000 + 971 -200.00000000000000 + 972 -200.00000000000000 + 973 -200.00000000000000 + 974 -200.00000000000000 + 975 -200.00000000000000 + 976 -200.00000000000000 + 977 -200.00000000000000 + 978 -201.00000000000000 + 979 -201.00000000000000 + 980 -201.00000000000000 + 981 -201.00000000000000 + 982 -201.00000000000000 + 983 -201.00000000000000 + 984 -201.00000000000000 + 985 -201.00000000000000 + 986 -201.00000000000000 + 987 -201.00000000000000 + 988 -201.00000000000000 + 989 -201.00000000000000 + 990 -201.00000000000000 + 991 -201.00000000000000 + 992 -201.00000000000000 + 993 -201.00000000000000 + 994 -201.00000000000000 + 995 -201.00000000000000 + 996 -202.00000000000000 + 997 -202.00000000000000 + 998 -202.00000000000000 + 999 -202.00000000000000 + 1000 -202.00000000000000 diff --git a/src/global.f95 b/src/global.f95 index 41ef165..2cb2471 100644 --- a/src/global.f95 +++ b/src/global.f95 @@ -2,7 +2,7 @@ module global implicit none - integer :: latticeSize,ii,iters,n1,n2,jj + integer :: latticeSize,iters,n1,n2 integer, allocatable :: lattice(:,:) real(8) :: rand_loc(2) real(8) :: rand_temp @@ -12,11 +12,10 @@ module global real(8) :: h(2) real(8) :: j !magnetic coefficients real(8) :: temp - integer :: spin - integer :: h1,h2,h3,h4 real(8) :: k !boltzman constant real(8) :: B !combination of temp and boltzman !Energy Variables real(8) :: energy_sum !sum of total energy in lattice + end module global diff --git a/src/global.mod b/src/global.mod index 2e0954a..076f01b 100644 --- a/src/global.mod +++ b/src/global.mod @@ -1,5 +1,5 @@ -GFORTRAN module version '0' created from global.f95 on Mon Feb 9 16:50:39 2015 -MD5:4dd945ba952bc043c39f84f5eb6d4c38 -- If you edit this, you'll get what you deserve. +GFORTRAN module version '0' created from global.f95 on Wed Feb 11 10:59:45 2015 +MD5:8060aa60a633e8914d0b86aa750779e1 -- If you edit this, you'll get what you deserve. (() () () () () () () () () () () () () () () () () () () () () () () () () () ()) @@ -25,56 +25,41 @@ UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -7 'h1' 'global' 'h1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -8 'h2' 'global' 'h2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -9 'h3' 'global' 'h3' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -10 'h4' 'global' 'h4' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -11 'ii' 'global' 'ii' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -12 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +7 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -13 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +8 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -14 'jj' 'global' 'jj' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -15 'k' 'global' 'k' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +9 'k' 'global' 'k' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -16 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +10 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN ALLOCATABLE DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (2 DEFERRED () () () ()) 0 () () () 0 0) -17 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT +11 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -18 'n1' 'global' 'n1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +12 'n1' 'global' 'n1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -19 'n2' 'global' 'n2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +13 'n2' 'global' 'n2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -20 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT +14 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -21 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT +15 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT ( INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -22 'rand_temp' 'global' 'rand_temp' 1 ((VARIABLE UNKNOWN-INTENT +16 'rand_temp' 'global' 'rand_temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -23 'spin' 'global' 'spin' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -24 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +17 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -25 'temp_prob' 'global' 'temp_prob' 1 ((VARIABLE UNKNOWN-INTENT +18 'temp_prob' 'global' 'temp_prob' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) ) -('b' 0 2 'del_e' 0 3 'energy_sum' 0 4 'global' 0 5 'h' 0 6 'h1' 0 7 'h2' -0 8 'h3' 0 9 'h4' 0 10 'ii' 0 11 'iters' 0 12 'j' 0 13 'jj' 0 14 'k' 0 -15 'lattice' 0 16 'latticesize' 0 17 'n1' 0 18 'n2' 0 19 'rand_loc' 0 20 -'rand_loc_int' 0 21 'rand_temp' 0 22 'spin' 0 23 'temp' 0 24 'temp_prob' -0 25) +('b' 0 2 'del_e' 0 3 'energy_sum' 0 4 'global' 0 5 'h' 0 6 'iters' 0 7 'j' +0 8 'k' 0 9 'lattice' 0 10 'latticesize' 0 11 'n1' 0 12 'n2' 0 13 +'rand_loc' 0 14 'rand_loc_int' 0 15 'rand_temp' 0 16 'temp' 0 17 +'temp_prob' 0 18) diff --git a/src/global.o b/src/global.o index 5c41b8f37cad71307ffa6a66c08f130061e306d3..c18bea48fc0b7652c0848b714c6e060a296df812 100644 GIT binary patch delta 283 zcmeyz_k?G|3`WKelV>viXVjQHlgXS@ft3LaTsGfivS;+n0CEHwm>Db}q6{2Rx*RI* zfF|As6;FVQdqC;glRvVE*KdK!u7QfOKN8 lwKvejr6J-{3=hyGbfFqvOy0>_IJt^VY4RGjC6klbWdKR#AL9T3 delta 526 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 diff --git a/src/ising.f95 b/src/ising.f95 index e873dfb..9810d4c 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -4,18 +4,27 @@ program ising implicit none + !External Functions + real(8),external :: energy + integer,external :: hfield + + integer :: ii + integer :: tot_energy + open (unit = 1, file = 'energy.out',status = 'unknown') + open (unit = 2, file = 'hfield.out',status = 'unknown') + latticeSize=10 !Lattice Size ii=0 !Iteration Variable - iters=3 !Number of iterations the program runs through + iters=1000 !Number of iterations the program runs through rand_loc=2 !Init Random Location Variable n1=1 !Random Number Generator Seed lattice n2=2 !Random Number Generator Seed temp j=-1.d0 !magnetic coeffient - spin=0 !spin initation k=1 !Nomarlized Boltzman Constant - temp=1 !Tempereature of simulation + temp= .5 !Tempereature of simulation B=1/(k*temp) !constant of temp and boltman - energy_sum=0 + energy_sum=0 !Energy Sum + allocate(lattice(latticeSize,latticeSize)) lattice=1 lattice(:,1)=0 @@ -23,8 +32,7 @@ program ising lattice(1,:)=0 lattice(latticeSize,:)=0 - call energy - + tot_energy=energy(lattice,latticeSize) do ii=0,iters Call random_seed(n1) Call random_number(rand_loc) @@ -32,13 +40,17 @@ program ising rand_loc_int=int(rand_loc)+2 call del_energy call flip_bit - print*,'energy:',energy_sum + write (1,*),ii,energy_sum + write (2,*),ii,hfield(lattice,latticeSize) + end do end program subroutine del_energy use global + + integer :: spin,h1,h2,h3,h4 spin=lattice(rand_loc_int(1),rand_loc_int(2)) h1=lattice(rand_loc_int(1)+1,rand_loc_int(2)+1) h2=lattice(rand_loc_int(1)+1,rand_loc_int(2)-1) @@ -62,38 +74,54 @@ subroutine flip_bit use global + integer :: spin + spin = 0 if (del_e .lt. 0) then + spin=lattice(rand_loc_int(1),rand_loc_int(2)) lattice(rand_loc_int(1),rand_loc_int(2))=-spin energy_sum=energy_sum+del_e - print*,'flip neg_temp' else temp_prob=exp(-B*del_e) call random_seed(n2) call random_number(rand_temp) if (rand_temp .lt. temp_prob) then - print*,'rand_temp',rand_temp,'=<','temp_prob',temp_prob lattice(rand_loc_int(1),rand_loc_int(2))=-spin energy_sum=energy_sum+del_e - print*,'flip based on prob' end if end if end subroutine -subroutine energy +real(8) function energy(lattice1,latticeSize1) - use global + integer :: ii,jj + integer :: spin,h1,h2,h3,h4 + integer :: latticeSize1 + integer,dimension(latticeSize1,latticeSize1) :: lattice1 - do ii=2,latticeSize-1 - do jj=2,latticeSize-1 - spin=lattice(ii,jj) - h1=lattice(ii+1,jj+1) - h2=lattice(ii+1,jj-1) - h3=lattice(ii-1,jj+1) - h4=lattice(ii-1,jj-1) - energy_sum=energy_sum+spin*(h1+h2*h3+h4) + do ii=2,latticeSize1-1 + do jj=2,latticeSize1-1 + spin=lattice1(ii,jj) + h1=lattice1(ii+1,jj+1) + h2=lattice1(ii+1,jj-1) + h3=lattice1(ii-1,jj+1) + h4=lattice1(ii-1,jj-1) + energy=energy+spin*(h1+h2*h3+h4) end do end do - print*,'energy_sum',energy_sum + print*,'energy_sum',energy +end function -end subroutine +integer function hfield(lattice1,latticeSize1) + + integer :: ii,jj !local indexers + integer :: latticeSize1 + integer,dimension(latticeSize1,latticeSize1) :: lattice1 + hfield=0 + do ii=1,latticeSize1 + do jj=1,latticeSize1 + hfield=hfield+lattice1(ii,jj) + end do + end do + +end function hfield diff --git a/src/ising.o b/src/ising.o index cfac00e22a0406c087801c633e3f186a80dd8082..323f91acc68db64926cbe9afff5d98d5e1d267d0 100644 GIT binary patch literal 10648 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 From 1ff0167b6f82ce19f2dd8f0e4d1fc21ce035d0af Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Tue, 17 Feb 2015 11:29:59 -0500 Subject: [PATCH 06/11] Magnitization part working in stable state. t # src/.ising.f95.swp --- src/ising.f95 | 132 ++++++++++++++++++++------------------------------ 1 file changed, 52 insertions(+), 80 deletions(-) diff --git a/src/ising.f95 b/src/ising.f95 index 9810d4c..00a9c5f 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -10,38 +10,35 @@ program ising integer :: ii integer :: tot_energy + open (unit = 1, file = 'energy.out',status = 'unknown') open (unit = 2, file = 'hfield.out',status = 'unknown') - latticeSize=10 !Lattice Size - ii=0 !Iteration Variable - iters=1000 !Number of iterations the program runs through - rand_loc=2 !Init Random Location Variable - n1=1 !Random Number Generator Seed lattice - n2=2 !Random Number Generator Seed temp - j=-1.d0 !magnetic coeffient - k=1 !Nomarlized Boltzman Constant - temp= .5 !Tempereature of simulation - B=1/(k*temp) !constant of temp and boltman - energy_sum=0 !Energy Sum + latticeSize = 100 !Lattice Size + ii = 0 !Iteration Variable + iters = 10000000 !Number of iterations the program runs through + rand_loc = 2 !Init Random Location Variable + n1 = 4 !Random Number Generator Seed lattice + n2 = 2 !Random Number Generator Seed temp + j = 1.d0 !magnetic coeffient + k = 1 !Nomarlized Boltzman Constant + temp = 2 !Tempereature of simulation + B = 1/(k*temp) !constant of temp and boltman + energy_sum = 0 !Energy Sum - allocate(lattice(latticeSize,latticeSize)) - lattice=1 - lattice(:,1)=0 - lattice(:,latticeSize)=0 - lattice(1,:)=0 - lattice(latticeSize,:)=0 + allocate(lattice(0:latticeSize + 1,0:latticeSize + 1)) + lattice = 0 + lattice(1:latticeSize, 1:latticeSize) = 1 - tot_energy=energy(lattice,latticeSize) - do ii=0,iters - Call random_seed(n1) + tot_energy = energy(lattice,latticeSize) + do ii = 0,iters Call random_number(rand_loc) - rand_loc=rand_loc*(latticeSize-2) - rand_loc_int=int(rand_loc)+2 + rand_loc = rand_loc*(latticeSize) + rand_loc_int = ceiling(rand_loc) call del_energy call flip_bit - write (1,*),ii,energy_sum - write (2,*),ii,hfield(lattice,latticeSize) + write (1,*),ii, energy_sum + write (2,*),ii, sum(lattice)/float(latticeSize**2) end do end program @@ -51,77 +48,52 @@ subroutine del_energy use global integer :: spin,h1,h2,h3,h4 - spin=lattice(rand_loc_int(1),rand_loc_int(2)) - h1=lattice(rand_loc_int(1)+1,rand_loc_int(2)+1) - h2=lattice(rand_loc_int(1)+1,rand_loc_int(2)-1) - h3=lattice(rand_loc_int(1)-1,rand_loc_int(2)+1) - h4=lattice(rand_loc_int(1)-1,rand_loc_int(2)-1) - h(1)=j*spin*(h1+h2+h3+h4) - print*,'h(1):',h(1) - if(spin==-1) then - spin=1 - h(2)=j*spin*(h1+h2+h3+h4) - else - spin=-1 - h(2)=j*spin*(h1+h2+h3+h4) - end if - print*,'h(2)',h(2) - del_e=h(1)-h(2) - print*,'del_e',del_e + spin = lattice(rand_loc_int(1),rand_loc_int(2)) + h1 = lattice(rand_loc_int(1)+1,rand_loc_int(2)+1) + h2 = lattice(rand_loc_int(1)+1,rand_loc_int(2)-1) + h3 = lattice(rand_loc_int(1)-1,rand_loc_int(2)+1) + h4 = lattice(rand_loc_int(1)-1,rand_loc_int(2)-1) + del_e = 2*spin*(h1 + h2 + h3 + h4) end subroutine subroutine flip_bit - use global + real(KIND=8) :: boltzmann + integer :: spin spin = 0 - if (del_e .lt. 0) then - spin=lattice(rand_loc_int(1),rand_loc_int(2)) - lattice(rand_loc_int(1),rand_loc_int(2))=-spin - energy_sum=energy_sum+del_e - else - temp_prob=exp(-B*del_e) - call random_seed(n2) - call random_number(rand_temp) - if (rand_temp .lt. temp_prob) then - lattice(rand_loc_int(1),rand_loc_int(2))=-spin - energy_sum=energy_sum+del_e - end if + spin = lattice(rand_loc_int(1),rand_loc_int(2)) +! if (del_e .lt. 0) then +! spin=lattice(rand_loc_int(1),rand_loc_int(2)) +! lattice(rand_loc_int(1),rand_loc_int(2))=-spin +! energy_sum=energy_sum+del_e + call random_number(rand_temp) + if (exp(-B*del_e) .ge. rand_temp) then + lattice(rand_loc_int(1),rand_loc_int(2))=-spin + energy_sum=energy_sum+del_e end if end subroutine real(8) function energy(lattice1,latticeSize1) - integer :: ii,jj - integer :: spin,h1,h2,h3,h4 integer :: latticeSize1 integer,dimension(latticeSize1,latticeSize1) :: lattice1 - - do ii=2,latticeSize1-1 - do jj=2,latticeSize1-1 - spin=lattice1(ii,jj) - h1=lattice1(ii+1,jj+1) - h2=lattice1(ii+1,jj-1) - h3=lattice1(ii-1,jj+1) - h4=lattice1(ii-1,jj-1) - energy=energy+spin*(h1+h2*h3+h4) + + integer :: ii,jj + integer :: spin,h1,h2,h3,h4 + + energy=0 + + do ii = 2,latticeSize1 - 1 + do jj = 2,latticeSize1 - 1 + spin = lattice1(ii,jj) + h1 = lattice1(ii + 1,jj + 1) + h2 = lattice1(ii + 1,jj - 1) + h3 = lattice1(ii - 1,jj + 1) + h4 = lattice1(ii - 1,jj - 1) + energy = energy+spin*(h1+h2*h3+h4) end do end do - print*,'energy_sum',energy end function - -integer function hfield(lattice1,latticeSize1) - - integer :: ii,jj !local indexers - integer :: latticeSize1 - integer,dimension(latticeSize1,latticeSize1) :: lattice1 - hfield=0 - do ii=1,latticeSize1 - do jj=1,latticeSize1 - hfield=hfield+lattice1(ii,jj) - end do - end do - -end function hfield From e577d2ea2af85937d60c824d3b1216bf1e21477b Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Tue, 17 Feb 2015 12:02:13 -0500 Subject: [PATCH 07/11] Cleaned up git folder and removed files from being tracked. --- .gitignore | 7 + report/figures/fig_1.pdf | Bin 4571 -> 0 bytes report/report.tex | 25 +- src/.gitignore | 4 + src/energy.out | 1001 -------------------------------------- src/global.mod | 65 --- src/global.o | Bin 1636 -> 0 bytes src/hfield.out | 1001 -------------------------------------- src/ising.exe | Bin 13832 -> 0 bytes src/ising.o | Bin 10648 -> 0 bytes 10 files changed, 21 insertions(+), 2082 deletions(-) create mode 100644 .gitignore delete mode 100644 report/figures/fig_1.pdf create mode 100644 src/.gitignore delete mode 100644 src/energy.out delete mode 100644 src/global.mod delete mode 100644 src/global.o delete mode 100644 src/hfield.out delete mode 100755 src/ising.exe delete mode 100644 src/ising.o diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4468376 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.o +src/*.o +*.mod +src/*.mod +src/*.out + + diff --git a/report/figures/fig_1.pdf b/report/figures/fig_1.pdf deleted file mode 100644 index 629164b607ba734169bfd367385679d46aa8a8b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4571 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 OC|f}D_6~kKg!XSE{Ux~o diff --git a/report/report.tex b/report/report.tex index 72d1253..a672a70 100644 --- a/report/report.tex +++ b/report/report.tex @@ -10,35 +10,30 @@ \begin{document} -\title{Manuscript Title:\\with Forced Linebreak}% Force line breaks with \\ -\author{Ann Author} +\title{Modeling Ising}% Force line breaks with \\ +\author{Scott O'Connor} \date{\today}% It is always \today, today, but you can specify other dates manually \maketitle \begin{abstract} -An article usually includes an abstract, a concise summary of the work -covered at length in the main body of the article. +Here are some cool facts about the ising model \end{abstract} -\section{First-level heading} %Title for the section +\section{Magnetization at Different Temperatures} %Title for the section \label{sec:level1} %Label for the section, to be used for referencing in other parts of the document -This sample document demonstrates some common uses of \LaTeX\ in documents you'll write for ICCP. Further information can be found online at the \href{http://en.wikibooks.org/wiki/LaTeX}{\LaTeX\ wikibook} or in the distribution documentation. +\subsection{\label{sec:level2} Temperature at 2} -When we refer to commands in this example file, they always have their required formal arguments in normal \TeX{} format. In this format, \verb+#1+, \verb+#2+, etc. stand for required author-supplied arguments to commands. For example, in \verb+\section{#1}+ the \verb+#1+ stands for the title text of the author's section heading, and in \verb+\title{#1}+ the \verb+#1+ stands for the title text of the paper. +\subsection{\label{sec:level2} Temperature at 3} -Line breaks in section headings at all levels can be introduced using \textbackslash\textbackslash. A blank input line tells \TeX\ that the paragraph has ended. +\section{Energy at Different Temperatures} -\subsection{\label{sec:level2} Second-level heading: Formatting} +\subsection{\label{sec:level2} Temperature at 2} -This file may be formatted in either the \texttt{preprint} or \texttt{reprint} style. \texttt{reprint} format mimics final journal output. The paper size may be specified with the option \texttt{letter}. These options are inserted in the square brackets inside the \texttt{\textbackslash documentclass[]\{article\}} command. +\subsection{\label{sec:level2} Temperature at 3} -\section{Math and Equations} -Inline math may be typeset using the \verb+$+ delimiters. Bold math symbols may be achieved using the \verb+bm+ package and the \verb+\bm{#1}+ command it supplies. For instance, a bold $\alpha$ can be typeset as \verb+$\bm{\alpha}$+ giving $\bm{\alpha}$. Fraktur and Blackboard (or open face or double struck) characters should be typeset using the \verb+\mathfrak{#1}+ and \verb+\mathbb{#1}+ commands respectively. Both are supplied by the \texttt{amssymb} package. For -example, \verb+$\mathbb{R}$+ gives $\mathbb{R}$ and \verb+$\mathfrak{G}$+ gives $\mathfrak{G}$ - -In \LaTeX\ there are many different ways to display equations, and a few preferred ways are noted below. Displayed math will center by default. Use the class option \verb+fleqn+ to flush equations left. +\section{Average Magnetization as a function of temperature} Below we have numbered single-line equations; this is generally the most common type of equation in \LaTeX: \begin{equation} diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..3e2133d --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,4 @@ +*.out +*.o +*.mod +*.exe diff --git a/src/energy.out b/src/energy.out deleted file mode 100644 index f3789ca..0000000 --- a/src/energy.out +++ /dev/null @@ -1,1001 +0,0 @@ - 0 -4.0000000000000000 - 1 -8.0000000000000000 - 2 -16.000000000000000 - 3 -18.000000000000000 - 4 -26.000000000000000 - 5 -26.000000000000000 - 6 -30.000000000000000 - 7 -34.000000000000000 - 8 -42.000000000000000 - 9 -50.000000000000000 - 10 -54.000000000000000 - 11 -54.000000000000000 - 12 -58.000000000000000 - 13 -62.000000000000000 - 14 -70.000000000000000 - 15 -70.000000000000000 - 16 -74.000000000000000 - 17 -78.000000000000000 - 18 -78.000000000000000 - 19 -80.000000000000000 - 20 -80.000000000000000 - 21 -84.000000000000000 - 22 -84.000000000000000 - 23 -88.000000000000000 - 24 -90.000000000000000 - 25 -98.000000000000000 - 26 -98.000000000000000 - 27 -98.000000000000000 - 28 -100.00000000000000 - 29 -100.00000000000000 - 30 -100.00000000000000 - 31 -104.00000000000000 - 32 -104.00000000000000 - 33 -104.00000000000000 - 34 -104.00000000000000 - 35 -104.00000000000000 - 36 -108.00000000000000 - 37 -108.00000000000000 - 38 -108.00000000000000 - 39 -112.00000000000000 - 40 -112.00000000000000 - 41 -112.00000000000000 - 42 -112.00000000000000 - 43 -112.00000000000000 - 44 -112.00000000000000 - 45 -116.00000000000000 - 46 -118.00000000000000 - 47 -118.00000000000000 - 48 -118.00000000000000 - 49 -118.00000000000000 - 50 -118.00000000000000 - 51 -118.00000000000000 - 52 -118.00000000000000 - 53 -122.00000000000000 - 54 -122.00000000000000 - 55 -130.00000000000000 - 56 -132.00000000000000 - 57 -132.00000000000000 - 58 -132.00000000000000 - 59 -132.00000000000000 - 60 -132.00000000000000 - 61 -132.00000000000000 - 62 -132.00000000000000 - 63 -132.00000000000000 - 64 -132.00000000000000 - 65 -132.00000000000000 - 66 -132.00000000000000 - 67 -132.00000000000000 - 68 -140.00000000000000 - 69 -140.00000000000000 - 70 -140.00000000000000 - 71 -140.00000000000000 - 72 -142.00000000000000 - 73 -142.00000000000000 - 74 -142.00000000000000 - 75 -142.00000000000000 - 76 -142.00000000000000 - 77 -142.00000000000000 - 78 -142.00000000000000 - 79 -142.00000000000000 - 80 -142.00000000000000 - 81 -142.00000000000000 - 82 -142.00000000000000 - 83 -142.00000000000000 - 84 -142.00000000000000 - 85 -142.00000000000000 - 86 -142.00000000000000 - 87 -142.00000000000000 - 88 -142.00000000000000 - 89 -142.00000000000000 - 90 -142.00000000000000 - 91 -142.00000000000000 - 92 -142.00000000000000 - 93 -144.00000000000000 - 94 -144.00000000000000 - 95 -144.00000000000000 - 96 -144.00000000000000 - 97 -144.00000000000000 - 98 -144.00000000000000 - 99 -144.00000000000000 - 100 -144.00000000000000 - 101 -148.00000000000000 - 102 -148.00000000000000 - 103 -148.00000000000000 - 104 -148.00000000000000 - 105 -148.00000000000000 - 106 -148.00000000000000 - 107 -148.00000000000000 - 108 -148.00000000000000 - 109 -148.00000000000000 - 110 -148.00000000000000 - 111 -149.00000000000000 - 112 -149.00000000000000 - 113 -149.00000000000000 - 114 -149.00000000000000 - 115 -149.00000000000000 - 116 -149.00000000000000 - 117 -149.00000000000000 - 118 -152.00000000000000 - 119 -152.00000000000000 - 120 -152.00000000000000 - 121 -152.00000000000000 - 122 -152.00000000000000 - 123 -154.00000000000000 - 124 -154.00000000000000 - 125 -154.00000000000000 - 126 -154.00000000000000 - 127 -154.00000000000000 - 128 -154.00000000000000 - 129 -154.00000000000000 - 130 -154.00000000000000 - 131 -154.00000000000000 - 132 -155.00000000000000 - 133 -155.00000000000000 - 134 -155.00000000000000 - 135 -155.00000000000000 - 136 -155.00000000000000 - 137 -155.00000000000000 - 138 -155.00000000000000 - 139 -155.00000000000000 - 140 -155.00000000000000 - 141 -155.00000000000000 - 142 -155.00000000000000 - 143 -155.00000000000000 - 144 -155.00000000000000 - 145 -155.00000000000000 - 146 -154.00000000000000 - 147 -154.00000000000000 - 148 -154.00000000000000 - 149 -154.00000000000000 - 150 -154.00000000000000 - 151 -154.00000000000000 - 152 -154.00000000000000 - 153 -154.00000000000000 - 154 -154.00000000000000 - 155 -154.00000000000000 - 156 -154.00000000000000 - 157 -154.00000000000000 - 158 -154.00000000000000 - 159 -154.00000000000000 - 160 -154.00000000000000 - 161 -154.00000000000000 - 162 -154.00000000000000 - 163 -154.00000000000000 - 164 -154.00000000000000 - 165 -154.00000000000000 - 166 -154.00000000000000 - 167 -154.00000000000000 - 168 -154.00000000000000 - 169 -154.00000000000000 - 170 -154.00000000000000 - 171 -154.00000000000000 - 172 -154.00000000000000 - 173 -154.00000000000000 - 174 -154.00000000000000 - 175 -154.00000000000000 - 176 -154.00000000000000 - 177 -154.00000000000000 - 178 -154.00000000000000 - 179 -154.00000000000000 - 180 -154.00000000000000 - 181 -154.00000000000000 - 182 -154.00000000000000 - 183 -154.00000000000000 - 184 -154.00000000000000 - 185 -154.00000000000000 - 186 -154.00000000000000 - 187 -154.00000000000000 - 188 -154.00000000000000 - 189 -154.00000000000000 - 190 -154.00000000000000 - 191 -154.00000000000000 - 192 -154.00000000000000 - 193 -154.00000000000000 - 194 -154.00000000000000 - 195 -154.00000000000000 - 196 -154.00000000000000 - 197 -155.00000000000000 - 198 -155.00000000000000 - 199 -155.00000000000000 - 200 -155.00000000000000 - 201 -155.00000000000000 - 202 -155.00000000000000 - 203 -155.00000000000000 - 204 -155.00000000000000 - 205 -155.00000000000000 - 206 -155.00000000000000 - 207 -155.00000000000000 - 208 -155.00000000000000 - 209 -155.00000000000000 - 210 -156.00000000000000 - 211 -156.00000000000000 - 212 -156.00000000000000 - 213 -156.00000000000000 - 214 -157.00000000000000 - 215 -157.00000000000000 - 216 -157.00000000000000 - 217 -157.00000000000000 - 218 -157.00000000000000 - 219 -157.00000000000000 - 220 -157.00000000000000 - 221 -157.00000000000000 - 222 -157.00000000000000 - 223 -157.00000000000000 - 224 -157.00000000000000 - 225 -157.00000000000000 - 226 -157.00000000000000 - 227 -157.00000000000000 - 228 -157.00000000000000 - 229 -157.00000000000000 - 230 -157.00000000000000 - 231 -157.00000000000000 - 232 -157.00000000000000 - 233 -157.00000000000000 - 234 -157.00000000000000 - 235 -157.00000000000000 - 236 -157.00000000000000 - 237 -157.00000000000000 - 238 -157.00000000000000 - 239 -157.00000000000000 - 240 -157.00000000000000 - 241 -157.00000000000000 - 242 -157.00000000000000 - 243 -157.00000000000000 - 244 -157.00000000000000 - 245 -157.00000000000000 - 246 -157.00000000000000 - 247 -157.00000000000000 - 248 -157.00000000000000 - 249 -157.00000000000000 - 250 -157.00000000000000 - 251 -157.00000000000000 - 252 -157.00000000000000 - 253 -157.00000000000000 - 254 -157.00000000000000 - 255 -157.00000000000000 - 256 -157.00000000000000 - 257 -157.00000000000000 - 258 -157.00000000000000 - 259 -157.00000000000000 - 260 -157.00000000000000 - 261 -157.00000000000000 - 262 -157.00000000000000 - 263 -157.00000000000000 - 264 -157.00000000000000 - 265 -157.00000000000000 - 266 -158.00000000000000 - 267 -158.00000000000000 - 268 -158.00000000000000 - 269 -158.00000000000000 - 270 -158.00000000000000 - 271 -159.00000000000000 - 272 -159.00000000000000 - 273 -159.00000000000000 - 274 -159.00000000000000 - 275 -159.00000000000000 - 276 -159.00000000000000 - 277 -159.00000000000000 - 278 -159.00000000000000 - 279 -159.00000000000000 - 280 -159.00000000000000 - 281 -159.00000000000000 - 282 -159.00000000000000 - 283 -159.00000000000000 - 284 -159.00000000000000 - 285 -159.00000000000000 - 286 -159.00000000000000 - 287 -159.00000000000000 - 288 -159.00000000000000 - 289 -159.00000000000000 - 290 -159.00000000000000 - 291 -159.00000000000000 - 292 -160.00000000000000 - 293 -160.00000000000000 - 294 -160.00000000000000 - 295 -160.00000000000000 - 296 -160.00000000000000 - 297 -160.00000000000000 - 298 -160.00000000000000 - 299 -161.00000000000000 - 300 -162.00000000000000 - 301 -162.00000000000000 - 302 -162.00000000000000 - 303 -162.00000000000000 - 304 -162.00000000000000 - 305 -162.00000000000000 - 306 -163.00000000000000 - 307 -163.00000000000000 - 308 -163.00000000000000 - 309 -164.00000000000000 - 310 -164.00000000000000 - 311 -164.00000000000000 - 312 -164.00000000000000 - 313 -164.00000000000000 - 314 -164.00000000000000 - 315 -164.00000000000000 - 316 -164.00000000000000 - 317 -164.00000000000000 - 318 -164.00000000000000 - 319 -164.00000000000000 - 320 -164.00000000000000 - 321 -164.00000000000000 - 322 -164.00000000000000 - 323 -164.00000000000000 - 324 -164.00000000000000 - 325 -164.00000000000000 - 326 -164.00000000000000 - 327 -164.00000000000000 - 328 -164.00000000000000 - 329 -164.00000000000000 - 330 -164.00000000000000 - 331 -164.00000000000000 - 332 -164.00000000000000 - 333 -164.00000000000000 - 334 -164.00000000000000 - 335 -164.00000000000000 - 336 -164.00000000000000 - 337 -164.00000000000000 - 338 -164.00000000000000 - 339 -164.00000000000000 - 340 -164.00000000000000 - 341 -164.00000000000000 - 342 -164.00000000000000 - 343 -164.00000000000000 - 344 -164.00000000000000 - 345 -164.00000000000000 - 346 -164.00000000000000 - 347 -164.00000000000000 - 348 -164.00000000000000 - 349 -164.00000000000000 - 350 -164.00000000000000 - 351 -164.00000000000000 - 352 -164.00000000000000 - 353 -164.00000000000000 - 354 -164.00000000000000 - 355 -164.00000000000000 - 356 -164.00000000000000 - 357 -164.00000000000000 - 358 -164.00000000000000 - 359 -164.00000000000000 - 360 -164.00000000000000 - 361 -164.00000000000000 - 362 -164.00000000000000 - 363 -164.00000000000000 - 364 -164.00000000000000 - 365 -164.00000000000000 - 366 -164.00000000000000 - 367 -164.00000000000000 - 368 -164.00000000000000 - 369 -164.00000000000000 - 370 -164.00000000000000 - 371 -164.00000000000000 - 372 -164.00000000000000 - 373 -164.00000000000000 - 374 -164.00000000000000 - 375 -162.00000000000000 - 376 -162.00000000000000 - 377 -162.00000000000000 - 378 -162.00000000000000 - 379 -162.00000000000000 - 380 -162.00000000000000 - 381 -162.00000000000000 - 382 -162.00000000000000 - 383 -162.00000000000000 - 384 -162.00000000000000 - 385 -162.00000000000000 - 386 -162.00000000000000 - 387 -162.00000000000000 - 388 -162.00000000000000 - 389 -162.00000000000000 - 390 -162.00000000000000 - 391 -162.00000000000000 - 392 -162.00000000000000 - 393 -162.00000000000000 - 394 -162.00000000000000 - 395 -162.00000000000000 - 396 -162.00000000000000 - 397 -161.00000000000000 - 398 -162.00000000000000 - 399 -162.00000000000000 - 400 -163.00000000000000 - 401 -163.00000000000000 - 402 -163.00000000000000 - 403 -163.00000000000000 - 404 -163.00000000000000 - 405 -163.00000000000000 - 406 -164.00000000000000 - 407 -164.00000000000000 - 408 -164.00000000000000 - 409 -164.00000000000000 - 410 -164.00000000000000 - 411 -164.00000000000000 - 412 -164.00000000000000 - 413 -164.00000000000000 - 414 -164.00000000000000 - 415 -164.00000000000000 - 416 -164.00000000000000 - 417 -164.00000000000000 - 418 -164.00000000000000 - 419 -164.00000000000000 - 420 -164.00000000000000 - 421 -164.00000000000000 - 422 -164.00000000000000 - 423 -165.00000000000000 - 424 -165.00000000000000 - 425 -165.00000000000000 - 426 -165.00000000000000 - 427 -165.00000000000000 - 428 -165.00000000000000 - 429 -165.00000000000000 - 430 -165.00000000000000 - 431 -165.00000000000000 - 432 -165.00000000000000 - 433 -165.00000000000000 - 434 -165.00000000000000 - 435 -165.00000000000000 - 436 -165.00000000000000 - 437 -165.00000000000000 - 438 -165.00000000000000 - 439 -165.00000000000000 - 440 -165.00000000000000 - 441 -165.00000000000000 - 442 -165.00000000000000 - 443 -165.00000000000000 - 444 -165.00000000000000 - 445 -165.00000000000000 - 446 -165.00000000000000 - 447 -165.00000000000000 - 448 -165.00000000000000 - 449 -165.00000000000000 - 450 -165.00000000000000 - 451 -166.00000000000000 - 452 -166.00000000000000 - 453 -166.00000000000000 - 454 -167.00000000000000 - 455 -167.00000000000000 - 456 -167.00000000000000 - 457 -167.00000000000000 - 458 -167.00000000000000 - 459 -167.00000000000000 - 460 -167.00000000000000 - 461 -167.00000000000000 - 462 -167.00000000000000 - 463 -168.00000000000000 - 464 -168.00000000000000 - 465 -167.00000000000000 - 466 -167.00000000000000 - 467 -167.00000000000000 - 468 -167.00000000000000 - 469 -167.00000000000000 - 470 -167.00000000000000 - 471 -167.00000000000000 - 472 -167.00000000000000 - 473 -167.00000000000000 - 474 -167.00000000000000 - 475 -167.00000000000000 - 476 -167.00000000000000 - 477 -167.00000000000000 - 478 -167.00000000000000 - 479 -167.00000000000000 - 480 -167.00000000000000 - 481 -167.00000000000000 - 482 -168.00000000000000 - 483 -168.00000000000000 - 484 -168.00000000000000 - 485 -168.00000000000000 - 486 -168.00000000000000 - 487 -168.00000000000000 - 488 -168.00000000000000 - 489 -168.00000000000000 - 490 -168.00000000000000 - 491 -168.00000000000000 - 492 -168.00000000000000 - 493 -168.00000000000000 - 494 -168.00000000000000 - 495 -168.00000000000000 - 496 -168.00000000000000 - 497 -168.00000000000000 - 498 -168.00000000000000 - 499 -168.00000000000000 - 500 -168.00000000000000 - 501 -168.00000000000000 - 502 -168.00000000000000 - 503 -168.00000000000000 - 504 -168.00000000000000 - 505 -168.00000000000000 - 506 -168.00000000000000 - 507 -168.00000000000000 - 508 -168.00000000000000 - 509 -168.00000000000000 - 510 -168.00000000000000 - 511 -169.00000000000000 - 512 -169.00000000000000 - 513 -169.00000000000000 - 514 -170.00000000000000 - 515 -172.00000000000000 - 516 -172.00000000000000 - 517 -172.00000000000000 - 518 -172.00000000000000 - 519 -172.00000000000000 - 520 -172.00000000000000 - 521 -172.00000000000000 - 522 -172.00000000000000 - 523 -172.00000000000000 - 524 -172.00000000000000 - 525 -172.00000000000000 - 526 -172.00000000000000 - 527 -172.00000000000000 - 528 -172.00000000000000 - 529 -172.00000000000000 - 530 -172.00000000000000 - 531 -172.00000000000000 - 532 -172.00000000000000 - 533 -172.00000000000000 - 534 -172.00000000000000 - 535 -172.00000000000000 - 536 -172.00000000000000 - 537 -172.00000000000000 - 538 -172.00000000000000 - 539 -172.00000000000000 - 540 -172.00000000000000 - 541 -172.00000000000000 - 542 -172.00000000000000 - 543 -172.00000000000000 - 544 -172.00000000000000 - 545 -172.00000000000000 - 546 -172.00000000000000 - 547 -172.00000000000000 - 548 -172.00000000000000 - 549 -172.00000000000000 - 550 -172.00000000000000 - 551 -172.00000000000000 - 552 -172.00000000000000 - 553 -172.00000000000000 - 554 -172.00000000000000 - 555 -173.00000000000000 - 556 -173.00000000000000 - 557 -173.00000000000000 - 558 -173.00000000000000 - 559 -173.00000000000000 - 560 -173.00000000000000 - 561 -173.00000000000000 - 562 -173.00000000000000 - 563 -173.00000000000000 - 564 -173.00000000000000 - 565 -173.00000000000000 - 566 -173.00000000000000 - 567 -173.00000000000000 - 568 -173.00000000000000 - 569 -173.00000000000000 - 570 -173.00000000000000 - 571 -173.00000000000000 - 572 -173.00000000000000 - 573 -173.00000000000000 - 574 -173.00000000000000 - 575 -173.00000000000000 - 576 -173.00000000000000 - 577 -173.00000000000000 - 578 -173.00000000000000 - 579 -173.00000000000000 - 580 -173.00000000000000 - 581 -173.00000000000000 - 582 -173.00000000000000 - 583 -173.00000000000000 - 584 -173.00000000000000 - 585 -173.00000000000000 - 586 -173.00000000000000 - 587 -173.00000000000000 - 588 -173.00000000000000 - 589 -174.00000000000000 - 590 -174.00000000000000 - 591 -174.00000000000000 - 592 -174.00000000000000 - 593 -174.00000000000000 - 594 -174.00000000000000 - 595 -174.00000000000000 - 596 -174.00000000000000 - 597 -174.00000000000000 - 598 -174.00000000000000 - 599 -174.00000000000000 - 600 -174.00000000000000 - 601 -174.00000000000000 - 602 -174.00000000000000 - 603 -173.00000000000000 - 604 -173.00000000000000 - 605 -174.00000000000000 - 606 -174.00000000000000 - 607 -173.00000000000000 - 608 -173.00000000000000 - 609 -173.00000000000000 - 610 -173.00000000000000 - 611 -173.00000000000000 - 612 -173.00000000000000 - 613 -173.00000000000000 - 614 -173.00000000000000 - 615 -173.00000000000000 - 616 -173.00000000000000 - 617 -173.00000000000000 - 618 -173.00000000000000 - 619 -173.00000000000000 - 620 -173.00000000000000 - 621 -173.00000000000000 - 622 -173.00000000000000 - 623 -173.00000000000000 - 624 -173.00000000000000 - 625 -173.00000000000000 - 626 -173.00000000000000 - 627 -173.00000000000000 - 628 -173.00000000000000 - 629 -173.00000000000000 - 630 -174.00000000000000 - 631 -174.00000000000000 - 632 -174.00000000000000 - 633 -174.00000000000000 - 634 -174.00000000000000 - 635 -174.00000000000000 - 636 -174.00000000000000 - 637 -174.00000000000000 - 638 -174.00000000000000 - 639 -174.00000000000000 - 640 -174.00000000000000 - 641 -174.00000000000000 - 642 -175.00000000000000 - 643 -175.00000000000000 - 644 -175.00000000000000 - 645 -175.00000000000000 - 646 -175.00000000000000 - 647 -176.00000000000000 - 648 -177.00000000000000 - 649 -177.00000000000000 - 650 -177.00000000000000 - 651 -177.00000000000000 - 652 -177.00000000000000 - 653 -177.00000000000000 - 654 -177.00000000000000 - 655 -177.00000000000000 - 656 -177.00000000000000 - 657 -178.00000000000000 - 658 -178.00000000000000 - 659 -178.00000000000000 - 660 -178.00000000000000 - 661 -178.00000000000000 - 662 -179.00000000000000 - 663 -179.00000000000000 - 664 -179.00000000000000 - 665 -179.00000000000000 - 666 -179.00000000000000 - 667 -179.00000000000000 - 668 -179.00000000000000 - 669 -179.00000000000000 - 670 -179.00000000000000 - 671 -179.00000000000000 - 672 -179.00000000000000 - 673 -179.00000000000000 - 674 -180.00000000000000 - 675 -180.00000000000000 - 676 -180.00000000000000 - 677 -180.00000000000000 - 678 -181.00000000000000 - 679 -181.00000000000000 - 680 -181.00000000000000 - 681 -181.00000000000000 - 682 -181.00000000000000 - 683 -181.00000000000000 - 684 -181.00000000000000 - 685 -181.00000000000000 - 686 -181.00000000000000 - 687 -181.00000000000000 - 688 -181.00000000000000 - 689 -182.00000000000000 - 690 -182.00000000000000 - 691 -182.00000000000000 - 692 -182.00000000000000 - 693 -182.00000000000000 - 694 -182.00000000000000 - 695 -182.00000000000000 - 696 -182.00000000000000 - 697 -182.00000000000000 - 698 -182.00000000000000 - 699 -182.00000000000000 - 700 -182.00000000000000 - 701 -182.00000000000000 - 702 -182.00000000000000 - 703 -182.00000000000000 - 704 -182.00000000000000 - 705 -183.00000000000000 - 706 -183.00000000000000 - 707 -183.00000000000000 - 708 -183.00000000000000 - 709 -183.00000000000000 - 710 -183.00000000000000 - 711 -183.00000000000000 - 712 -183.00000000000000 - 713 -183.00000000000000 - 714 -183.00000000000000 - 715 -183.00000000000000 - 716 -183.00000000000000 - 717 -183.00000000000000 - 718 -183.00000000000000 - 719 -184.00000000000000 - 720 -184.00000000000000 - 721 -184.00000000000000 - 722 -184.00000000000000 - 723 -184.00000000000000 - 724 -185.00000000000000 - 725 -186.00000000000000 - 726 -186.00000000000000 - 727 -187.00000000000000 - 728 -187.00000000000000 - 729 -187.00000000000000 - 730 -187.00000000000000 - 731 -187.00000000000000 - 732 -187.00000000000000 - 733 -187.00000000000000 - 734 -187.00000000000000 - 735 -187.00000000000000 - 736 -187.00000000000000 - 737 -187.00000000000000 - 738 -187.00000000000000 - 739 -187.00000000000000 - 740 -187.00000000000000 - 741 -187.00000000000000 - 742 -187.00000000000000 - 743 -187.00000000000000 - 744 -187.00000000000000 - 745 -187.00000000000000 - 746 -187.00000000000000 - 747 -187.00000000000000 - 748 -188.00000000000000 - 749 -188.00000000000000 - 750 -188.00000000000000 - 751 -188.00000000000000 - 752 -188.00000000000000 - 753 -188.00000000000000 - 754 -188.00000000000000 - 755 -188.00000000000000 - 756 -188.00000000000000 - 757 -189.00000000000000 - 758 -189.00000000000000 - 759 -189.00000000000000 - 760 -189.00000000000000 - 761 -189.00000000000000 - 762 -189.00000000000000 - 763 -189.00000000000000 - 764 -189.00000000000000 - 765 -189.00000000000000 - 766 -189.00000000000000 - 767 -189.00000000000000 - 768 -189.00000000000000 - 769 -189.00000000000000 - 770 -189.00000000000000 - 771 -189.00000000000000 - 772 -189.00000000000000 - 773 -189.00000000000000 - 774 -189.00000000000000 - 775 -189.00000000000000 - 776 -188.00000000000000 - 777 -188.00000000000000 - 778 -188.00000000000000 - 779 -188.00000000000000 - 780 -188.00000000000000 - 781 -188.00000000000000 - 782 -188.00000000000000 - 783 -188.00000000000000 - 784 -188.00000000000000 - 785 -188.00000000000000 - 786 -188.00000000000000 - 787 -188.00000000000000 - 788 -189.00000000000000 - 789 -189.00000000000000 - 790 -189.00000000000000 - 791 -189.00000000000000 - 792 -189.00000000000000 - 793 -189.00000000000000 - 794 -189.00000000000000 - 795 -189.00000000000000 - 796 -189.00000000000000 - 797 -189.00000000000000 - 798 -189.00000000000000 - 799 -189.00000000000000 - 800 -189.00000000000000 - 801 -189.00000000000000 - 802 -189.00000000000000 - 803 -189.00000000000000 - 804 -189.00000000000000 - 805 -189.00000000000000 - 806 -189.00000000000000 - 807 -189.00000000000000 - 808 -189.00000000000000 - 809 -189.00000000000000 - 810 -189.00000000000000 - 811 -189.00000000000000 - 812 -189.00000000000000 - 813 -189.00000000000000 - 814 -189.00000000000000 - 815 -189.00000000000000 - 816 -189.00000000000000 - 817 -189.00000000000000 - 818 -189.00000000000000 - 819 -189.00000000000000 - 820 -189.00000000000000 - 821 -189.00000000000000 - 822 -190.00000000000000 - 823 -190.00000000000000 - 824 -190.00000000000000 - 825 -190.00000000000000 - 826 -190.00000000000000 - 827 -190.00000000000000 - 828 -190.00000000000000 - 829 -190.00000000000000 - 830 -190.00000000000000 - 831 -190.00000000000000 - 832 -191.00000000000000 - 833 -191.00000000000000 - 834 -191.00000000000000 - 835 -191.00000000000000 - 836 -191.00000000000000 - 837 -191.00000000000000 - 838 -191.00000000000000 - 839 -191.00000000000000 - 840 -191.00000000000000 - 841 -191.00000000000000 - 842 -192.00000000000000 - 843 -192.00000000000000 - 844 -192.00000000000000 - 845 -192.00000000000000 - 846 -192.00000000000000 - 847 -192.00000000000000 - 848 -192.00000000000000 - 849 -192.00000000000000 - 850 -192.00000000000000 - 851 -192.00000000000000 - 852 -192.00000000000000 - 853 -192.00000000000000 - 854 -192.00000000000000 - 855 -192.00000000000000 - 856 -192.00000000000000 - 857 -192.00000000000000 - 858 -192.00000000000000 - 859 -192.00000000000000 - 860 -192.00000000000000 - 861 -192.00000000000000 - 862 -192.00000000000000 - 863 -192.00000000000000 - 864 -192.00000000000000 - 865 -192.00000000000000 - 866 -192.00000000000000 - 867 -193.00000000000000 - 868 -193.00000000000000 - 869 -193.00000000000000 - 870 -193.00000000000000 - 871 -193.00000000000000 - 872 -193.00000000000000 - 873 -193.00000000000000 - 874 -193.00000000000000 - 875 -192.00000000000000 - 876 -192.00000000000000 - 877 -192.00000000000000 - 878 -192.00000000000000 - 879 -192.00000000000000 - 880 -192.00000000000000 - 881 -192.00000000000000 - 882 -193.00000000000000 - 883 -193.00000000000000 - 884 -193.00000000000000 - 885 -193.00000000000000 - 886 -193.00000000000000 - 887 -193.00000000000000 - 888 -193.00000000000000 - 889 -193.00000000000000 - 890 -193.00000000000000 - 891 -193.00000000000000 - 892 -193.00000000000000 - 893 -193.00000000000000 - 894 -193.00000000000000 - 895 -193.00000000000000 - 896 -193.00000000000000 - 897 -194.00000000000000 - 898 -194.00000000000000 - 899 -194.00000000000000 - 900 -194.00000000000000 - 901 -194.00000000000000 - 902 -194.00000000000000 - 903 -194.00000000000000 - 904 -194.00000000000000 - 905 -194.00000000000000 - 906 -194.00000000000000 - 907 -194.00000000000000 - 908 -194.00000000000000 - 909 -194.00000000000000 - 910 -194.00000000000000 - 911 -195.00000000000000 - 912 -195.00000000000000 - 913 -195.00000000000000 - 914 -195.00000000000000 - 915 -195.00000000000000 - 916 -196.00000000000000 - 917 -196.00000000000000 - 918 -196.00000000000000 - 919 -196.00000000000000 - 920 -196.00000000000000 - 921 -196.00000000000000 - 922 -197.00000000000000 - 923 -197.00000000000000 - 924 -197.00000000000000 - 925 -198.00000000000000 - 926 -198.00000000000000 - 927 -198.00000000000000 - 928 -198.00000000000000 - 929 -198.00000000000000 - 930 -198.00000000000000 - 931 -198.00000000000000 - 932 -198.00000000000000 - 933 -198.00000000000000 - 934 -199.00000000000000 - 935 -197.00000000000000 - 936 -197.00000000000000 - 937 -197.00000000000000 - 938 -198.00000000000000 - 939 -198.00000000000000 - 940 -198.00000000000000 - 941 -198.00000000000000 - 942 -198.00000000000000 - 943 -198.00000000000000 - 944 -198.00000000000000 - 945 -198.00000000000000 - 946 -199.00000000000000 - 947 -199.00000000000000 - 948 -200.00000000000000 - 949 -200.00000000000000 - 950 -200.00000000000000 - 951 -200.00000000000000 - 952 -200.00000000000000 - 953 -200.00000000000000 - 954 -200.00000000000000 - 955 -200.00000000000000 - 956 -200.00000000000000 - 957 -200.00000000000000 - 958 -200.00000000000000 - 959 -200.00000000000000 - 960 -200.00000000000000 - 961 -200.00000000000000 - 962 -200.00000000000000 - 963 -200.00000000000000 - 964 -200.00000000000000 - 965 -200.00000000000000 - 966 -200.00000000000000 - 967 -200.00000000000000 - 968 -200.00000000000000 - 969 -200.00000000000000 - 970 -200.00000000000000 - 971 -200.00000000000000 - 972 -200.00000000000000 - 973 -200.00000000000000 - 974 -200.00000000000000 - 975 -200.00000000000000 - 976 -200.00000000000000 - 977 -200.00000000000000 - 978 -201.00000000000000 - 979 -201.00000000000000 - 980 -201.00000000000000 - 981 -201.00000000000000 - 982 -201.00000000000000 - 983 -201.00000000000000 - 984 -201.00000000000000 - 985 -201.00000000000000 - 986 -201.00000000000000 - 987 -201.00000000000000 - 988 -201.00000000000000 - 989 -201.00000000000000 - 990 -201.00000000000000 - 991 -201.00000000000000 - 992 -201.00000000000000 - 993 -201.00000000000000 - 994 -201.00000000000000 - 995 -201.00000000000000 - 996 -202.00000000000000 - 997 -202.00000000000000 - 998 -202.00000000000000 - 999 -202.00000000000000 - 1000 -202.00000000000000 diff --git a/src/global.mod b/src/global.mod deleted file mode 100644 index 076f01b..0000000 --- a/src/global.mod +++ /dev/null @@ -1,65 +0,0 @@ -GFORTRAN module version '0' created from global.f95 on Wed Feb 11 10:59:45 2015 -MD5:8060aa60a633e8914d0b86aa750779e1 -- If you edit this, you'll get what you deserve. - -(() () () () () () () () () () () () () () () () () () () () () () () () -() () ()) - -() - -() - -() - -() - -(2 'b' 'global' 'b' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -3 'del_e' 'global' 'del_e' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -4 'energy_sum' 'global' 'energy_sum' 1 ((VARIABLE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () -0 0) -5 'global' 'global' 'global' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) -6 'h' 'global' 'h' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 EXPLICIT (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 -'2')) 0 () () () 0 0) -7 'iters' 'global' 'iters' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -8 'j' 'global' 'j' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -9 'k' 'global' 'k' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -10 'lattice' 'global' 'lattice' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN ALLOCATABLE DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () -(2 DEFERRED () () () ()) 0 () () () 0 0) -11 'latticesize' 'global' 'latticesize' 1 ((VARIABLE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () -() () 0 0) -12 'n1' 'global' 'n1' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -13 'n2' 'global' 'n2' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN -UNKNOWN) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) -14 'rand_loc' 'global' 'rand_loc' 1 ((VARIABLE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (REAL 8 0 0 REAL ()) 0 0 () (1 -EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER -4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -15 'rand_loc_int' 'global' 'rand_loc_int' 1 ((VARIABLE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN DIMENSION) (INTEGER 4 0 0 INTEGER ()) 0 0 () -(1 EXPLICIT (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') (CONSTANT ( -INTEGER 4 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) -16 'rand_temp' 'global' 'rand_temp' 1 ((VARIABLE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () -0 0) -17 'temp' 'global' 'temp' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC -UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0) -18 'temp_prob' 'global' 'temp_prob' 1 ((VARIABLE UNKNOWN-INTENT -UNKNOWN-PROC UNKNOWN UNKNOWN) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () -0 0) -) - -('b' 0 2 'del_e' 0 3 'energy_sum' 0 4 'global' 0 5 'h' 0 6 'iters' 0 7 'j' -0 8 'k' 0 9 'lattice' 0 10 'latticesize' 0 11 'n1' 0 12 'n2' 0 13 -'rand_loc' 0 14 'rand_loc_int' 0 15 'rand_temp' 0 16 'temp' 0 17 -'temp_prob' 0 18) diff --git a/src/global.o b/src/global.o deleted file mode 100644 index c18bea48fc0b7652c0848b714c6e060a296df812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1636 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 diff --git a/src/ising.o b/src/ising.o deleted file mode 100644 index 323f91acc68db64926cbe9afff5d98d5e1d267d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10648 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 l{ty;IK>P7gLG3q+-z^K)%2;vrJ#DLttM6K6H Date: Tue, 17 Feb 2015 12:03:12 -0500 Subject: [PATCH 08/11] updated .gitignore file --- src/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/src/.gitignore b/src/.gitignore index 3e2133d..51e8364 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -2,3 +2,4 @@ *.o *.mod *.exe +*.swp From 22beee8176a4a1180cfd409672980db6909336c1 Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Tue, 17 Feb 2015 12:42:49 -0500 Subject: [PATCH 09/11] added only statement to del_e function --- src/ising.f95 | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/src/ising.f95 b/src/ising.f95 index 00a9c5f..b148c9e 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -8,44 +8,52 @@ program ising real(8),external :: energy integer,external :: hfield + !Variables for main routine integer :: ii integer :: tot_energy + !output files open (unit = 1, file = 'energy.out',status = 'unknown') open (unit = 2, file = 'hfield.out',status = 'unknown') - latticeSize = 100 !Lattice Size + !initializing variables ii = 0 !Iteration Variable - iters = 10000000 !Number of iterations the program runs through + energy_sum = 0 !Energy Sum + + !Settings + latticeSize = 100 !Lattice Size + iters = 10000000 !Number of iterations the program runs through rand_loc = 2 !Init Random Location Variable - n1 = 4 !Random Number Generator Seed lattice - n2 = 2 !Random Number Generator Seed temp j = 1.d0 !magnetic coeffient k = 1 !Nomarlized Boltzman Constant temp = 2 !Tempereature of simulation B = 1/(k*temp) !constant of temp and boltman - energy_sum = 0 !Energy Sum allocate(lattice(0:latticeSize + 1,0:latticeSize + 1)) lattice = 0 lattice(1:latticeSize, 1:latticeSize) = 1 - - tot_energy = energy(lattice,latticeSize) + + !main program + tot_energy = energy(lattice,latticeSize)!Calculate Chagnge total energy do ii = 0,iters + !generate a random location Call random_number(rand_loc) rand_loc = rand_loc*(latticeSize) rand_loc_int = ceiling(rand_loc) - call del_energy - call flip_bit + + call del_energy !calculate change in energy + call flip_bit !Perform metropolis test + + !Write results to file write (1,*),ii, energy_sum write (2,*),ii, sum(lattice)/float(latticeSize**2) end do end program +!------------------------------------------------------------------------------ +subroutine del_energy!{{{ -subroutine del_energy - - use global + use global, only: del_e integer :: spin,h1,h2,h3,h4 spin = lattice(rand_loc_int(1),rand_loc_int(2)) @@ -54,9 +62,9 @@ subroutine del_energy h3 = lattice(rand_loc_int(1)-1,rand_loc_int(2)+1) h4 = lattice(rand_loc_int(1)-1,rand_loc_int(2)-1) del_e = 2*spin*(h1 + h2 + h3 + h4) -end subroutine - -subroutine flip_bit +end subroutine !}}} +!------------------------------------------------------------------------------ +subroutine flip_bit !{{{ use global real(KIND=8) :: boltzmann @@ -73,9 +81,9 @@ subroutine flip_bit lattice(rand_loc_int(1),rand_loc_int(2))=-spin energy_sum=energy_sum+del_e end if -end subroutine - -real(8) function energy(lattice1,latticeSize1) +end subroutine !}}} +!------------------------------------------------------------------------------ +real(8) function energy(lattice1,latticeSize1) !{{{ integer :: latticeSize1 integer,dimension(latticeSize1,latticeSize1) :: lattice1 @@ -96,4 +104,5 @@ real(8) function energy(lattice1,latticeSize1) end do end do -end function +end function !}}} +!------------------------------------------------------------------------------ From 76c46f649978d3799bc5f81607c3b6b61f9cbf00 Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Wed, 18 Feb 2015 11:06:54 -0500 Subject: [PATCH 10/11] Added Subroutine to read inputs --- report/report.tex | 153 ++++++++--------------------------------- src/ising.f95 | 63 ++++++++++------- src/ising.inp | 4 ++ src/ising_routines.f95 | 14 ---- 4 files changed, 71 insertions(+), 163 deletions(-) create mode 100644 src/ising.inp delete mode 100644 src/ising_routines.f95 diff --git a/report/report.tex b/report/report.tex index a672a70..88bb9f9 100644 --- a/report/report.tex +++ b/report/report.tex @@ -10,142 +10,47 @@ \begin{document} -\title{Modeling Ising}% Force line breaks with \\ +\title{Modeling Ising} \author{Scott O'Connor} -\date{\today}% It is always \today, today, but you can specify other dates manually +\date{\today} \maketitle -\begin{abstract} -Here are some cool facts about the ising model -\end{abstract} + \begin{abstract} + The ising model is used in this program as a way to predict the behavior of magnetic material as it is effected by temperature. + \end{abstract} +\section{Program Explained} + \subsection{} + The first thing this model does is calculate the Hamiltonian. + This is done by summing the states of each location in the Hamiltonian + \begin{equation} + H(\sigma) = - \sum_{i=1} \sigma_i \sigma_j + \end{equation} + For a 2D case there are four possible nearest neighbor interations: the cell above, below, left and right. + The lattice currently implimented is zeropadded. This allows for the ability to sum over the non-zero padded portion of the lattice and not have to worry about the boundries. -\section{Magnetization at Different Temperatures} %Title for the section -\label{sec:level1} %Label for the section, to be used for referencing in other parts of the document + After the intial calacluaiton of the hamiltonian, a monte carlo simulation is performed on the lattice. In the monte carlo routine, radom bits are selected, and a matropolis test are formed on them. + The metropolis test will determine if a bit should be fliped or not. -\subsection{\label{sec:level2} Temperature at 2} + \begin{equation} + + \end{equation} -\subsection{\label{sec:level2} Temperature at 3} + +\section{Magnetization at Different Temperatures} + \label{sec:level1} + + \subsection{\label{sec:level2} Temperature at 2} + + \subsection{\label{sec:level2} Temperature at 3} \section{Energy at Different Temperatures} -\subsection{\label{sec:level2} Temperature at 2} + \subsection{\label{sec:level2} Temperature at 2} -\subsection{\label{sec:level2} Temperature at 3} + \subsection{\label{sec:level2} Temperature at 3} \section{Average Magnetization as a function of temperature} -Below we have numbered single-line equations; this is generally the most common type of equation in \LaTeX: -\begin{equation} -\label{eq:one} %Label for the equation, to be used for referencing in other parts of the document - i \hbar \frac{\partial \Psi}{\partial t} = -\frac{\hbar^2}{2m}\nabla^2 \psi + U(\mathbf{x}) \psi -\end{equation} - -When the \verb+\label{#1}+ command is used [cf. input for Eq.~(\ref{eq:one})], the equation can be referred to in text without knowing the equation number that \TeX\ will assign to it. Just use \verb+\ref{#1}+, where \verb+#1+ is the same name that was used in the \verb+\label{#1}+ command. - -Unnumbered single-line equations can be typeset using the \verb+equation*+ environment: -\begin{equation*} - \hat{f}(\xi) = \int_{-\infty}^\infty f(x) e^{-2\pi i x \xi} \, \mathrm{d}x -\end{equation*} - -\subsection{Multiline equations} - -You'll generally want to use the \verb+align+ environment for multiline equations. Use the \verb+\nonumber+ command at the end of each line (again denoted with \textbackslash\textbackslash) to avoid assigning a number, or \verb+align*+ to disable numbering entirely: -\begin{align} - \sin(2\theta) &= 2 \sin(\theta) \cos(\theta) \nonumber \\ - &= \frac{2\tan(\theta)}{1 + \tan^2(\theta)} -\end{align} -Note how alignment occurs at the (unprinted) \verb+&+ character. - -Do not use \verb+\label{#1}+ on a line of a multiline equation if \verb+\nonumber+ is also used on that line. Incorrect cross-referencing will result. Notice the use \verb+\text{#1}+ for using a Roman font within a math environment. - -\section{Cross-referencing} -\LaTeX\ will automatically number such things as sections, footnotes, equations, figure captions, and table captions for you. In order to reference them in text, use the \verb+\label{#1}+ and \verb+\ref{#1}+ commands\footnote{Check out the \texttt{cleveref} (one r) package, too!}. To reference a particular page, use the \verb+\pageref{#1}+ command. - -The \verb+\label{#1}+ should appear within the section heading (or immediately after), within the footnote text, within the equation, or within the table or figure caption. The \verb+\ref{#1}+ command is used in text at the point where the reference is to be displayed. Some examples: Section~\ref{sec:level1} on page~\pageref{sec:level1}, Table~\ref{tab:table1}, and Fig.~\ref{fig:epsart}. -\begin{figure}[b] - \centering - \includegraphics{figures/fig_1}% Imports a figure - does not automatically scale - \caption{\label{fig:epsart} A figure caption. The figure captions are automatically numbered.} -\end{figure} - -\section{Floats: Figures, Tables, etc.} -Figures (images) and tables are usually allowed to ``float'', which means that their placement is determined by \LaTeX, while the document is being typeset. - -Use the \texttt{figure} environment for a figure, the \texttt{table} environment for a table. In each case, use the \verb+\caption+ command within to give the text of the figure or table caption along with the \verb+\label+ command to provide a key for referring to this figure or table. Insert an image using either the \texttt{graphics} or \texttt{graphix} packages, which define the \verb+\includegraphics{#1}+ command. (The two packages differ in respect of the optional arguments used to specify the orientation, scaling, and translation of the image.) To create an alignment, use the \texttt{tabular} environment. - -\begin{table} - \centering - \begin{tabular}{ |l|l|l| } - \hline - \multicolumn{3}{ |c| }{Team sheet} \\ - \hline - Goalkeeper & GK & Paul Robinson \\ \hline - \multirow{4}{*}{Defenders} & LB & Lucus Radebe \\ - & DC & Michael Duburry \\ - & DC & Dominic Matteo \\ - & RB & Didier Domi \\ \hline - \multirow{3}{*}{Midfielders} & MC & David Batty \\ - & MC & Eirik Bakke \\ - & MC & Jody Morris \\ \hline - Forward & FW & Jamie McMaster \\ \hline - \multirow{2}{*}{Strikers} & ST & Alan Smith \\ - & ST & Mark Viduka \\ - \hline - \end{tabular} - \caption{\label{tab:table1}A table, demonstrating the use of the \texttt{multirow} package for spanning rows and columns.} -\end{table} - -The best place for the \texttt{figure} or \texttt{table} environment is immediately following its first reference in text; this sample document illustrates this practice for Fig.~\ref{fig:epsart}, which shows a figure that is small enough to fit in a single column. In exceptional cases, you will need to move the float earlier in the document: \LaTeX's float placement algorithms need to know about a full-page-width float sooner. - -The content of a table is typically a \texttt{tabular} environment, giving rows of type in aligned columns. Column entries separated by \verb+&+'s, and -each row ends with \textbackslash\textbackslash. The required argument for the \texttt{tabular} environment specifies how data are aligned in the columns. -For instance, entries may be centered, left-justified, right-justified, aligned on a decimal point. - -Extra column-spacing may be be specified as well, although \LaTeX sets this spacing so that the columns fill the width of the table. Horizontal rules are typeset using the \verb+\hline+ command. Rows with that columns span multiple columns can be typeset using the \verb+\multicolumn{#1}{#2}{#3}+ command (for example, see the first row of Table~\ref{tab:table1}). - -\appendix - -\section{Appendixes} - -To start the appendixes, use the \verb+\appendix+ command. This signals that all following section commands refer to appendixes instead of regular sections. Therefore, the \verb+\appendix+ command should be used only once---to setup the section commands to act as appendixes. Thereafter normal section commands are used. The heading for a section can be left empty. For example, -\begin{verbatim} -\appendix -\section{} -\end{verbatim} -will produce an appendix heading that says ``APPENDIX A'' and -\begin{verbatim} -\appendix -\section{Background} -\end{verbatim} -will produce an appendix heading that says ``APPENDIX A: BACKGROUND'' (note that the colon is set automatically). - -If there is only one appendix, then the letter ``A'' should not appear. This is suppressed by using the star version of the appendix command (\verb+\appendix*+ in the place of \verb+\appendix+). - -\section{A little more on appendixes} - -Observe that this appendix was started by using -\begin{verbatim} -\section{A little more on appendixes} -\end{verbatim} - -Note the equation number in an appendix: -\begin{equation} - E^2=p^2c^2 + m^2c^4. -\end{equation} - -\subsection{\label{app:subsec}A subsection in an appendix} - -You can use a subsection or subsubsection in an appendix. Note the numbering: we are now in Appendix~\ref{app:subsec}. - -Note the equation numbers in this appendix, produced with the subequations environment: -\begin{subequations} -\begin{align} - E^2 &= m^2c^4 \quad \text{(rest)}, \label{appa} \\ - E^2 &= m^2c^4 + p^2 c^2 \quad \text{(relativistic)}, \label{appb} \\ - E^2 &\approx p^2 c^2 \quad \text{(ultrarelativistic)} \label{appc} -\end{align} -\end{subequations} -They turn out to be Eqs.~(\ref{appa}), (\ref{appb}), and (\ref{appc}). - + \url{http://en.wikipedia.org/wiki/Ising_model} \end{document} diff --git a/src/ising.f95 b/src/ising.f95 index b148c9e..56e4f12 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -20,13 +20,10 @@ program ising ii = 0 !Iteration Variable energy_sum = 0 !Energy Sum - !Settings - latticeSize = 100 !Lattice Size - iters = 10000000 !Number of iterations the program runs through + call ReadInput + rand_loc = 2 !Init Random Location Variable j = 1.d0 !magnetic coeffient - k = 1 !Nomarlized Boltzman Constant - temp = 2 !Tempereature of simulation B = 1/(k*temp) !constant of temp and boltman allocate(lattice(0:latticeSize + 1,0:latticeSize + 1)) @@ -50,37 +47,38 @@ program ising end do end program + + !------------------------------------------------------------------------------ subroutine del_energy!{{{ - use global, only: del_e + use global, only: del_e,rand_loc_int,lattice integer :: spin,h1,h2,h3,h4 - spin = lattice(rand_loc_int(1),rand_loc_int(2)) - h1 = lattice(rand_loc_int(1)+1,rand_loc_int(2)+1) - h2 = lattice(rand_loc_int(1)+1,rand_loc_int(2)-1) - h3 = lattice(rand_loc_int(1)-1,rand_loc_int(2)+1) - h4 = lattice(rand_loc_int(1)-1,rand_loc_int(2)-1) - del_e = 2*spin*(h1 + h2 + h3 + h4) + + spin = lattice(rand_loc_int(1),rand_loc_int(2)) + h1 = lattice(rand_loc_int(1)+1,rand_loc_int(2)+1) + h2 = lattice(rand_loc_int(1)+1,rand_loc_int(2)-1) + h3 = lattice(rand_loc_int(1)-1,rand_loc_int(2)+1) + h4 = lattice(rand_loc_int(1)-1,rand_loc_int(2)-1) + del_e = 2*spin*(h1 + h2 + h3 + h4) + end subroutine !}}} !------------------------------------------------------------------------------ subroutine flip_bit !{{{ - use global - real(KIND=8) :: boltzmann - - + + use global, only: lattice,rand_loc_int,rand_temp,energy_sum,del_e,B + integer :: spin + spin = 0 spin = lattice(rand_loc_int(1),rand_loc_int(2)) -! if (del_e .lt. 0) then -! spin=lattice(rand_loc_int(1),rand_loc_int(2)) -! lattice(rand_loc_int(1),rand_loc_int(2))=-spin -! energy_sum=energy_sum+del_e - call random_number(rand_temp) - if (exp(-B*del_e) .ge. rand_temp) then - lattice(rand_loc_int(1),rand_loc_int(2))=-spin - energy_sum=energy_sum+del_e - end if + call random_number(rand_temp) + if (exp(-B*del_e) .ge. rand_temp) then + lattice(rand_loc_int(1),rand_loc_int(2))=-spin + energy_sum=energy_sum+del_e + end if + end subroutine !}}} !------------------------------------------------------------------------------ real(8) function energy(lattice1,latticeSize1) !{{{ @@ -106,3 +104,18 @@ real(8) function energy(lattice1,latticeSize1) !{{{ end function !}}} !------------------------------------------------------------------------------ +subroutine ReadInput !{{{ + + use global, only: latticeSize,iters,k,temp + + open(3,file="ising.inp") + + read(3,*) latticeSize + read(3,*) iters + read(3,*) k + read(3,*) temp + + close(3) + +end subroutine !}}} +!------------------------------------------------------------------------------ diff --git a/src/ising.inp b/src/ising.inp new file mode 100644 index 0000000..1bdc83b --- /dev/null +++ b/src/ising.inp @@ -0,0 +1,4 @@ +100 !Lattice Size +10000 !Number of Iterations +1 !Boltzman constant +2 !temperature diff --git a/src/ising_routines.f95 b/src/ising_routines.f95 deleted file mode 100644 index 9282f21..0000000 --- a/src/ising_routines.f95 +++ /dev/null @@ -1,14 +0,0 @@ -module ising_routines - - contains - pure function energy(lattice) - - use global - - implicit none - - integer, intent(inout) :: lattice(latticeSize,latticeSize) - - print*,'latice:',lattice - end function -end module From 845249ba3829bfecb33d24e101adaa18fba02a9f Mon Sep 17 00:00:00 2001 From: Scott O'Connor Date: Thu, 19 Feb 2015 00:10:58 -0500 Subject: [PATCH 11/11] latest submittion of ising project --- report/figures/mag_t1.jpg | Bin 0 -> 66665 bytes report/figures/mag_t3.jpg | Bin 0 -> 19572 bytes report/figures/mag_vs_temp.jpg | Bin 0 -> 17637 bytes report/report.tex | 48 +++++++++++++++------ src/dataread.m | 17 ++++++++ src/global.f95 | 3 +- src/ising.f95 | 76 ++++++++++++++++++++++----------- src/ising.inp | 10 +++-- 8 files changed, 110 insertions(+), 44 deletions(-) create mode 100644 report/figures/mag_t1.jpg create mode 100644 report/figures/mag_t3.jpg create mode 100644 report/figures/mag_vs_temp.jpg create mode 100644 src/dataread.m diff --git a/report/figures/mag_t1.jpg b/report/figures/mag_t1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06a49ddb91458d5ecaf798e283fb2680d5e96d8d GIT binary patch literal 66665 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 L-;5>n=f3|3z!EDa literal 0 HcmV?d00001 diff --git a/report/figures/mag_t3.jpg b/report/figures/mag_t3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b0043dbaa42af529b196b082186e0db04bd88ca GIT binary patch literal 19572 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 SPX5Oj`n{O^_pL*@pZtHnVM|^B literal 0 HcmV?d00001 diff --git a/report/figures/mag_vs_temp.jpg b/report/figures/mag_vs_temp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33cd002632f8e29d0cda1fd421941fbc5bb99db3 GIT binary patch literal 17637 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 literal 0 HcmV?d00001 diff --git a/report/report.tex b/report/report.tex index 88bb9f9..b54725b 100644 --- a/report/report.tex +++ b/report/report.tex @@ -22,27 +22,48 @@ \section{Program Explained} \subsection{} The first thing this model does is calculate the Hamiltonian. - This is done by summing the states of each location in the Hamiltonian + This is done by summing the states of each location in the Lattice \begin{equation} H(\sigma) = - \sum_{i=1} \sigma_i \sigma_j \end{equation} For a 2D case there are four possible nearest neighbor interations: the cell above, below, left and right. The lattice currently implimented is zeropadded. This allows for the ability to sum over the non-zero padded portion of the lattice and not have to worry about the boundries. - After the intial calacluaiton of the hamiltonian, a monte carlo simulation is performed on the lattice. In the monte carlo routine, radom bits are selected, and a matropolis test are formed on them. - The metropolis test will determine if a bit should be fliped or not. + After the intial calacluaiton of the hamiltonian, a monte carlo simulation is performed on the lattice. In the monte carlo routine, random bits are selected, and a metropolis test is performed + The metropolis test will determined if a bit should be fliped or not. \begin{equation} - + \Delta E = 2 \sigma_i (\sigma_{above} + \sigma_{below} + \sigma_{left} \sigma_{right}) \end{equation} - -\section{Magnetization at Different Temperatures} - \label{sec:level1} - - \subsection{\label{sec:level2} Temperature at 2} - - \subsection{\label{sec:level2} Temperature at 3} + \begin{equation} + X \sim [(0,1)]< e^{-\beta \Delta E} + \end{equation} + + +\section{Plots} + %Plotting normalized magnetization vs various temperatures, the magnetization goes to zero around 2.2. This is consistant with how the model should perform + \begin{figure}[b] + \centering + \includegraphics{figures/mag_vs_temp.jpg} + \caption{\label{fig:mag_vs_temp}Normalize Magnetization and various temperatures} + \end{figure} + + %Plotting the magnetization over a million iterations in a 100 by 100 lattice when the temperature is temp=1, results in a net magnetization. + + \begin{figure}[b] + \centering + \includegraphics{figures/mag_t1.jpg} + \caption{\label{fig:mag_T1p} Magnetization over a million iterations at temp=1} + \end{figure} + +%Plotting the same simulation as above, except that temp=3 results in a zero net magnetization. + + \begin{figure}[b] + \centering + \includegraphics{figures/mag_t3.jpg} + \caption{\label{fig:mag_T3p} Magnetization over a million iterations at temp=3} + \end{figure} \section{Energy at Different Temperatures} @@ -50,7 +71,8 @@ \section{Energy at Different Temperatures} \subsection{\label{sec:level2} Temperature at 3} -\section{Average Magnetization as a function of temperature} +\begin{conclusion} +The results of the ising model are as expected. The magnetization goes to zero when temp=2.2. When the temperature is below this mark, the magntization hovers above zero. When the temperature is above zero the net magnetization goes to zero. +\end{conclusion} - \url{http://en.wikipedia.org/wiki/Ising_model} \end{document} diff --git a/src/dataread.m b/src/dataread.m new file mode 100644 index 0000000..416ffee --- /dev/null +++ b/src/dataread.m @@ -0,0 +1,17 @@ +%Plotting routine + +load /hfield.out + +data=hfield; +x=zeros(1,1000000); +y=zeros(1,1000000); +for i=1:1000000 + x(1,i) = data(i,1); + y(1,i) = data(i,2); +end + +figure(1); +plot(x,y) +title('Magnetization at temp=3') +xlabel('Iterations') +ylabel('Normalized Magnetization') diff --git a/src/global.f95 b/src/global.f95 index 2cb2471..c489fe6 100644 --- a/src/global.f95 +++ b/src/global.f95 @@ -2,6 +2,7 @@ module global implicit none + integer :: t_avg,temp_points integer :: latticeSize,iters,n1,n2 integer, allocatable :: lattice(:,:) real(8) :: rand_loc(2) @@ -11,7 +12,7 @@ module global real(8) :: del_e real(8) :: h(2) real(8) :: j !magnetic coefficients - real(8) :: temp + real(8) :: min_temp,max_temp real(8) :: k !boltzman constant real(8) :: B !combination of temp and boltzman diff --git a/src/ising.f95 b/src/ising.f95 index 56e4f12..86c5c75 100644 --- a/src/ising.f95 +++ b/src/ising.f95 @@ -9,46 +9,68 @@ program ising integer,external :: hfield !Variables for main routine - integer :: ii + integer :: ii,jj integer :: tot_energy + real(8) :: energy_avg + real(8) :: hfeild_avg + real(8) :: temp !output files - open (unit = 1, file = 'energy.out',status = 'unknown') - open (unit = 2, file = 'hfield.out',status = 'unknown') + open (unit = 1, file = 'energy.out', status = 'unknown') + open (unit = 2, file = 'hfield.out', status = 'unknown') + open (unit = 3, file = 'ising.inp', status = 'unknown') + open (unit = 4, file = 'hfield_avg.out', status = 'unknown') + open (unit = 5, file = 'energy_avg.out', status = 'unknown') !initializing variables ii = 0 !Iteration Variable + jj = 0 !Averages Variables energy_sum = 0 !Energy Sum - - call ReadInput - rand_loc = 2 !Init Random Location Variable - j = 1.d0 !magnetic coeffient - B = 1/(k*temp) !constant of temp and boltman + call ReadInput + allocate(lattice(0:latticeSize + 1,0:latticeSize + 1)) lattice = 0 lattice(1:latticeSize, 1:latticeSize) = 1 !main program - tot_energy = energy(lattice,latticeSize)!Calculate Chagnge total energy - do ii = 0,iters - !generate a random location - Call random_number(rand_loc) - rand_loc = rand_loc*(latticeSize) - rand_loc_int = ceiling(rand_loc) - - call del_energy !calculate change in energy - call flip_bit !Perform metropolis test + + do jj = 0,temp_points + print*, 'Current Temp Point:',jj + hfeild_avg=0 + energy_avg=0 + tot_energy=0 + temp=min_temp+((max_temp-min_temp)/temp_points)*jj + B = 1/(k*temp) !constant of temp and boltman + tot_energy = energy(lattice,latticeSize)!Calculate Chagnge total energy + do ii = 0,iters + !generate a random location + Call random_number(rand_loc) + rand_loc = rand_loc*(latticeSize) + rand_loc_int = ceiling(rand_loc) + + call del_energy !calculate change in energy + call flip_bit !Perform metropolis test + + !Write results to file + if (ii > iters-1) then + write (1,*),ii, energy_sum + write (2,*),ii, sum(lattice)/float(latticeSize**2) + end if + if (ii > iters-t_avg) then + hfeild_avg=hfeild_avg+(1/(float(ii)+1))*(sum(lattice)/float(latticeSize**2)-hfeild_avg) + energy_avg=energy_avg+(1/(float(ii)+1))*(tot_energy/float(latticeSize*2)-energy_avg) + end if + end do - !Write results to file - write (1,*),ii, energy_sum - write (2,*),ii, sum(lattice)/float(latticeSize**2) + !writing averages to file + write(4,*),temp,hfeild_avg + write(5,*),temp,energy_avg - end do + end do end program - !------------------------------------------------------------------------------ subroutine del_energy!{{{ @@ -106,14 +128,16 @@ real(8) function energy(lattice1,latticeSize1) !{{{ !------------------------------------------------------------------------------ subroutine ReadInput !{{{ - use global, only: latticeSize,iters,k,temp - - open(3,file="ising.inp") + use global, only: latticeSize,iters,k,min_temp,max_temp,temp_points, & + t_avg,k,j read(3,*) latticeSize read(3,*) iters + read(3,*) min_temp,max_temp,temp_points + read(3,*) t_avg read(3,*) k - read(3,*) temp + read(3,*) j + close(3) diff --git a/src/ising.inp b/src/ising.inp index 1bdc83b..acb848f 100644 --- a/src/ising.inp +++ b/src/ising.inp @@ -1,4 +1,6 @@ -100 !Lattice Size -10000 !Number of Iterations -1 !Boltzman constant -2 !temperature +100 !Lattice Size +1000000 !Number of Iterations +1,5,10 !'Min Temperature','Max Temperature','Number of point between' +50000 !Number of Averages +1 !Boltzman constant +1 !j