打算写一下各个 HPC 应用领域所试图解决的科学侧问题,涉及的科学方法,以及将该问题映射到计算机所使用的算法。

通用方法相关

Level set function

定义一个函数 $\phi(x, t)$, 其中 $x$ 是空间坐标,$t$ 是时间。
interface 定义为 $\Gamma(t) = \{ x:\phi(x, t)=0 \}$
$\phi(x, t)> 0 $ 和 $\phi(x, t)< 0 $ 分别表示在 interface 的内部和外部。

梯度算子 ($\nabla$, nabla)

Gradient $\nabla f$ :
$\nabla f = (\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z})$
作用于标量场 $f$,得到向量场 $\nabla f$,指向标量场增加最快的方向

divergence $\nabla \cdot \mathbf{F}$ :
$\nabla \cdot \mathbf{F} = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z}$
作用于向量场 $\mathbf{F}$,得到标量场 $\nabla \cdot \mathbf{F}$,表示标量场流出一点的流量。正数表示该点是 source,负数表示该点是 sink。

curl $\nabla \mathbf{F}$ :
$ \nabla \times \mathbf{F} = \left( \frac{\partial F_z}{\partial y} - \frac{\partial F_y}{\partial z}, \frac{\partial F_x}{\partial z} - \frac{\partial F_z}{\partial x}, \frac{\partial F_y}{\partial x} - \frac{\partial F_x}{\partial y} \right) $
行列式表示 $\nabla \times \mathbf{F} =\begin{vmatrix}\hat{i} & \hat{j} & \hat{k} \\ \frac{\partial}{\partial x} & \frac{\partial}{\partial y} & \frac{\partial}{\partial z} \\ F_x & F_y & F_z \end{vmatrix}$
作用于向量场 $\mathbf{F}$ 得到向量场 $\nabla \times \mathbf{F}$,表示一点旋转的程度和方向

拉普拉斯算子 Laplacian $\nabla^2 f$ :
$\nabla^2 f = \nabla \cdot (\nabla f) = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} + \frac{\partial^2 f}{\partial z^2}$

分子 / 粒子 模拟

分子动力学 (molecular dynamics, MD)

以牛顿力学模拟分子/粒子的运动情况,将时间划分为小的时间片,认为每个时间片内粒子的运动是离散的

第一性原理 (ab initio)

流体模拟

地震模拟 / 油气勘探

气候 / 气象模式

标签: none

添加新评论