Skip to content

Cheat Sheet¤

Notation¤

  • \(i\): index of the coordinate.
  • \(I\): maximum index of the coordinate.
  • \(\mathbf{u}\): \(n\) d vector field.
  • \(u_i\): \(i\) th component of the vector field.
  • \(u,v\): components of 2d velocity field.
  • \(\phi\): scalar field (0d vector field.).
  • \(\phi_i\): concentration of \(i\)th component in a reaction system.
  • \(\omega\): vorticity scalar of a 2d velocity.
  • \(p\): pressure.

Data Types¤

  • \([B,C,H,W,\cdots]\): [Batch, Channel, x, y, \(\cdots\)]
  • \([B,T,C,H,W,\cdots]\): [Batch, Trajectory, Channel, x, y, \(\cdots\)]
  • SpatialTensor/SpatialArray: A tensor/array in physical space.
  • FourierTensor/FourierArray: A tensor/array in Fourier space, i.e., the tensor is a complex tensor.

Operators¤

All the below operators can be imported from torchfsm.operator module. Corresponding functions that directly apply the operator to the input tensor are also available in torchfsm.functional module.

Generic Operators¤

Operator Equation Is linear operator
SpatialDerivative \(\frac{\partial ^n}{\partial i} \phi\) True
Gradient \(\nabla \phi = \left[\begin{matrix}\frac{\partial \phi}{\partial x} \\\frac{\partial \phi}{\partial y} \\\cdots \\\frac{\partial \phi}{\partial I} \\\end{matrix}\right]\) True
Divergence \(\nabla \cdot \mathbf{u} = \sum_{i=0}^I \frac{\partial u_i}{\partial i}\) True
Laplacian \(\nabla^2\mathbf{u}=\left[\begin{matrix}\sum_{i=0}^I \frac{\partial^2 u_x}{\partial i^2 } \\ \sum_{i=0}^I \frac{\partial^2 u_y}{\partial i^2 } \\ \cdots \\ \sum_{i=0}^I \frac{\partial^2 u_I}{\partial i^2 } \\ \end{matrix} \right]\) True
HyperDiffusion \(\nabla^4\mathbf{u} = \left[\begin{matrix}\sum_i \frac{\partial^4 u_x}{\partial i^4 } \\\sum_i \frac{\partial^4 u_y}{\partial i^4 } \\\cdots \\\sum_i \frac{\partial^4 u_I}{\partial i^4 } \\\end{matrix}\right]\) True
Biharmonic \(\nabla^4\mathbf{u}=\left[\begin{matrix}(\sum_{i=0}^I\frac{\partial^2}{\partial i^2 })(\sum_{j=0}^I\frac{\partial^2}{\partial j^2 })u_x \\ (\sum_{i=0}^I\frac{\partial^2}{\partial i^2 })(\sum_{j=0}^I\frac{\partial^2}{\partial j^2 })u_y \\ \cdots \\ (\sum_{i=0}^I\frac{\partial^2}{\partial i^2 })(\sum_{j=0}^I\frac{\partial^2}{\partial j^2 })u_I \\ \end{matrix} \right]\) True
Dispersion \(\nabla \cdot (\nabla^2\mathbf{u}) = \left[\begin{matrix}\sum_j^I \frac{\partial}{\partial j}\sum_i^I \frac{\partial^2 u_x}{\partial i^2 } \\ \sum_j^I \frac{\partial}{\partial j}\sum_i^I \frac{\partial^2 u_y}{\partial i^2 } \\ \cdots \\ \sum_j^I \frac{\partial}{\partial j}\sum_i^I \frac{\partial^2 u_I}{\partial i^2 } \\ \end{matrix} \right]\) True
Curl (2D input) \(\nabla \times \mathbf{u} = \frac{\partial u_y}{\partial x}-\frac{\partial u_x}{\partial y}\) False
Curl (3D input) \(\nabla \times \mathbf{u} = \left[\begin{matrix} \frac{\partial u_z}{\partial y}-\frac{\partial u_y}{\partial z} \\ \frac{\partial u_x}{\partial z}-\frac{\partial u_z}{\partial x} \\ \frac{\partial u_y}{\partial x}-\frac{\partial u_x}{\partial y} \end{matrix} \right]\) False
ConservativeConvection \(\nabla \cdot \mathbf{u}\mathbf{u}=\left[\begin{matrix}\sum_{i=0}^I \frac{\partial u_i u_x }{\partial i} \\\sum_{i=0}^I \frac{\partial u_i u_y }{\partial i} \\ \cdots\\ \sum_{i=0}^I \frac{\partial u_i u_I }{\partial i} \\ \end{matrix} \right]\) False
Convection \(\mathbf{u} \cdot \nabla \mathbf{u}=\left[\begin{matrix}\sum_{i=0}^I u_i\frac{\partial u_x }{\partial i} \\\sum_{i=0}^I u_i\frac{\partial u_y }{\partial i} \\\cdots\\\sum_{i=0}^I u_i\frac{\partial u_I }{\partial i} \\\end{matrix} \right]\) False

Dedicated Operators¤

Operator Equation
VorticityConvection \((\mathbf{u}\cdot\nabla) \omega\)
NSPressureConvection \(-\nabla (\nabla^{-2} \nabla \cdot (\left(\mathbf{u}\cdot\nabla\right)\mathbf{u}-f))-\left(\mathbf{u}\cdot\nabla\right)\mathbf{u} + \mathbf{f}\)
Vorticity2Velocity \([u,v]=[-\frac{\partial \nabla^{-2}\omega}{\partial y},\frac{\partial \nabla^{-2}\omega}{\partial x}]\)
Velocity2Pressure \(-\nabla^{-2} (\nabla \cdot (\left(\mathbf{u}\cdot\nabla\right)\mathbf{u}-f))\)
Vorticity2Pressure \(\begin{matrix}\mathbf{u}=[u,v]=[-\frac{\partial \nabla^{-2}\omega}{\partial y},\frac{\partial \nabla^{-2}\omega}{\partial x}]\\ p= -\nabla^{-2} (\nabla \cdot (\left(\mathbf{u}\cdot\nabla\right)\mathbf{u}-f))\end{matrix}\)
Leray \(\mathbf{u} - \nabla \nabla^{-2} \nabla \cdot \mathbf{u}\)

Note that the corresponding function of NSPressureConvection operatoris not available in the torchfsm.functional module.

Kuramoto-Sivashinsky Operators¤

Operator Equation
KS Convection \(\frac{1}{2}\|\nabla \phi\|^2=\frac{1}{2}\sum_{i=0}^{I}(\frac{\partial \phi}{\partial i})^2\)

Gray-Scott Operators¤

Operator Equation
ChannelWisedDiffusion \(\nabla^2 \phi_i = \nu_i \nabla^2 \phi_i\)
GrayScottSource \(\left[\begin{matrix}f (1 - \phi_0) - \phi_0 \phi_1^2 \\ \phi_0 \phi_1^2 - (f + k) \phi_1 \end{matrix}\right]\)

Equations¤

Operator Equation
Burgers \(\frac{\partial \mathbf{u}}{\partial t} =-\mathbf{u} \cdot \nabla \mathbf{u} + \nu \nabla^2 \mathbf{u}\)
KuramotoSivashinsky \(\frac{\partial \phi}{\partial t}=-\frac{\partial^2 \phi}{\partial x^2} -\frac{\partial^4 \phi}{\partial x^4} - \phi\frac{\partial\phi}{\partial x}\)
KuramotoSivashinskyHighDim \(\frac{\partial \mathbf{\phi}}{\partial t}=-\nabla^2 \phi- \nabla^4 \phi - \frac{1}{2} \| \nabla \phi \|^2\)
KortewegDeVries \(\frac{\partial \mathbf{u}}{\partial t} = d \nabla \cdot (\nabla^2\mathbf{u}) +c \mathbf{u} \cdot \nabla \mathbf{u}\)
NavierStokesVorticity \(\frac{\partial \omega}{\partial t} + (\mathbf{u}\cdot\nabla) \omega = \frac{1}{Re} \nabla^2 \omega + \nabla \times \mathbf{f}\)
NavierStokes \(\frac{\partial\mathbf{u}}{\partial t}=-\nabla (\nabla^{-2} \nabla \cdot (\left(\mathbf{u}\cdot\nabla\right)\mathbf{u}-f))-\left(\mathbf{u}\cdot\nabla\right)\mathbf{u}+\nu \nabla^2 \mathbf{u} + \mathbf{f}\)
KPPFisher \(\frac{\partial u}{\partial t} = r u (1 - u) + \nu \nabla^2 u\)
SwiftHohenberg \(\frac{\partial \phi}{\partial t} = \nu \nabla^2 \phi + r \phi (1 - \phi)\)
GrayScott \(\begin{aligned}\frac{\partial \phi_0}{\partial t} &= \nu_0 \Delta \phi_0 - \phi_0 \phi_1^2 + f (1 - \phi_0) \\\frac{\partial \phi_1}{\partial t} &= \nu_1 \Delta \phi_1 + \phi_0 \phi_1^2 - (f + k) \phi_1\end{aligned}\)