一个非常简单的石墨烯模型构建,可以做一些小的分子动力学模拟。六边形模型很容易构造,关键是处理周期边界上的原子。可供物理学,材料学方面的本科生和硕士低年级参考。
效果图:
头文件head.h:
#define N 40 //40个原子
#define dx 2.4595121 //水平方向上两个原子的距离
#define dy 0.71
#define bd 1.42 //键长
#define bds 2.0164
void lattic(double c[2][N]);
struct nearest //与一个原子相邻的三个原子
{
int p;
int n1;
int n2;
int n3;
};
晶体模型构造:
#include"head.h"
void lattic(double c[2][N])
{
int i, j, m, k, l;
int q, w, e, r, t;
int cir;
int ii = 0;
int jj = 0;
/*生成x坐标*/
for (m = 0; m < 2; m++)
{
for (i = 0; i < 2; i++)
{
c[0][ii] = 0;
for (j = 0; j < 5; j++)
{
c[0][ii + 1] = c[0][ii] + dx;
ii++;
}
}
for (k = 0; k < 2; k++)
{
c[0][ii] = dx / 2;
for (l = 0; l < 5; l++)
{
c[0][ii + 1] = c[0][ii] + dx;
ii++;
}
}
}
/*生成y坐标*/
for (q = 0; q < 5; q++)
{
c[1][q] = 0