问题标签 [mathematical-lattices]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
100 浏览

simulation - 格子玻尔兹曼模拟中的幻数解释?

我最近遇到了这种流体动力学模拟,并一直在尝试阅读格子玻尔兹曼方法,以便更好地理解它。那里的大部分代码都非常透明,所以在阅读代码和阅读 Wikipedia 之间,我已经大致了解了所有内容……除了核心“碰撞”函数中的运动学计算。

我已经能够弄清楚 1/9、4/9 和 1/36 的因子与沿不同晶格方向连接单元中心的向量的长度有关,我什至可以找到解释有什么不同的资源用于不同晶格类型的因素(此代码中使用了 D2Q9 晶格)。但是我还没有找到任何东西来解释你如何从定义格子玻尔兹曼算法的碰撞步骤的通用向量方程到下面显示的具体的九行实现算法。特别是 3、1.5 和 4.5 的那些因数是从哪里来的?

链接网页中使用的代码(稍作修改以删除自由变量并提高可读性)如下:

0 投票
1 回答
44 浏览

python-3.x - 如何使用 Python 删除网格线以区分格点?

使用 python matshow 绘制时某些计算的结果

给出的数字为.

有什么方法可以画线

像这样的各种颜色之间的边界

像这个图中的各种颜色之间的边界?这是一个网格 n X n,最初看起来像这样。

最初看起来像这样

每个方格内有 4 个小方格(格子)。即在第一个方块的情况下,它具有由相同数字占用的(0,0),(1,0),(0,1)和(1,1)索引,例如0,下一个方块具有(0, 3)、(0,3)、(1,3) 和 (1,3) 索引由不同的数字占用,例如 1。

这导致颜色不同。在对其进行一些数学运算后,我得到了第一张图像。现在我想区分这些颜色,如图 2 所示。有没有办法做到这一点?任何线索将不胜感激!

0 投票
0 回答
449 浏览

python - 获取 Shapely 多边形内具有整数坐标的所有点

我有一个看起来像这样的多边形:

在此处输入图像描述

我正在尝试获取内部的整数坐标。我试图用它来获取内部和外部坐标:(来自https://stackoverflow.com/a/21922058/5666087

但是,我得到的只是:

为什么室内坐标是空的?
有什么方法可以获取内部坐标吗?

0 投票
1 回答
301 浏览

python - 代表蜂窝格子的最佳方式是什么?

我正在尝试模拟蜂窝晶格,即每个粒子与它的 3 个邻居中的每一个相互作用。我想在数组中表示它是自动化的。即,如果随机挑选任何原子,代码应根据连接的邻居评估某些参数。

蜂窝格子

我可以这样想:

  1. 初始化 n*n 数组。
  2. 每个粒子都与左右两侧相邻的粒子相互作用
  3. 奇数行奇数列上的粒子与其底部粒子相互作用
  4. 奇数行和偶数列上的粒子与其顶部粒子相互作用
  5. 偶数行奇数列上的粒子与其顶部粒子相互作用
  6. 偶数行和偶数列上的粒子与其底部粒子交互

等价物如下图所示。

实际蜂窝格子

可以用箭头表示的重组结构

有没有更好的方法来表示相同的?

0 投票
3 回答
52 浏览

python - 如何创建具有可变数量“for”循环的函数,每个循环都有不同的索引?

问题:

考虑一个d维简单立方晶格。

如果晶格的宽度为L,则晶格点数为L d我想为一般的dL创建一个包含所有格点位置的列表。

例如,当L = 2d = 2时,这将是 [(0, 0), (1, 0), (0, 1), (1, 1)]。

我的尝试:

虽然我可以为一般L做到这一点,但我无法概括维度d

下面是我使用三个循环对d = 3的解决方案。for

很容易看出我将如何更改它以增加或减少维度d,因为我可以简单地添加或删除循环,但显然为大dfor写出来非常乏味。

我考虑过使用递归for循环,所以我只会for对任何d使用一个循环,但我不知道如何在保留索引的同时保留我需要写出位置的索引。

综上所述:

是否可以有可变数量的for循环,每个循环都有一个不同的索引来解决这个问题?

或者有没有更好的解决方案而不使用for循环?

0 投票
0 回答
35 浏览

parallel-processing - 改进一个笨拙的自动长方体域分解算法

介绍

对于我的库,我需要拆分一个长方体点晶格以分配给多个处理元素 (PE)。

示例分解

如您所见,PE 之间没有共享点,并且某些 PE(此处为 4-7)仅获得二维“切片”。

该接口接受n1, n2, n3P它们都是整数。表示沿方向即或的nx格点数。表示可用的PE数量。xn1n2n3P

当前的问题表述

由于域是一个长方体,我正在寻找这样的 3 部分分解PP = p1 * p2 * p3并且与px成比例nx

问题表述的局限性

  1. 需要开发三部分分解算法。
  2. 必须使用某种度量来选择生成的许多 3 部分分解中的任何一个。在图像中的示例中,假设n1 = 3, n2 = 5, n3 = 4P = 54我们将有 3 部分分解(27, 2, 1)(9, 3, 2)和。这里适用哪一个?一个简单的差值度量会选择。但即使这样也有多个排列和.(6, 9, 1)(6, 3, 3)(6, 3, 3)(3, 6, 3)(3, 3, 6)
  3. 如果选择的 3 部分分解有一个大于相应格子大小 ( nx) 的因子,那么我们将不得不截断它,这意味着一些 PE 将不起作用。
  4. 如果选择的 3 部分因式分解有一个因子(可能是在上面提到的截断之后)不划分其相应的格大小,我们就有不均等的工作共享(尽管一些 PE 可能正在休眠,如上点所示)。

读者如何提供帮助

  • 我们如何改进这种不优雅的算法?您能否建议对“问题表述的限制”中的任何一点进行改进?
  • 有没有更好、更正式的方法(即问题表述)?
  • 论文/网站/文章/书籍的链接将不胜感激。