You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于论文《General magnetostatic shape–shape interactions》中磁静相互作用能量公式的张量运算与傅里叶空间计算的技术问询

关于论文《General magnetostatic shape–shape interactions》中磁静相互作用能量公式的张量运算与傅里叶空间计算的技术问询

背景

我正在尝试实现论文《General magnetostatic shape–shape interactions》中提出的模型,该模型可计算任意形状物体间的磁静相互作用能。

模型中,物体被定义为三维数组$D(\pmb{r})$:无粒子的位置取值为0,有粒子的位置取值为1,这被称为「形状函数」。计算在傅里叶空间中进行,形状函数的傅里叶变换为形状振幅$D(\pmb{k})$,对应一个三维网格,同时关联另外三个三维网格$k_x$、$k_y$和$k_z$,为$D(\pmb{k})$的每个网格点分配x、y、z方向的频率。频率网格由以下序列给出:
$$k^\alpha=\dfrac{2\pi \delta}{L} \left[-\dfrac{L}{2},-\dfrac{L-1}{2},...,\dfrac{L-1}{2},\dfrac{L}{2} \right]$$
其中$L$是$D(\pmb{r})$某一维度的长度,$\delta$是网格点的长度。

基于上述背景,我需要计算论文中的公式(7):
$$E_m(\rho,\pmb{\hat{m}{1}},\pmb{\hat{m}{2}})=2\overline{K}_d m_1^\alpha[C(\pmb{\rho})\otimes G(\pmb{\rho})m_2^\beta]$$
各参数含义:

  • $E_m$:磁静相互作用能
  • $\pmb{\hat{m}_{i}}$:物体i内磁化方向的单位向量,$\alpha/\beta$是指代x、y、z维度的索引
  • $\overline{K}_d$:包含所有与物体相关物理常数的常量
  • $\otimes$:张量积

后续两个项的定义如下:

  • $G(\pmb{\rho})=FT_\rho{-1}[k\alpha k\beta]$:$FT{-1}$是「相对于相对位置向量$\pmb{\rho}$」的逆傅里叶变换,$k^{\alpha/\beta}$是与$D(\pmb{k})$三维网格中所有点对应的x、y或z方向的倒空间频率。
  • $C(\pmb{\rho})=FT_\rho{-1}[D_1(\pmb{k})D_2*(\pmb{k})]$:星号表示复共轭,下标1和2分别指代粒子1和粒子2。

公式(7)是公式(4)的等价表达:
$$E_m=\dfrac{\overline{K}d}{4\pi^3}Re\left[\int d^3\pmb{k} D_1(\pmb{k})D_2^*(\pmb{k})\times (\pmb{\hat{m}{1}}\cdot \pmb{\hat{k}}) (\pmb{\hat{m}_{2}}\cdot \pmb{\hat{k}})e^{i\pmb{k}\cdot\pmb{\rho}}\right]$$
其中$\pmb{\rho}$是两个物体间的位移($\pmb{\rho}=[\Delta x, \Delta y, \Delta z]$),$Re$表示取实部。

我的问题

在理解和实现这些公式时,我遇到了三个核心困惑:

  1. 两个张量像$D_1(\pmb{k})D_2^*(\pmb{k})$这样无符号相乘是什么意思?是逐元素乘法、常规矩阵乘法,还是其他运算?
  2. 操作$FT_\rho^{-1}$到底指什么?如何「相对于」位移$\pmb{\rho}$对形状振幅和频率网格进行傅里叶逆变换?
  3. 公式输出应该是带单位的标量(如焦耳或电子伏特),但张量积$C(\pmb{\rho})\otimes G(\pmb{\rho})$是3D张量,这怎么最终得到标量结果?

问题解答

1. $D_1(\pmb{k})D_2^*(\pmb{k})$的乘法含义

在计算物理领域的论文中,这种无符号的张量相乘几乎可以肯定是逐元素乘法。原因有两点:

  • 从物理逻辑看,$D_1(\pmb{k})$和$D_2^*(\pmb{k})$都是与倒空间网格$\pmb{k}=(k_x,k_y,k_z)$同维度的三维数组,每个位置对应一个特定的$\pmb{k}$向量。逐元素相乘后,每个网格点的结果就是该$\pmb{k}$分量下的被积项(对应公式(4)中积分的每个微元),完全贴合积分的离散化逻辑。
  • 从数学表述习惯看,如果是矩阵乘法或张量收缩,论文会明确标注符号(如$\cdot$、$\times$),而无符号的同维度数组相乘默认是逐元素操作,这在数值模拟的文献中是通用惯例。

2. 理解$FT_\rho^{-1}$:相对于$\pmb{\rho}$的逆傅里叶变换

这里的$FT_\rho^{-1}$是一种简化表述,核心是明确傅里叶变换的变量映射关系:

  • 首先,$D_1(\pmb{k})D_2*(\pmb{k})$和$k\alpha k^\beta$都是定义在倒空间网格$\pmb{k}$上的函数。
  • $FT_\rho^{-1}$的含义是:将$\pmb{k}$作为傅里叶变换的「频率变量」,变换后的结果是实空间中**两个物体的相对位移$\pmb{\rho}$**的函数。

在实现层面,你可以直接把它当成标准的三维逆傅里叶变换来处理:

  1. 对倒空间中的目标函数(比如$D_1(\pmb{k})D_2^*(\pmb{k})$)执行三维逆FFT。
  2. 变换后的输出数组的每个维度对应实空间中的位移分量$\Delta x,\Delta y,\Delta z$,数组每个位置的值就是$C(\pmb{\rho})$在该位移下的取值。

论文中「相对于$\pmb{\rho}$」的表述,只是在强调变换结果是相对位移的函数,而非物体的绝对位置函数,这和公式(7)中$E_m$是$\pmb{\rho}$的函数完全一致。

3. 从张量到标量能量的转化逻辑

这里的关键是要注意论文中隐含的爱因斯坦求和约定:当一个索引在表达式中同时作为上标和下标出现时,默认对该索引的所有可能值(x、y、z)求和。我们可以拆解公式(7)的运算步骤来理解:

  1. 先看张量积:$C(\pmb{\rho})$是标量(每个$\pmb{\rho}$对应一个数值),$G(\pmb{\rho})$是2阶张量(由$k^\alpha k^\beta$逆傅里叶变换得到,每个$\pmb{\rho}$对应一个$3\times3$的矩阵)。因此$C(\pmb{\rho})\otimes G(\pmb{\rho})$本质上是标量乘以2阶张量,结果仍是一个2阶张量(即$C(\pmb{\rho})G^{\alpha\beta}(\pmb{\rho})$)。
  2. 接下来,用$m_2^\beta$(3维向量,分量为$m_{2x},m_{2y},m_{2z}$)与这个2阶张量相乘:对$\beta$索引求和,得到一个3维向量,每个$\alpha$分量为$\sum_{\beta=x,y,z} C(\pmb{\rho})G^{\alpha\beta}(\pmb{\rho})m_{2\beta}$。
  3. 最后,用$m_1^\alpha$(另一个3维向量)与这个3维向量做点积:对$\alpha$索引求和,得到$\sum_{\alpha=x,y,z} m_{1\alpha} \times \left(\sum_{\beta=x,y,z} C(\pmb{\rho})G^{\alpha\beta}(\pmb{\rho})m_{2\beta}\right)$,这就是一个标量!

整个过程通过两次索引收缩(对$\alpha$和$\beta$求和),将2阶张量转化为标量,完全等价于公式(4)中通过积分得到标量的逻辑。


备注:内容来源于stack exchange,提问作者JasonC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 09:17:59