| 查看: 2681 | 回复: 7 | ||||||
| 【奖励】 本帖被评价4次,作者zyj8119增加金币 3 个 | ||||||
[资源]
【转帖】2维无外场Ising模型的Monte Carlo模拟的C++实现
|
||||||
资源收集 | graphene | 学习 | 量子蒙特卡洛模拟 |
» 猜你喜欢
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
孩子确诊有中度注意力缺陷
已经有6人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
泵站进水流道出口断面轴向流速分布不均匀度的求解方法
已经有4人回复
matlab解微分方程
已经有10人回复
模拟结果实验结果不一致
已经有11人回复
fluent中的体热源加载问题(实际上是热流密度,不是热生成率)
已经有19人回复
dynaform 软件模拟问题,三通管成形的冲头怎么设置
已经有5人回复
纤维素酸解的相关资料
已经有4人回复
C++编程,关于循环结构的,大家看看我这程序哪里错了?
已经有21人回复
Ansys Fluent的计算能力有多大(最多能计算多少网格?)
已经有18人回复
用DPM模型时,solution里面会不会有 discrece model方程
已经有4人回复
是什么原因导致纤维素的耐盐性不好?
已经有6人回复
Monte Carlo 模拟时图是用什么软件做的
已经有10人回复
【求助】用monte carlo法做分子模拟,用什么编程语言实现比较好?
已经有25人回复
【讨论】大家对未来GPU在monte carlo中的应用持有什么样的态度(CUDA)?
已经有15人回复
【求助】有用Monte Carlo 编过有关Fluid中粒子运动的程序
已经有6人回复
【求助】求Monte Carlo 关于扩散系数计算的源代码
已经有5人回复
【在线答疑】经典粒子体系的Monte Carlo 模拟之基础篇
已经有73人回复
★ ★ ★ ★ ★ ★ ★
zh1987hs(金币+5):谢谢yahoohoo的精彩回复 2010-09-10 22:54:51
lei0736(金币+2):谢谢 2010-09-11 08:44:08
zh1987hs(金币+5):谢谢yahoohoo的精彩回复 2010-09-10 22:54:51
lei0736(金币+2):谢谢 2010-09-11 08:44:08
|
这是你自己写的程序吗?很不错啊,:-)。 这是个巨正则系综下的Monte Carlo模拟,因为总的自旋 $ S = \sum_i {s_i} $ 是变化的。 随机数的种子是无所谓精确与否的,代码中的做法只是为了使得不同的模拟使用不同的随机数序列。 建议将程序模块话,比如 Ising MC的一般模块为: void INIT(); // Set initial configuration double totalEnergy(); // Calc total energy double SpinEnergy(int i, int j); // Energy of a given spin void flip(); // flip a randomly chosen spin 主程序部分的周期性边界条件处理可以更快: int iRight = i + 1, iLeft = i - 1, jUp = j + 1, jDown = j - 1; if (iRight = BOXLX) iRight = 0; if (iLeft = -1) iLeft = BOXLXM1; // BOXLXM1 = BOXLX - 1; if (jUp = BOXLY) jUp = 0; if (jDown = -1) jDown = BOXLYM1; // BOXLYM1 = BOXLY - 1; 这样做的好处是将if else 分支结构转变成单独的if, 既形式简单又速度更快 能量判断可以简单写成如下代码: double dE = Enew - Eold; if (dE <= 0 || rng.gen_open0_open1() < exp(-BETA * dE)) { // 这样的好处是如果dE <= 0 成立那么后面的部分就不用计算 // ACCEPTED } else { // REJECTED } 关于能量与温度的关系,建议能量用 $ E/NJ $, 这样的话在低温区,所有的自旋方向一致,那么构象能为 $ E_{min} = -2 N |J| $。所以最低能量应该为 $ E / NJ = -2 $。而在高温区,自旋向上与向下的概率相等,因为每个自旋近邻的四个自旋和为0,因为总能量也为0。根据这两点,模拟得到的结果是有问题的。 [ Last edited by yahoohoo on 2010-9-10 at 21:13 ] |
2楼2010-09-10 21:05:59
3楼2010-09-10 22:56:11
4楼2010-09-11 12:02:55
5楼2012-04-26 19:13:43
6楼2012-05-23 00:43:45
7楼2012-08-17 23:18:37
8楼2013-01-09 00:15:45














回复此楼