![]() |
Research School of Astronomy and Astrophysics
Fyris Alpha Simulation Code
|
![]() |
2D Symmetric Implosions TestThis test probes a number of code/method properties. The initial setup is particularly simple, and on a Cartesian grid can be set up with essentially perfect symmetry, to floating point precision. The shocks generated are models, being the parameters from the standard Sod test, but here with reflecting boundaries all around, the simulation is allowed to continue for many crossing times. Shocks reflecting from the origin eventually generate a free standing double 2D vortex, that is free to wander over the domain, and is not dissipated by crossing shocks. As the origin of the vortex is a cavity in an unstable contact discontinuity, the path and destiny of the vortex is extremely sensitive to a number of factors. Firstly, floating point 'noise', residual errors from the repeated application of non-linear operations can accumulate and eventually break the perfect symmetry of the intia conditions. Without specific care to control round off errors this noise will be present even in symmetric sweep codes. Secondly, if the standard asymmetric split sweeps are applied, the small assymmetry generated by the intial sweep (x or y) results in an asymmetric grid that will evolve with a small bias from then on. In this simulation that leads to the double vortex drifting in quite different directions over the grid. Only symmetric sweep operations will result in the double vortex favoring neither the left or right and instead remaining on the diagonal. Thirdly, related to the first, the eventual speed and the detailed distributions at the final step are so sensitive, that even the same code running on two different computer architectures can result in different final conditions. This can be understood both in terms of the infintesimal coordinate differences of the grid cells owing to differences in floating point representations, and any differences in the operating system libraries of mathematical routines. To demsonstrate how Fyris behaves under all these options requires a large number of tests, presented below. First the results from a standard run, with default settings. Then variations with:
Of these, four are presented with animations and snapshots of the final state. The others are presented simply as final state density snapshots. Initial ConditionsAdiabatic index:
Inside region: y < (0.15 - x)
Outside region:
Grid:
Algorithm Settings:
Ending Condition:
The code and configuration files for Fyris to run the 2D Implosion problem will be available soon. Test ModelsThese models were run: all MacOS X Quad G5, gcc -fast, Big Endian, except models 4a - 4b.
In principle, the initial conditions are symmetric, ie d[j][i] == d[i][j]. Normal Strang splitting starts out with a non-symmetric initial x-sweep, so that the subsequent y-sweep sees a grid that is no longer symmetric w.r.t the initial x-sweep. In this problem the destiny of the unstable interface and the generated double vortex depend sensitively on the symmetry of the calculation. In the Linska and Wendroff results, the symmetric, unsplit, codes maintained symmetry throughout the simulation, leaving the vortex on the diagonal axis. PPM and vh1, (like Fyris) normally use split sweeps. Globally these codes perform well, but as the symmetry is broken in the early sweeps the late time symmetry is not present, and the vortex is no longer found on the diagonal. Starting with an x-sweep results with the vortex drifting to the upper left of the diagonal. Simply reversing the order of the initial sweeps from X-Y to Y-X, gives the same vortex drifted off to the lower right. The mean sweep method requires more intermediate memory (2 times in 2D), but is symmetric. If the initial conditions are symmetric then the symmetry will be preserved. If the initial conditions are slightly asymmetric then the grid will evolve asymmetricly. To display the symmetry, a symmetric difference in density d_sym = d[j][i] - d[i][j] has been computed for each frame. If the density field is precisely symmetric (influencing floating point precision) then d_sym = 0.0 everywhere. If symmetry breaks then d_sym shows positive and negative values mirrored about the grid diagonal. ResultsQuickTime Movies: Models 1-3, 0.01 time steps, 250 frames each.
Density at t = 2.5
Symmetric Density d[j][i] - d[i][j] at t = 2.5
|
![]() |
Page last updated: Wednesday, 03-Mar-2010 17:21:39 AEDT Please direct all enquiries to: Ralph.Sutherland@anu.edu.au Page authorised by: Ralph Sutherland |
The Australian National University CRICOS Provider Number 00120C — ABN: 522 34063906 |