david/22-2-2012
Cylindrical stegoton scaling relations
Looking at scaling relations of radial stegotons from data in
/Users/Shared/paper-2D-stegoton/checker_upto_t200/gauge/Ng240
Wrote cat.py to concatenate the broken-up gauge data files.
Wrote gauge_analysis.py to plot and rescale/shift gauge data in order to determine scaling relations.
Objectives:
- Find scaling relation for a single wave – how amplitude, width, and radius are related as it propagates
- Find scaling relation between different waves
We naturally expect that mass is conserved within each solitary wave, so that the product \(r\cdot A \cdot w\) is constant, where \(r\) is the radial location of the wave peak, \(A\) is the amplitude of the peak, and \(w\) is some measure of the width such as full width at half max.
Thus \[w\cdot A \propto r^{-1}.\]
For one-dimensional stegotons (where there is no radial dependence), it was found by LeVeque and Yong that \(w\propto A^{1/2}\). If the same relation holds in 2D, then we have \(A^{3/2} \propto r^{-1}\) or \[A \propto r^{-2/3} \] \[w \propto r^{-1/3}\] which was observed for cylindrical KdV solitary waves.
Looking at our data, we find different scalings. The function rescale_fit() in gauge_analysis.py takes a bunch of gauge traces and does the following:
- Shift them so that the leading wave peak is at zero.
- Rescale the amplitudes by a factor \(r^{-q_1}\) where \(r\) is the gauge radial coordinate and \(q_1\) is an exponent to be determined.
- Rescale the time axis (width) by a factor \(r^{-q_2}\), where \(q_2\) is an exponent to be determined.
I’ve adjusted \(q_1\) and \(q_2\) to make the different traces lie nearly on top of each other. For cylindrical KdV waves, we would have \(q_1=2/3\) and \(q_2 = 1/3\). In any case, for conservation we should have \(q_1 + q_2 = 1\).
This is obviously not right.
By trying to find a ‘best fit’ for the whole wave train, I obtain approximately \[q_1 = 0.85 \ \ q_2=0.45.\]
A best fit for the leading solitary wave gives roughly \[q_1 = 0.85 \ \ q_2=0.35.\]
What’s going on? Do we not have mass conservation for individual waves? One thing I haven’t accounted for is that I am rescaling the width in time (not space) and taller waves travel faster. But I would expect that if this were an important factor, then the scaling would be completely wrong for the shorter waves.
This is all for gauges along \(\theta=0\). For the other angles, the problem is that the gauges fall at different places relative to the period of the medium, so the data may not be directly comparable for gauges at different radii.
April 7: looked at gauge data for back-propagated single stegoton in /Users/Shared/paper-2D-stegoton/single_stegoton/propagation_backwards/gauges/. A best fit for that data gives roughly \(q_1=0.55,q_2=0.15\).
From the figure, it’s clear that significant energy is lost into trailing oscillations as the wave is back-propagated. This confirms that we haven’t really isolated a single solitary wave yet, which seems to explain why the coefficients don’t sum to unity.
"""
cat.py
Concatenate gauge files.
"""
import numpy as np
import os
for radius in [200]:
for theta in np.arange(5,95,5):
fname = 'gauge_r'+str(radius)+'_d'+str(theta)+'.txt'
t = np.array(())
gauge_data = np.array(())
for subdir in ['1st','2nd','3rd','4th']:
os.chdir(subdir)
next_dat = np.loadtxt(fname)
t = np.append(t,next_dat[:,0])
gauge_data = np.append(gauge_data, next_dat[:,1])
os.chdir('..')
data = np.vstack((t,gauge_data)).T
os.chdir('all')
np.savetxt(fname,data)
os.chdir('..')