Quick start

VisualPDE is a web-based set of tools for solving partial differential equations (PDEs) via an interactive, easy-to-use simulation. To get started, try playing with some of the linear examples, or read on for some quick tips for using the solver.

Interacting with the simulation

Clicking/pressing on the simulation draws values right onto the domain. You can customise exactly what this does under Brush For example, the default settings in the heat equation example allow you to paint ‘heat’ of value 1 onto the domain, which acts like an initial condition for the rest of the simulation. If you have another mouse button to press, you can use it to remove ‘heat’.

The equations panel

Pressing   opens up the equations panel.

Equations panel

Here you can:

Domain shape

The default domain for solving PDEs is a 2D rectangle, $\domain = [0,L_x]\times[0,L_y]$, which fits the size of your browser window or phone screen. Throughout VisualPDE, we use coordinates $x\in[0,L_x]$ and $y\in[0,L_y]$.

You can force the domain to be a square, $\domain = [0,L]\times[0,L]$, by toggling off DomainFill screen

Boundary conditions

The following boundary conditions are available to allow you to set the value of the function, or the value of its derivative, along the boundary $\boundary$ of the domain $\domain$:

You can swap between boundary conditions by choosing  Boundary conditions and selecting from the list for each variable.

Initial conditions

You can specify the values to which the unknowns ($u$, $v$, $w$) are initialised when resetting the simulation. These expressions can be functions of $x$, $y$, the special string ‘RAND’ that assigns a random number in [0,1] to each point in the domain, along with any user-defined parameters and the images $I_S$ and $I_T$ (see the advanced documentation for more details). You can also use $L$, $L_x$ and $L_y$.

Changing the equations

The simplest system VisualPDE can solve is a single PDE,

\[\pd{u}{t} = \vnabla \cdot (D_u \vnabla u) + f_u,\]

where $D_u$ and $f_u$ are functions of $u$, $x$, $y$, and $t$ that you can specify.

The most complicated type is a coupled system of PDEs in four unknowns, $u$, $v$, $w$ and $q$:

\[\begin{aligned} t_u\pd{u}{t} &= \vnabla \cdot(D_{uu}\vnabla u+D_{uv}\vnabla v+D_{uw}\vnabla w+D_{uq}\vnabla q) + f_u,\\ \text{one of}\left\{\begin{matrix}\displaystyle t_v\pd{v}{t} \\ v\end{matrix}\right. & \begin{aligned} &= \vnabla \cdot(D_{vu}\vnabla u+D_{vv}\vnabla v+D_{vw}\vnabla w+D_{vq}\vnabla q) + f_v \vphantom{\displaystyle t_v\pd{v}{t}}, \\ &= \vnabla \cdot(D_{vu}\vnabla u+D_{vw}\vnabla w+D_{vq}\vnabla q) + f_v, \end{aligned}\\ \text{one of}\left\{\begin{matrix}\displaystyle t_w\pd{w}{t} \\ w\end{matrix}\right. & \begin{aligned} &= \vnabla \cdot(D_{wu}\vnabla u+D_{wv}\vnabla v+D_{ww}\vnabla w+D_{wq}\vnabla q) + f_w \vphantom{\displaystyle t_w\pd{w}{t}}, \\ &= \vnabla \cdot(D_{wu}\vnabla u+D_{wv}\vnabla v+D_{wq}\vnabla q) + f_w, \end{aligned}\\ \text{one of}\left\{\begin{matrix}\displaystyle t_q\pd{q}{t} \\ q\end{matrix}\right. & \begin{aligned} &= \vnabla \cdot(D_{qu}\vnabla u+D_{qv}\vnabla v+D_{qw}\vnabla w+D_{qq}\vnabla q) + f_q \vphantom{\displaystyle t_q\pd{q}{t}}, \\ &= \vnabla \cdot(D_{qu}\vnabla u+D_{qv}\vnabla v+D_{qw}\vnabla w) + f_q, \end{aligned} \end{aligned}\]

where $D_{uu}, \dots, D_{qq}$, $f_u, \dots, f_q$ and $t_u, \dots, t_q$ are functions of $u$, $v$, $w$, $q$, $x$, $y$ and $t$ that you can specify.

More VisualPDE

For a comprehensive list of all the options that you can set in VisualPDE, check out the Advanced documentation, or discover what VisualPDE can solve in our brief summary.