晶格模型的不和谐混合
LatticeModelMashup的Python项目详细描述
终极格子模型怪物混搭
这个应用程序一开始是试图可视化不同的格子模型,并看看当你把它们混合在一起时会发生什么。它目前非常面向视觉,不过我打算稍后添加一些分析。
开始
它是使用python 3和qt5构建的,因此您将需要这两者。如果克隆包并运行setup.py,则应安装所有内容,然后可以从主文件夹运行python3\uuu init\uuu.py
。您也可以运行pip3 install latticemodelmashup
,然后在终端中键入latticemash
,尽管我还没有测试过这一点。
为了方便快速测试,有几个键盘快捷键:
- e开始动态运行。长度由右下角的"框架"决定。
- esc中断当前运行,如果没有运行,则关闭应用程序。(关门很麻烦。)
- q清除屏幕并添加一些由覆盖范围决定的噪音。
- 1打开和关闭随机噪声引擎
- 2打开和关闭生命发动机
- z前进一帧
- b使用细胞自动机绘制背景
- wasd控制"覆盖"即清除scren和"beta"时添加的噪音量,这决定了运行模拟时的噪音量。
- xc控制它将在的最大fps。顶部给出的两个fps值是两个主发动机的当前性能,实际fps始终限制在这三个值中的最低值。
- alt将焦点从文本框中取出,以便您在编辑某个内容后可以再次使用键盘快捷键。
关于更新规则的说明:当前允许使用以下类型的规则,
< Buff行情>a<;=nb<;=b
其中a和b是一个细胞可以拥有并存活的最大和最小邻域数(nb)。所以如果a=1和b=8,细胞将一直存活。康威的标准规则是,细胞与两个或三个邻居共存。
< Buff行情>C<;=P<;=D
其中c和d是在空细胞周围产生(p-"父母")新细胞的细胞数。康威P=3。
因此,标准的conway规则是'2,3,3;'。
自由父母(c=1,2)导致爆炸性增长。无界父母(d=6,7,8)与正常死亡规则相结合时,会导致种群剧烈振荡。
规则也可以是链式的,例如2,2,3,5;2,3,2,3;2,4,3,5;2,3,4,5;是一个非常小的组合,在四帧循环中每帧都会产生不同的更新规则。在开始时,将其与良好的噪音混合。
关闭ising模型(1)将导致确定性运行,如果开始时没有噪音,则对称运行。
字母"ub,lb,rb,wb,db"的小区域应该是屏幕的一种绘图方式——线条代表边缘。不管怎样,这里是你控制边界条件的地方。1表示边界是固定的,0表示固定的,而-1表示边界是不可见的(因此ub和db像lb和rb一样包裹,而wb('wolfbound')只绘制而不交互)。
关于型号
应用程序当前基于以下型号:
- [X]伊辛模型在不受康威干扰的情况下具有良好的长期特性,该模型被生命引擎所掩盖,并且只倾向于充当(非常昂贵的)随机噪声发生器。关闭Conway(2)and打开beta(d)并让它运行一段时间以查看ising的工作情况。
- [X]Conway的GOL实际上,引擎是他们所谓的"生活型"引擎,可以接受几乎任意的规则集。规则被输入到左边的绿色框中。下面是一些建议。
- [X]可以在屏幕上绘制Wolfram风格的细胞自动机(B),还提供了一个滚动条,可以清除所有单元格或在整个单元格上绘制。目前,二维自动机和其他模型之间没有有意义的交互作用,这在很大程度上是审美的。让我们看看结果如何。
- []Potts模型实际上在那里,或者曾经在那里,但已经被弃用。这是一个很好的版本,有更多的状态,但目前模型只有两个状态,所以这是不活跃的。可能会把它带回来。
版本1中的功能
- 伊辛模型
- 具有时变规则的类生命自动机
- "wolfram"二维自动绘制器
- 顶部、侧面和滚动条上的任意边界条件 颜色!
- 基本的录音功能(使gif非常麻烦)