#include <iostream>
#include <cstdlib>
#include <cmath>
#include <fstream>
#include<ctime>
using namespace std;
ofstream out("data.dat");
const int L = 50; //模拟尺寸
const int MCS = 20000; //总的模拟步数
const int MS = 10000; //除去预热统计的步数
const double J = -1; //J=1AFM,J=-1FM
double H = 0;
double InitialSpin(int s[][L])
{
for (int i = 0; i < L; i++)
{
for (int j = 0; j < L; j++)
{
//s[i][j] = 1;
s[i][j]= 2 * (rand() % 2) - 1;
}
}
return 0;
}
//随机初始化自旋分布
//----------------------------------------
double ExchangeEnergy(int Spin[][L])
{
int down,up,left,right;
double e = 0;
for (int i = 0; i < L; i++)
{
for (int j = 0; j < L; j++)
{
e += J*Spin[i][j]*(Spin[(i+1)%L][j]+Spin[(i-1+L)%L][j]+Spin[i][(j+1)%L]+Spin[i][(j-1+L)%L]);
}
}
return e;
}
// 计算体系的总能量
//计算格点的局域能量
double Magnetization(int s[][L])
{
double m
二维方格子Ising模型代码
最新推荐文章于 2022-03-07 09:34:31 发布