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}
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('..')