在周期性边界条件下寻找 voronoi 下一个邻居
Finding voronoi next neighbors in periodic boundary conditions
我需要找到给定点的 voronoi 下一个邻居,即所有具有接触原始粒子单元的 voronoi 单元的点。
几何形状是二维的,并使用周期性边界条件。
实现此目的的最佳方法是什么(使用或不使用外部库)?
你可以试试这个:
foreach ($this->indices as $key => $arr)
{
foreach ($this->indices as $ikey => $iarr)
{
if ($key != $ikey)
{
if ( ($arr[0]==$iarr[1] && $arr[1]==$iarr[0]) ||
($arr[0]==$iarr[2] && $arr[1]==$iarr[1]) ||
($arr[0]==$iarr[3] && $arr[1]==$iarr[2]) ||
($arr[1]==$iarr[1] && $arr[2]==$iarr[0]) ||
($arr[1]==$iarr[2] && $arr[2]==$iarr[1]) ||
($arr[1]==$iarr[3] && $arr[2]==$iarr[2]) ||
($arr[2]==$iarr[1] && $arr[3]==$iarr[0]) ||
($arr[2]==$iarr[2] && $arr[3]==$iarr[1]) ||
($arr[2]==$iarr[3] && $arr[3]==$iarr[2])
)
{
$this->voronoi[$key][$ikey]=array($this->cc[$key], $this->cc[$ikey]);
}
}
}
}
我需要找到给定点的 voronoi 下一个邻居,即所有具有接触原始粒子单元的 voronoi 单元的点。 几何形状是二维的,并使用周期性边界条件。 实现此目的的最佳方法是什么(使用或不使用外部库)?
你可以试试这个:
foreach ($this->indices as $key => $arr)
{
foreach ($this->indices as $ikey => $iarr)
{
if ($key != $ikey)
{
if ( ($arr[0]==$iarr[1] && $arr[1]==$iarr[0]) ||
($arr[0]==$iarr[2] && $arr[1]==$iarr[1]) ||
($arr[0]==$iarr[3] && $arr[1]==$iarr[2]) ||
($arr[1]==$iarr[1] && $arr[2]==$iarr[0]) ||
($arr[1]==$iarr[2] && $arr[2]==$iarr[1]) ||
($arr[1]==$iarr[3] && $arr[2]==$iarr[2]) ||
($arr[2]==$iarr[1] && $arr[3]==$iarr[0]) ||
($arr[2]==$iarr[2] && $arr[3]==$iarr[1]) ||
($arr[2]==$iarr[3] && $arr[3]==$iarr[2])
)
{
$this->voronoi[$key][$ikey]=array($this->cc[$key], $this->cc[$ikey]);
}
}
}
}