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
Navier-Stokes 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}\) |