Skip to main content

一个用户友好的程序,为磁系统进行蒙特卡罗模拟

项目描述

# mcsolver 一个用户友好且高效的工具,实现蒙特卡罗模拟以估计居里/尼尔温度

支持多种场合,例如标准铁磁/反铁磁系统、DMI、Kiteav 非对角交换相互作用、偶极-偶极远程耦合以及外部场。

原版作者:刘亮博士* 1.深圳大学 2.山东大学邮箱:ligliu @ mail . sdu _ 教育_ cn

您可以从以下链接下载打包好的 .exe(仅在 Windows 10 平台测试)。希望它能找到对你有帮助的东西。如果它被用于发表,请引用:[1] BN nanoribbons 通过电场的磁性开关。应用表面科学480(2019)

exe链接:https ://pan.baidu.com/s/1EaDqOOdB7AP9WXrwEIEaxQ 密码:52ze

简要教程:

  1. 通过 .exe 使用 mcsolver,例如在 Windows 平台中

注意:mcsolver.exe 可能被报告为病毒并被某些杀毒软件删除。我对此仍然没有理想,也许您需要将其添加到白名单中。否则,您可以将 mcsolver 用作 python 包(参见下面的 B 节)。

从上面的链接下载并解压文件(或从https://github.com/golddoushi/mcsolver/raw/master/mcsolver.20.10.10update.zip下载 .zip ),然后打开 .exe(可能等待 10+ 秒。 ),填写所有参数,点击startMC Btn,然后等待结果。

如何定义参数?

样式 I 通过 GUI 定义参数:

  1. 定义原始细胞的三个晶格向量。

  2. 定义原始单元中的所有基本自旋,注意小数坐标是假设的。Ani 表示 xyz 方向上的单个离子各向异性(在 Ising 模型中无用,在 XY 模型中仅使用前两者)。另外,请注意各向异性的单位是开尔文。

3. 定义所有交换相互作用(债券)。一个J有九个矩阵元素,分别为Jxx、Jyy、Jzz、Jxy、Jxz、Jyz、Jyx、Jzx、Jzy。每个元素描述了自旋的两个分量之间的耦合。例如,一个基本的键项可以表示为 $$S1dot Jdot S2 = S_{1x}J_{xx}S_{2x} + S_{1y}J_{yy}S_{2y} + S_{1z}J_{zz }S_{2z} + S_{1x}J_{xy}S_{2y} + …$$ 对于 Ising 模型,由于每次旋转只有一个组件可用,因此仅使用第一个元素 Jxx。与 XY 模型一样,仅使用 Jxx、Jyy、Jxy、Jyz。在此步骤中,您可以单击其中一个键来查看视图面板上点阵中的实际链接。激活的键用粗体和黄线表示,而其他键用绿色表示。您可以拖动鼠标左/右键 Btn 来旋转和扩展/缩小视图面板中显示的模型。顺便一提,这些参数可以通过拟合实验自旋波光谱或 DFT 计算来获得。在 dio: 10.1021/acs.jpclett.0c01911 中介绍了一种计算各向异性键和轨道的通用方法。

4. 定义其他参数,包括开始和结束温度,温度插值次数(用于温度扫描)外部场的开始、结束和采样次数(用于磁场扫描) nthermal 是系统进入的总步骤平衡状态,nsweep 是测量涉及的总步数,tau 表示每一步的 MC 更新 xAxis 表示放在右手结果查看器的 x 轴上的物理量,它可以是 T(用于说明 MT 曲线)或H(用于说明磁滞回线)。模型类型、算法(现在只支持 Metropolis 和 Wolff) nFrame 是 num。输出自旋配置,用于说明平衡或非平衡状态下的自旋配置。

  1. 设置 spin_i 和 spin_j 以及它们之间的晶格向量,用于相关测量。(如果 spin_i=spin_j 和 overLat=0 0 0,那么你会得到 spin_i 的易感性)

  2. 设置并行计算的核心资源。

  3. (可选)将当前参数保存到文件中。

  4. 单击 startMC Btn 开始。

  5. 等待右侧面板中的图表更新。之后可以在mcsolver的根目录下找到一个result.txt文件,里面有很多有用的信息,包括平均自旋(在步骤5中定义的spin_i和j上)、spin_i和j的相关性、内能、比热容、和Binder cumulant U4等。如果您处理具有多个核心的sims,则结果可能不会根据温度排序,但是,每一行的对应关系都可以。

Style II 通过加载文件定义参数

  1. 单击加载 Btn 以加载设置,在这里我准备了 CrI3 的设置,最多交换到第二个最近的 neiboring。您可以使用任何 txt 编辑器为自己的目的修改示例文件。

  2. 单击 startMC Btn 开始。

  1. 使用 mcsolver 作为 python 包

Style I 在 Windows 平台上构建表单二进制文件

通过命令安装包:

点安装 mcsolver

注意 python>=3, matplotlib, numpy, tkinter 是先决条件

之后,您可以将 mcsolver 导入到您自己的 python 代码中并使用函数:

mcsolver.loadMC(“参数文件”)

开始模拟。参数文件的准备与 A 节相同。

示例文件夹中有一个示例文件 sim_XYmodel_under_Windows.py。要使用它,请将当前路径(在控制台中)更改为示例文件夹,然后键入命令:python sim_XYmodel_under_Windows.py

注意:由于 mcsolver 使用 python-parallel,因此您必须在调用 loadMC(...) 之前使用 freeze_support()。

风格 II 在 Linux 平台上从源代码构建

下载此处提供的所有代码,使用安装命令:

python setup.py 安装

之后,您可以将 mcsolver 导入到您自己的 python 代码中并使用函数:

mcsolver.loadMC(“参数文件”)

开始模拟。参数文件的准备与 A 节相同。

示例文件夹中有一个示例文件 sim_XYmodel_under_Linux.py。要使用它,cd 到示例文件夹,然后键入命令:python sim_XYmodel_under_Linux.py

请注意,mcsolver 的并行化并不完美。现在它不能在多台机器之间并行化,而是在单台机器的多个核心之间并行化(也就是说,只有 SMP 模式是有效的)。因此,如果您使用集群,请将作业提交到一个节点。

  1. 使用代码模式(不推荐)

    下载所有代码,编译所有 .c 文件 inito .so 文件动态库。并运行 cmd: “python win.py” 以加载 GUI 并继续。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

mcsolver-2.3.0.tar.gz (144.3 kB 查看哈希

已上传 source