Anatomy of Partial Differential Equations

J. Emmanuel Johnson
CNRS
MEOM

Coordinates and Domain

xΩRDs\begin{aligned} \vec{\mathbf{x}} \in \Omega \sub \mathbb{R}^{D_s} \end{aligned}

where x\vec{\mathbf{x}} is a vector of coordinate values, i.e. x=[x1,x2,]\vec{\mathbf{x}}=[x_1, x_2, \ldots]^\top.

tTR+\begin{aligned} t \in \mathcal{T} \sub \mathbb{R}^+ \end{aligned}

where tt is a scalar value along the real number line.

domain: Domain = Domain(xmin, xmax, dx)

Field

u(x,t):RDs×R+R\boldsymbol{u}(\vec{\mathbf{x}}, t): \mathbb{R}^{D_s}\times\mathbb{R}^+ \rightarrow \mathbb{R}
u: Field = Field(values, domain)

State

A state is a collection of different fields, i.e. u=[u1,u2,]\vec{\boldsymbol{u}}=[u_1, u_2, \ldots]^\top

u(x,t):RDs×R+RDu\vec{\boldsymbol{u}}(\vec{\mathbf{x}}, t): \mathbb{R}^{D_s}\times\mathbb{R}^+ \rightarrow \mathbb{R}^{D_u}

For example, in the SW we have the height and the velocity vecto, whereas in the QG equations, we have the potential vorticity and the stream function.

state: State = State(u, v, h)

Partial Differential Equations

tu(x,t)=F[u;θ](x,t)F:RDu×RDθRDu\begin{aligned} \partial_t \vec{\boldsymbol{u}}(\vec{\mathbf{x}}, t) &= \boldsymbol{F} \left[\vec{\boldsymbol{u}}; \boldsymbol{\theta}\right] (\vec{\mathbf{x}}, t) && && \boldsymbol{F}: \mathbb{R}^{D_u} \times \mathbb{R}^{D_\theta} \rightarrow \mathbb{R}^{D_u} \end{aligned}
F: Callable = equation_of_motion(t, state, params)

Initial Conditions Function

u0:=u(x,0)=FIC[u;θ](x)FIC:RDuRDuxΩRDs\begin{aligned} \vec{\boldsymbol{u}}_0 := \vec{\boldsymbol{u}}(\vec{\mathbf{x}}, 0) &= \boldsymbol{F}_{IC} \left[\vec{\boldsymbol{u}}; \boldsymbol{\theta}\right] (\vec{\mathbf{x}}) && && \boldsymbol{F}_{IC}: \mathbb{R}^{D_u} \rightarrow \mathbb{R}^{D_u} && && \vec{\mathbf{x}} \in \Omega \sub \mathbb{R}^{D_s} \end{aligned}
F_ic: Callable = FIC(domain, params)

Boundary Conditions Function

ub:=u(x,t)=FBC[u;θ](x)FBC:RDuRDuxΩRDstTR+\begin{aligned} \vec{\boldsymbol{u}}_b := \vec{\boldsymbol{u}}(\vec{\mathbf{x}}, t) &= \boldsymbol{F}_{BC} \left[\vec{\boldsymbol{u}}; \boldsymbol{\theta}\right] (\vec{\mathbf{x}}) && && \boldsymbol{F}_{BC}: \mathbb{R}^{D_u} \rightarrow \mathbb{R}^{D_u} && && \vec{\mathbf{x}} \in \partial\Omega \sub \mathbb{R}^{D_s} && && t \in \mathcal{T} \sub \mathbb{R}^+ \end{aligned}
F_bc: Callable = FBC(t, state, params)

Time Stepper

u(x,t)=u(x,0)+0tF[u;θ](x,τ)dτ\vec{\boldsymbol{u}}(\vec{\mathbf{x}}, t) = \vec{\boldsymbol{u}}(\vec{\mathbf{x}}, 0) + \int_0^t \boldsymbol{F} \left[\vec{\boldsymbol{u}}; \boldsymbol{\theta}\right] (\vec{\mathbf{x}}, \tau) d\tau
state: State = TimeStepper(F, params, state, t0, t1, dt)

Summary Table

SymbolName
RDs\mathbb{R}^{D_s}Spatial Coordinate Space
R+\mathbb{R}^+Temporal Coordinate Space
x\vec{\mathbf{x}}Spatial Coordinates
ttTemporal Coordinate
Ω\OmegaSpatial Domain
Ω\partial\OmegaBoundary of Spatial Domain
T\mathcal{T}Temporal Domain
uuscalar field
u\boldsymbol{u}vector field
u\vec{\boldsymbol{u}}state
F\boldsymbol{F}equation of motion operator (RHS)
FIC\boldsymbol{F}_{IC}initial condition function
FBC\boldsymbol{F}_{BC}boundary condition functions
θ\boldsymbol{\theta}parameters (PDE, spatiotemporal discretization)
,TimeStepper\int,\text{TimeStepper}Time stepper