広角散乱バッフル(wide-angle baffle, WAB)については、LIGO山本さんにもいろいろ聞いたり、自分でLIGOのdoc serverをあさってみたりして情報を再び整理したが、結局あまりはっきりした根拠などは見られなかった。いずれにせよLIGOはなんらか設けている(あれのメインはどっちかというと腕側を向いた狭角散乱をとらえることであるようだが。それでも、その反対側、つまり直近のミラー側にはいちおう広角散乱バッフルがついているのは確か)。 LIGOのWAB相当をみてみればわかるとおり、バッフル自体はかなり適当なつくりである(Mike Smithのsimulationはかなり単純化した、きれいなmodelに対してやっているようにみえる。)。で、これでいいのかどうかはさておき。必要な情報というのはたとえば
といったあたりの情報になる。覆えなかったのは全部再結合、、、とするのだろうか?? 他にもかんがえるべきことはいくつかある。たとえば、cryopayloadのまわりにassembly frameがたっているのだが、これの柱はやはり見えたらこまるのだろう。
LIGO山本さんからのsuggestionとしては、
Regarding the scattering, not much was understood, even now, and the design
should have been conservative.
というものでした。で、
For the wide angle scattering, rough estimation will be a sum of two
contributions, one from surface roughness and one from point defects. BRDF(Surface roughness) = A / theta or theta^2 (set A to make the total scattering = 30ppm) BRDF(point scattering) = 30ppm / 2pi This will be a descent estimator.
With this kind of stray light estimation, you will be able to figure out what
kind of isolator would be needed.
であると。ここで山本さんが言っている"BRDF"が「普通のBRDF」なのか$d\mathcal{P}/d\Omega/\mathcal{P}_0$なのか、はまああれだが、そのあたりはまあいいでしょう。だいたいそういう値である、ということで。光学屋さんとかcomputer graphics (CG)の分野の人が使う「普通のBRDF」との関係は、BRDF$\cos\theta=d\mathcal{P}/d\Omega/\mathcal{P}_0$である($\theta$はzenith angle)。
ある面からの全散乱光量の、そのある面に対する入射光量$\mathcal{P}_0$に対する割合を、$\alpha_0=\int_\mathrm{hemisphere}\frac{d\mathcal{P}}{\mathcal{P}_0 d\Omega} d\Omega_\mathrm{s}$ とおく。見てのとおり、積分は、その面から見える半球面全体に対して定義している。もちろんこの境界面の裏側にも散乱光が漏れないともかぎらないので、その場合は全球で積分するのかもしれない。
Lambart散乱の場合、BRDF=$\alpha_0/\pi$ (定数)になって、$dP/d\Omega/P_0=(\alpha_0/\pi)\cos\theta$である(まあ、これはちょっと話が逆といえば逆であるが)。もうちょっと数学メモをしておくと、$d\Omega_\mathrm{s}\equiv\sin\theta_\mathrm{s} d\theta_\mathrm{s} d\phi_\mathrm{s}$であり、hemisphereであれば$0\le\theta_s<\pi/2$かつ$0\le\phi_s<2\pi$である。覆われる範囲は、単純に立体角を定数に掛け算ってわけではなくて、 $\int_0^{2\pi}d\phi\int_{\theta_1}^{\theta_2}d\theta \frac{\alpha_0}{\pi} \cos\theta\,\sin\theta=\dots=\frac{\alpha_0}{2}(\cos(2\theta_1)-\cos(2\theta_2))$ となる。
あと、計算式はたぶん、(書きかけであるが) SLC_ov_v1.pdf の式(15)でよかろう。つまり、 $h_\mathrm{scatter}=G\frac{\sqrt{\mathcal{P}_\mathcal{s}}\,\delta\Phi_\mathrm{s}}{L\sqrt{\mathcal{P}_0}}$でよさそう。ここで、$L$は腕の長さで3km、$\mathcal{P}_\mathrm{s}$は散乱光のrecombineするパワー、$\mathcal{P}_0$は、干渉計への入射光でだいたい50W程度ということらしい。$G$は麻生さんの計算したファクター。
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
%matplotlib inline
readdata1 = np.genfromtxt('ScatteredLightNoiseCouplingBRSE.dat', comments='#', delimiter=',')
freq1 = np.array([readdata1[:,0]]).transpose() # Frequency [Hz]
ETMX_HR1 = np.array([readdata1[:,1]]).transpose() # G of/from ETM HR [m/rad]
以下で読み込んでいる"Kamioka_Seismic.txt"は、たとえば pub/Report/KAGRA/BRT/TMS_DD/01_reduct/01_seis にあるやつで、もともとの加速度データからなおしたもの。
readdata3 = np.loadtxt('Kamioka_Seismic.txt', comments='#', delimiter='\t')
freq3 = np.array([readdata3[:,0]]).transpose()
east3 = np.array([readdata3[:,1]]).transpose()
vert3 = np.array([readdata3[:,3]]).transpose()
from scipy import interpolate
ff1 = interpolate.interp1d(freq1.transpose()[0],ETMX_HR1.transpose()[0])
intpETMX_HR1 = ff1(freq3[132:])
readdata4 = np.genfromtxt('BW2009_VRSEB.dat', comments='#', delimiter=None)
freq4 = np.array([readdata4[:,0]]).transpose()
hRSEB = np.array([readdata4[:,1]]).transpose()
P0 = 50 # Input power to the main interferometer (W)
L0 = 3e3 # arm length (m)
lambda0 = 1064e-9 # wavelength (m)
Parm = 0.5e6 #[W] ... this should be calculated from P0, but the order of mag would be in this level.
alpha0 = 100e-6 # the total loss by point defects at a mirror.
Psc = alpha0*Parm
Psc
50.0
As described here; let us assume the power loss by point defects on a mirror is in order of 100ppm. Then, the intra-arm power would be 500MW, so this scattered power would be 500MW x 100ppm=50kW.
This is the most uncertain part. How much the recombination is?
The recombination is a two-step process; (1) a part of the scattered light from the mirror will illuminate the cicumstances anyhow, and a secondary scattering occurs at the wide-angle baffle or any inner-wall surfaces, and then a part of the scondary scattered light will come back to the main mirror, and (2) the main mirror will scatter a part of the coming-back stray light to recombine it to the main mode of the arm cavity.
#Prc = 3e-10*(alpha0/np.pi)*10e-6 * Psc
Prc = 10e-6*10e-6*Psc
うーん、3e-10 srをいれてみたけど、わからん。これは、いちおう、main mirrorから見たbeam waistの立体角(SoildAngleMemo参照。)ていうか、だいたい、高反射率のミラーに散乱光がもどってきたら、そのまま再度ほとんどがspecular reflectionにされる可能性だってあるわけで、そこでの散乱成分のうちの再結合量、、、とか考えているのは100倍くらいunderestimateな可能性もあるわけよ。というか、さらによく考えたら、再結合時の散乱過程がかならずしもpoint defect状である必要はなくて、むしろpower low方式だったりすると、急激に中心にビーミングされるんですけど。えー、、、
ついでにいうなら、どうも光線で物事を考えがちだが、実際は波面なのだということを忘れると痛い目をみる。
Prc
5.000000000000001e-09
500kW中の、数ナノワットがcavity modeに再結合っていう設定は、そんなに妙でもない気がするけどね。
hsc1 = intpETMX_HR1/L0*np.sqrt(Prc/P0)*(2*2*np.pi/lambda0*east3[132:])
hsc1_sus = hsc1/(freq3[132:]**2)
Here, the "hsc1_sus" is, as shown above, only multipled by 1/f^2, which is a single pendulem having a 1-Hz resonance. Upconversion of the stray light noise is not considered here.
plt.clf() # Clear the current figure.
plt.rcdefaults() # Restore the default rc params.
pltparams = {'lines.linewidth': 1.0,
'axes.linewidth': 1.2,
'axes.labelsize': 20, # fontsize of the x and y labels
'xtick.major.size': 6, 'xtick.minor.size': 3,
'ytick.major.size': 6, 'ytick.minor.size': 3,
'xtick.major.width': 0.8, 'xtick.minor.width': 0.8,
'ytick.major.width': 0.8, 'ytick.minor.width': 0.8,
'xtick.labelsize': 20, 'ytick.labelsize': 20,
'xtick.major.pad': 6, 'xtick.minor.pad': 6,
'ytick.major.pad': 4, 'ytick.minor.pad': 4,
'legend.fontsize' : 18,
'font.family': 'serif'}
plt.rcParams.update(pltparams)
plt.rcParams['text.usetex'] = True
plt.rcParams['font.serif'] = 'Computer Modern'
<matplotlib.figure.Figure at 0x11014bc10>
plt.xlabel(r'Frequency $[\mathrm{Hz}]$')
plt.ylabel(r'Strain $[\mathrm{1/Hz^{1/2}]$')
#plt.ylim(1e-8,1e-5)
plt.xlim(1, 1e3)
plt.grid()
#plt.loglog(freq4, hRSEB, color='sage', label=r'RSE B')
plt.loglog(freq4, hRSEB, color='grey', label=r'BRSE')
plt.loglog(freq4, hRSEB/100., color='black',label=r'BRSE/100')
plt.loglog(freq3[132:], hsc1, color='salmon', label=r'Noise w/ WAB')
plt.loglog(freq3[132:], hsc1_sus, color='sage', label=r'Noise w/Suspended WAB')
#plt.tight_layout(pad=0.2)
plt.legend(loc='upper right', numpoints=1, fontsize=12)
plt.show()