Examples of RNPL-based finite-difference calculations
For information on RNPL, see the GC toolkit page or, better, Chapters 8 and 9 of Robert Marsa's PhD dissertation
- 2D Axisymmetric wave equation solved in cylindrical coordinates (rho,z).
- Second order, single-grid form: This version seems to be stable, although there is some non-smoothness in the large-rho corners.
Note: This example
has been updated since it was first posted. In particular, it uses
"new" RNPL features which are explained more fully in the source code and
parameter files as well as in the RNPL documentation. For anyone who has
actually used RNPL, the most significant change is that the output
frequency, rmod, has been replaced with a vector parameter output,
which explicitly defines the time steps at which grid functions are to
be dumped (see parameter file id0)
RNPL source: cyl2d_rnpl
Parameter file (level 0): id0
Initial data routine: cyl2d_maninit.f. Stub generated using perl script mkinit
Makefile (may need modification): Makefile
Initial data: Controlled by parameter idstr. Currently implemented: time-symmetric, ingoing or outgoing spherically-symmetric gaussians, distorted (non-spherical) gaussian pulse (see source code cyl2d_rnpl)
Explorer Map: Used to render data and generate MPEG movies (88k JPEG)
Movies of phi [rho,z,t]: Time symmetric pulse.
Movies of phi [rho,z,t]: Ingoing pulse.
Movies of phi [rho,z,t]: Outgoing pulse.
Movies of phi [rho,z,t]: Distorted oblate time-symmetric pulse. Here the effect (significant reflection) of the outgoing radiation conditions for wave fronts not propagating in the radial (r = sqrt(rho^2 + z^2)) direction is apparent. However, the scheme remains stable.
Movies of phi [rho,z,t]: Distorted prolate time-symmetric pulse
- First order, single-grid form, Crank-Nicholson differencing:
This version is currently unstable, probably due to bad boundary and/or regularity conditions, particularly at (0,zmin) and (0,zmax)
RNPL source: cyl2d_rnpl
Parameter file (level 0): id0
Makefile: Makefile
Initial data: purely outgoing (parameter signum = -1)
Movies of Pi = d(phi)/dt [rho,z,t]:
- First order, single-grid form, Crank-Nicholson differencing:
This version (due to Steve Liebling) includes "regularized differencing" and improved
boundary conditions. Behaviour is much better, although the scheme is still unstable,
at least on sufficiently coarse grids.
RNPL source: wave_rnpl
Parameter file (level 0): ref_id0
Makefile: Makefile
Initial data: time symmetric (parameter signum = 0)
Movies of Phi[rho,z,t]:
- level 3 (129 x 257), epsdis=0.5, t = 0 to t = 600: (662k MPEG).
Color map limits (red -> magenta): [-1,1].
- level 3 (129 x 257), epsdis=0.5, t = 70 to t = 1200: (2742k MPEG).
Vertical scale enhanced 250 times. Color map limits: [-1.0e-3,1.0e-3].
- level 0 (17 x 33), epsdis=0.5, t = 0 to t = 318000: (911k MPEG).
Color map limits: [-1.0e-3,1.0e-3].
- First order, single-grid form, Leap-frog differencing:
This version includes improved boundary conditions and "fourth-order" dissipation on all three
dynamical variables. Behaviour is much improved although the scheme is still unstable, at least on sufficiently coarse grids.
RNPL source: axi_rnpl
Parameter file (level 0): ref_id0
Makefile: Makefile
Initial data: time symmetric (parameter signum = 0)
Movies of Phi[rho,z,t]:
- level 3 (129 x 257), epsdis=0.5, t = 0 to t = 600: (587k MPEG).
Color map limits (red -> magenta): [-1,1].
- level 3 (129 x 257), epsdis=0.5, t = 70 to t = 1200: (1130k MPEG).
Vertical scale enhanced 250 times. Color map limits: [-1.0e-3,1.0e-3] for t < 600, [-1.0e-6,1.0e6] for t > 600.
- level 3 (129 x 257), epsdis=0.0, t = 0 to t = 443: (1698k MPEG). Color map limits (red -> magenta): [-1,1].
- level 0 (17 x 33), epsdis=0.5, t = 0 to t = 12800: (1840k MPEG).
Color map limits: [-1.0e-3,1.0e-3].