Modify and test--checking errors and convergence as before--either
the C or Matlab code to solve ONE of the following problems,
using a semi-implicit method:
- Solve the advection equation for a Gaussian pulse; what
instabilities do you observe?
 |
(5.3) |
What results do you get for the nonlinear viscid Burger's equation?
Note: this is a numerically challenging problem! Try parameters of
,
, with periodic boundary conditions and an
initial `square profile' of traffic bunched together, with a uniform
density of
. You will need to iterate the nonlinear
differential operators to obtain the central derivatives. Can you
explain the phenomena that you see?
- Solve the Schrödinger equation for a Gaussian pulse
scattering off a square potential well, with parameters chosen so that
there is a large reflection. It is best to start the pulse near a
window boundary, moving inwards to a potential well at the center of
the window:
 |
(5.4) |
Explain the results in terms of resonant behaviour and interference
for the waves created inside the potential well.
- Solve the nonlinear Schrödinger equation which describes
solitons in optical fiber pulse propagation, using an initial
condition of form
, where:
 |
(5.5) |
In this example, there is an exact solution of form
, for testing purposes. It is best to start with the
exact analytic form in order to test the code. You will have to choose
the appropriate
and
value so the given input is a
soliton, which has an invariant shape. You should check that colliding
solitons are unchanged in a collision; moving solitons require a phase
modulation of form
.
It will be necessary to either solve a tri-diagonal matrix equation to
obtain the required results, or to use the split-step FFT method,
which involves periodic boundary conditions. This is especially
useful in higher dimensions. Note that the semi-implicit method is
much more useful in practise than the first project, especially for
nonlinear equations, where you can try larger initial amplitudes (for
example, twice or three times the soliton amplitude), as a more
stringent test. This is a nontrivial exercise, as there is a
nonlinear term to be treated implicitly. Ask for help from a
demonstrator, if you have problems with this.
In each case, your report should include:
- A general description of the problem, and the physics background.
- A code that you wrote and tested, with test output and
error-plot using an analytically soluble case.
- Table of maximum errors with various step-sizes.
- Plots of physically relevant outputs, with a conclusion about
the physics and the numerical method.
- The source code should also be attached to an email to
cochrane@physics.uq.edu.au,
along with the relevant input parameters used to generate the plots.
Paul Cochrane
2002-04-18