# Mathematical model and solution method

We solve a one-dimensional, linear, constant-coefficient
wave equation by an explicit finite difference method.

## The wave equation problem

The standard, linear wave equation in a homogeneous one-dimensional
medium reads
$$
\begin{equation}
\frac{\partial^2 u}{\partial t^2} =
c^2 \frac{\partial^2 u}{\partial x^2}, \quad x\in (0,L),\ t\in (0,T]\tp
\tag{1}
\end{equation}
$$
The unknown function \( u \) depends on space \( x \) and time \( t \): \( u=u(x,t) \).

**The need for boundary conditions in the wave equation.**
Four initial and boundary conditions must be specified to have a
unique solution:

- Initial condition for \( u(x,0) \)
- Initial condition for \( u_t(x,0) \)
- Boundary condition at \( x=0 \)
- Boundary condition at \( x=L \)

## Initial conditions

Most demonstrations will start with an initial profile of \( u \),
$$ u(x,0) = I(x), $$
being at rest, i.e.,
$$ \frac{\partial}{\partial t}u(x,0) = 0\tp $$
Two initial profiles will be considered:

- a plug as to left in Figure 1
- a Gaussian peak as to the right in Figure 1

Figure 1: Examples on initial conditions.

## Boundary conditions

### Fixed \( u \)

At \( x=0 \) we will sometimes use the condition \( u=0 \), often known as
a homogeneous

*Dirichlet* condition. This condition will
mirror the wave.

### Reflecting condition

At \( x=0 \) and/or \( x=L \) we will apply a

*reflecting* or

*no-flux* condition:
$$
\begin{equation} \frac{\partial u}{\partial x}=0\tp
\tag{2}
\end{equation}
$$
This condition reflects the wave into the domain again, as a surface wave
hits a vertical wave, runs up to the double amplitude, and propagates
back into the domain again. This type of boundary condition is also
referred to as a

*Neumann* condition.

### Feeding a wave from the boundary

We shall demonstrate the effect of moving \( u \) at the boundary \( x=0 \) to
feed the domain with an incoming wave. The boundary condition then reads
$$ u(0,t) = U_0(t),$$
for some given function \( U_0(t) \). A particular choice in a later
demonstration is a sine function that is active in three different
time intervals:
$$ U_0 (t) = \left\lbrace\begin{array}{ll}
\frac{1}{4}\sin(6\pi t),& t\in T_1\hbox{ or } t\in T_2\hbox{ or } t\in T_3\\
0,& \hbox{otherwise}
\end{array}\right.
$$
where \( T_1=[0, \frac{1}{6}] \), \( T_2=[\frac{3}{4}, \frac{5}{6}] \),
and \( T_3=[\frac{3}{2},\frac{11}{6}] \). The movement of \( u \) at the
boundary will produce a wave that is by the PDE transported to
the right into the domain.

### Open boundary condition

Very often one wants to let a wave travel through the boundary without
being disturbed. Such a condition is called an

*open* boundary condition,
or a

*radiation* condition, or an

*artificial* boundary condition:
$$
\begin{align}
\frac{\partial u}{\partial t} - c\frac{\partial u}{\partial x} &= 0,\quad x=0,
\tag{3}\\
\frac{\partial u}{\partial t} + c\frac{\partial u}{\partial x} &= 0,\quad x=L\tp
\tag{4}
\end{align}
$$
These conditions work exactly in 1D, but are challenging to generalize
and implement in 2D and 3D.

### Periodic boundary condition

When following a wave motion over large distances, it is desireable to
let a wave travel out of the right domain
and at the same time feed the wave back into the domain from the left.
This approach avoids a very large domain where nothing happens in
the majority of the domain. A

*periodic* boundary condition at \( x=0 \)
can be used to feed the signal traveling out at \( x=L \) into the domain:
$$
\begin{equation}
u(0,t) = u(L,t)\tp
\tag{5}
\end{equation}
$$
The condition at \( x=L \) is then an open boundary condition

(4).

## Numerical solution method

The wave equation is solved by an explicit finite difference method,
which is of second-order in space and time. A uniform mesh with
spacing \( \Delta x \) and \( \Delta t \) is used in space and time,
respectively. The no-flux or Neumann boundary conditions are implemented
by modifying the computational stencil at the boundary. The
open boundary conditions are implemented by forward in time,
upstream in space finite differences, which exactly let the wave out
of the boundary. More details are found in

Appendix: Numerical solution method.
Parts of the computer code are explained in

Appendix: Computer code.