1997年にSELの遠視野像を測定してミルククラウンを見つた時に、何とか垂直共振器のモード解析を完結させたいと感じました。この思いはずっと心の奥底にあったのですが、FTTH用受光素子の開発、知財戦略担当、技術戦略(という名の下で開発途上品を見込み顧客に売込む仕事)に忙殺され、研究開発に従事した20年に匹敵する18年の歳月が流れました。2015年になって定年まであと2年になると、いわゆる窓際族の仲間入りです。会社で自由に使える時間ができたので、やり残した解析を仕上げて退職講演のネタにしようと思い立ちました。
18年の歳月はプログラミングにとって無駄ではありませんでした。1999年に制定されたC言語規格C99で複素数型が導入され、2015年にはCで何のストレスもなく複素数型と複素関数が使えるようになっていたのです。こうなればFORTRANをCに移植するのは造作もないことで、そのコードref2.cを以下に示します。一方、ハードウエアとしてはSun WSの時代は過ぎ去り、Windows上の開発環境であるMinGWを使ってCをコンパイルしました。MinGWはコンパイル結果を*.exeファイルにしてくれます。因みに本稿執筆時には、Ubuntu上で動作確認をしています。
$ gcc ref2.c -o ref2_c -lm # -lmはUbuntuで<math.h>を読込むのに必要なオプション $ ./ref2_cコードの表示にはPrism.jsを使用しています。
/*
---------------------------------------------------------
Calculation of phase condition for a vertical cavity
* Converted from REF2.F of FORTRAN version.
* In REF2.F, GAB_LOG = LOG(ABS(CG)) where LOG means ln.
Here chaged to gab_dB = 20.0*log10(cabs(cg)).
i=0,1,2,...,nc(QW),nc+1,...,nl
<--------------------------> light
since 2015/8/18
by K. Matsuda
---------------------------------------------------------
*/
/* header files */
#include <stdio.h>
#include <complex.h>
#include <math.h>
/* macros */
#define N_ARY 150
/* main */
int main(void){
int spflg, nl, nc, i, imax, i_wl;
// (spflg: =0 for s-wave, =1 for p-wave)
double wl, tht0, wl_s, wl_e, dwl, dn, wlin, tht1, tht2;
double phi1, gab_dB, gph, ss, t1, t2, tt;
double n[N_ARY], l[N_ARY], a[N_ARY], nw[N_ARY];
double complex crr, cr, cwk1, cwk2, cwk3, crr1, crr2, cg;
double complex cn[N_ARY];
FILE *fp;
char *ifname = "ref_read.tsv";
char *ofname = "ref2_out.tsv";
printf("start\n");
printf("reading...\n");
fp = fopen(ifname, "r");
if(fp == NULL){
printf("Error: cannot open the file '%s'\n", ifname);
return -1;
}
fscanf(fp, "%lf\t%lf\t%d\n", &wl, &tht0, &spflg);
fscanf(fp, "%d\t%d\n", &nl, &nc);
fscanf(fp, "%lf\n", &n[0]);
for(i=1; i<nl+1; i++){
fscanf(fp, "%lf\t%lf\t%lf\n", &n[i], &l[i], &a[i]);
}
fscanf(fp, "%lf\n", &n[nl+1]);
fscanf(fp, "%lf\t%lf\t%lf\n", &wl_s, &wl_e, &dwl);
fscanf(fp, "%lf\n", &dn);
fclose(fp);
printf("calc...\n");
fp = fopen(ofname, "w");
if(spflg == 0){
fprintf(fp, "dn\ttht0\tS-wave\n");
}else{
fprintf(fp, "dn\ttht0\tP-wave\n");
}
fprintf(fp, "%9.3e\t%6.3f\n", dn, tht0);
fprintf(fp, "wavelength\tgab_dB\tgph\tss\tt1\tt2\ttt\n");
tht0 = tht0*M_PI/180.0;
for(i=1; i<nl+1; i++){
if(l[i]<5.0){
l[i] = wl*l[i]/n[i];
}
}
imax = (int)(wl_e - wl_s)/dwl;
for(i_wl=0; i_wl<imax+1; i_wl++){
wlin = wl_s + i_wl*dwl;
nw[0] = (n[0] - 7.4e-4*(wlin-wl))*(1.0 + dn);
cn[0] = nw[0] + I*0.0;
for(i=1; i<nl; i++){
nw[i] = (n[i] - 7.4e-4*(wlin - wl))*(1.0 + dn);
cn[i] = nw[i] - I*(a[i]*(wlin/1.0e7)/(4.0*M_PI));
}
nw[nl] = n[nl] - 7.4e-4*(wlin-wl);
cn[nl] = nw[nl] - I*(a[nl]*(wlin/1.0e7)/(4.0*M_PI));
nw[nl+1] = n[nl+1];
cn[nl+1] = nw[nl+1] + I*0.0;
crr = 0.0 + I*0.0;
for(i=0; i<nc; i++){
tht1 = asin(sin(tht0)*nw[0]/nw[i]);
tht2 = asin(sin(tht0)*nw[0]/nw[i+1]);
if(spflg == 0){
cr = (cn[i+1]*cos(tht2) - cn[i]*cos(tht1))/
(cn[i+1]*cos(tht2) + cn[i]*cos(tht1));
}else{
cr = (cn[i]*cos(tht2) - cn[i+1]*cos(tht1))/
(cn[i]*cos(tht2) + cn[i+1]*cos(tht1));
}
if(i == 0){
crr = cr;
}else{
cwk3 = I*4.0*M_PI*cn[i]*l[i]*cos(tht1)/wlin;
cwk1 = cr + crr*cexp(cwk3);
cwk2 = 1.0 + cr*crr*cexp(cwk3);
crr = cwk1/cwk2;
}
}
crr1 = crr;
crr = 0.0 + I*0.0;
for(i=0; i<nl-nc+1; i++){
tht1 = asin(sin(tht0)*nw[0]/nw[nl-i+1]);
tht2 = asin(sin(tht0)*nw[0]/nw[nl-i]);
if(spflg == 0){
cr = (cn[nl-i]*cos(tht2) - cn[nl-i+1]*cos(tht1))/
(cn[nl-i]*cos(tht2) + cn[nl-i+1]*cos(tht1));
}else{
cr = (cn[nl-i+1]*cos(tht2) - cn[nl-i]*cos(tht1))/
(cn[nl-i+1]*cos(tht2) + cn[nl-i]*cos(tht1));
}
if(i == 0){
crr = cr;
}else{
cwk3 = I*4.0*M_PI*cn[nl-i+1]*l[nl-i+1]*cos(tht1)/wlin;
cwk1 = cr + crr*cexp(cwk3);
cwk2 = 1.0 + cr*crr*cexp(cwk3);
crr = cwk1/cwk2;
}
}
crr2 = crr;
tht1 = asin(sin(tht0)*nw[0]/nw[nc]);
phi1 = 4.0*M_PI*nw[nc]*l[nc]*cos(tht1)/wlin;
cg = 1.0/(crr1*crr2*cexp(I*phi1));
gab_dB = 20.0*log10(cabs(cg));
gph = carg(cg);
ss = cabs(cpow(1.0/(1.0 - 1.0/cg), 2.0));
t1 = 1.0 - cabs(cpow(crr1, 2.0));
t2 = 1.0 - cabs(cpow(crr2, 2.0));
tt = t1*t2*ss;
fprintf(fp, "%9.4f\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\n",
wlin, gab_dB, gph, ss, t1, t2, tt);
}
fclose(fp);
printf("end.\n");
return 0;
}
複素数型は"double complex"で宣言し、複素指数関数はcexp()です。「4.2 REF2.Fの逐行解説」で書いた「LOGが実は自然対数」という件に関しては、133行目で常用対数log10()を取って20倍したデシベル表示をgab_dBとしました。因みに20*log10()はLOG()に対して20*log10(e)(≒8.6859)倍になります。出力ファイルをCSVからTSVに変更してファイル名をref2_out.tsvにしていますが、「4.3 数値解析の結果」に示したREF.OUTと同じ条件で得られた計算結果を以下に示します。波長980nmで比較すると、3.59153e-03は0.41350E-03の8.6857倍なので、数値計算の精度において両者で同じ結果が得られています。
dn tht0 S-wave
0.000e+00 0.000
wavelength gab_dB gph ss t1 t2 tt
980.0000 3.59153e-03 -9.58746e-02 1.08917e+02 6.40416e-04 1.86342e-04 1.29978e-05
980.0100 3.62159e-03 -9.52844e-02 1.10270e+02 6.40412e-04 1.93266e-04 1.36481e-05
980.0200 3.66794e-03 -9.46932e-02 1.11651e+02 6.40408e-04 2.03940e-04 1.45822e-05
980.0300 3.73388e-03 -9.41005e-02 1.13061e+02 6.40405e-04 2.19123e-04 1.58656e-05
980.0400 3.82444e-03 -9.35057e-02 1.14504e+02 6.40402e-04 2.39974e-04 1.75970e-05
980.0500 3.94724e-03 -9.29082e-02 1.15982e+02 6.40398e-04 2.68247e-04 1.99240e-05
980.0600 4.11380e-03 -9.23075e-02 1.17498e+02 6.40396e-04 3.06589e-04 2.30693e-05
980.0700 4.34173e-03 -9.17028e-02 1.19054e+02 6.40393e-04 3.59057e-04 2.73750e-05
980.0800 4.65845e-03 -9.10936e-02 1.20654e+02 6.40390e-04 4.31958e-04 3.33756e-05
980.0900 5.10719e-03 -9.04801e-02 1.22300e+02 6.40388e-04 5.35237e-04 4.19196e-05
980.1000 5.75592e-03 -8.98643e-02 1.23989e+02 6.40386e-04 6.84525e-04 5.43518e-05
980.1100 6.70642e-03 -8.92534e-02 1.25702e+02 6.40385e-04 9.03212e-04 7.27063e-05
980.1200 8.08281e-03 -8.86676e-02 1.27383e+02 6.40383e-04 1.21980e-03 9.95038e-05
980.1300 9.91876e-03 -8.81519e-02 1.28897e+02 6.40382e-04 1.64194e-03 1.35531e-04
980.1400 1.17950e-02 -8.77717e-02 1.30033e+02 6.40381e-04 2.07317e-03 1.72635e-04
980.1500 1.25686e-02 -8.75284e-02 1.30764e+02 6.40380e-04 2.25090e-03 1.88488e-04
980.1600 1.15446e-02 -8.72705e-02 1.31528e+02 6.40379e-04 2.01562e-03 1.69770e-04
980.1700 9.61507e-03 -8.68662e-02 1.32734e+02 6.40379e-04 1.57213e-03 1.33631e-04
980.1800 7.83998e-03 -8.63355e-02 1.34349e+02 6.40378e-04 1.16396e-03 1.00141e-04
980.1900 6.53615e-03 -8.57438e-02 1.36193e+02 6.40378e-04 8.64047e-04 7.53578e-05
980.2000 5.64000e-03 -8.51314e-02 1.38146e+02 6.40379e-04 6.57859e-04 5.81981e-05
980.2100 5.02768e-03 -8.45157e-02 1.40157e+02 6.40379e-04 5.16948e-04 4.63979e-05
980.2200 4.60287e-03 -8.39029e-02 1.42205e+02 6.40380e-04 4.19177e-04 3.81724e-05
980.2300 4.30208e-03 -8.32945e-02 1.44284e+02 6.40380e-04 3.49944e-04 3.23337e-05
980.2400 4.08503e-03 -8.26906e-02 1.46395e+02 6.40382e-04 2.99981e-04 2.81227e-05
980.2500 3.92611e-03 -8.20905e-02 1.48539e+02 6.40383e-04 2.63399e-04 2.50550e-05
980.2600 3.80886e-03 -8.14936e-02 1.50720e+02 6.40384e-04 2.36404e-04 2.28174e-05
980.2700 3.72245e-03 -8.08993e-02 1.52940e+02 6.40386e-04 2.16512e-04 2.12053e-05
980.2800 3.65976e-03 -8.03070e-02 1.55202e+02 6.40388e-04 2.02078e-04 2.00844e-05
980.2900 3.61604e-03 -7.97161e-02 1.57510e+02 6.40390e-04 1.92011e-04 1.93676e-05
980.3000 3.58823e-03 -7.91262e-02 1.59865e+02 6.40393e-04 1.85604e-04 1.90015e-05
980.3100 3.57446e-03 -7.85370e-02 1.62271e+02 6.40395e-04 1.82433e-04 1.89580e-05
980.3200 3.57386e-03 -7.79479e-02 1.64732e+02 6.40398e-04 1.82291e-04 1.92306e-05
980.3300 3.58638e-03 -7.73587e-02 1.67250e+02 6.40401e-04 1.85170e-04 1.98330e-05
980.3400 3.61282e-03 -7.67690e-02 1.69828e+02 6.40404e-04 1.91255e-04 2.08007e-05
980.3500 3.65494e-03 -7.61782e-02 1.72472e+02 6.40408e-04 2.00948e-04 2.21952e-05
980.3600 3.71567e-03 -7.55861e-02 1.75184e+02 6.40412e-04 2.14926e-04 2.41125e-05
980.3700 3.79956e-03 -7.49921e-02 1.77971e+02 6.40416e-04 2.34234e-04 2.66968e-05
980.3800 3.91348e-03 -7.43955e-02 1.80837e+02 6.40420e-04 2.60452e-04 3.01633e-05
980.3900 4.06777e-03 -7.37959e-02 1.83789e+02 6.40424e-04 2.95966e-04 3.48360e-05
980.4000 4.27826e-03 -7.31925e-02 1.86834e+02 6.40429e-04 3.44412e-04 4.12102e-05
980.4100 4.56941e-03 -7.25846e-02 1.89980e+02 6.40434e-04 4.11423e-04 5.00575e-05
980.4200 4.97972e-03 -7.19723e-02 1.93231e+02 6.40439e-04 5.05851e-04 6.26005e-05
980.4300 5.56987e-03 -7.13569e-02 1.96587e+02 6.40444e-04 6.41656e-04 8.07865e-05
980.4400 6.43255e-03 -7.07438e-02 2.00022e+02 6.40449e-04 8.40143e-04 1.07626e-04
980.4500 7.69031e-03 -7.01489e-02 2.03447e+02 6.40455e-04 1.12946e-03 1.47168e-04
980.4600 9.42176e-03 -6.96096e-02 2.06634e+02 6.40461e-04 1.52761e-03 2.02165e-04
980.4700 1.13704e-02 -6.91900e-02 2.09170e+02 6.40467e-04 1.97550e-03 2.64651e-04
980.4800 1.25443e-02 -6.89208e-02 2.10818e+02 6.40473e-04 2.24522e-03 3.03157e-04
980.4900 1.19478e-02 -6.86847e-02 2.12263e+02 6.40480e-04 2.10816e-03 2.86605e-04
980.5000 1.01244e-02 -6.83209e-02 2.14507e+02 6.40487e-04 1.68911e-03 2.32064e-04
980.5100 8.25401e-03 -6.78163e-02 2.17684e+02 6.40494e-04 1.25906e-03 1.75545e-04
980.5200 6.82896e-03 -6.72353e-02 2.21437e+02 6.40501e-04 9.31286e-04 1.32085e-04
980.5300 5.84055e-03 -6.66261e-02 2.25486e+02 6.40508e-04 7.03874e-04 1.01657e-04
980.5400 5.16601e-03 -6.60107e-02 2.29696e+02 6.40516e-04 5.48646e-04 8.07188e-05
980.5500 4.70018e-03 -6.53970e-02 2.34015e+02 6.40524e-04 4.41430e-04 6.61670e-05
980.5600 4.37202e-03 -6.47876e-02 2.38429e+02 6.40532e-04 3.65891e-04 5.58796e-05
980.5700 4.13626e-03 -6.41828e-02 2.42938e+02 6.40540e-04 3.11615e-04 4.84908e-05
980.5800 3.96417e-03 -6.35820e-02 2.47545e+02 6.40549e-04 2.71993e-04 4.31286e-05
980.5900 3.83734e-03 -6.29845e-02 2.52259e+02 6.40558e-04 2.42787e-04 3.92311e-05
980.6000 3.74373e-03 -6.23898e-02 2.57087e+02 6.40567e-04 2.21230e-04 3.64325e-05
980.6100 3.67541e-03 -6.17971e-02 2.62038e+02 6.40576e-04 2.05493e-04 3.44930e-05
980.6200 3.62710e-03 -6.12061e-02 2.67120e+02 6.40585e-04 1.94362e-04 3.32579e-05
980.6300 3.59536e-03 -6.06162e-02 2.72342e+02 6.40595e-04 1.87044e-04 3.26319e-05
980.6400 3.57804e-03 -6.00270e-02 2.77713e+02 6.40605e-04 1.83047e-04 3.25648e-05
980.6500 3.57402e-03 -5.94381e-02 2.83241e+02 6.40615e-04 1.82111e-04 3.30438e-05
980.6600 3.58304e-03 -5.88491e-02 2.88937e+02 6.40625e-04 1.84178e-04 3.40913e-05
980.6700 3.60567e-03 -5.82597e-02 2.94811e+02 6.40635e-04 1.89378e-04 3.57671e-05
980.6800 3.64339e-03 -5.76695e-02 3.00876e+02 6.40646e-04 1.98051e-04 3.81753e-05
980.6900 3.69879e-03 -5.70779e-02 3.07144e+02 6.40657e-04 2.10793e-04 4.14785e-05
980.7000 3.77591e-03 -5.64846e-02 3.13630e+02 6.40668e-04 2.28535e-04 4.59202e-05
980.7100 3.88089e-03 -5.58890e-02 3.20351e+02 6.40680e-04 2.52691e-04 5.18630e-05
980.7200 4.02299e-03 -5.52904e-02 3.27326e+02 6.40691e-04 2.85391e-04 5.98509e-05
980.7300 4.21627e-03 -5.46883e-02 3.34577e+02 6.40703e-04 3.29870e-04 7.07124e-05
980.7400 4.48239e-03 -5.40818e-02 3.42127e+02 6.40715e-04 3.91112e-04 8.57342e-05
980.7500 4.85530e-03 -5.34709e-02 3.49997e+02 6.40727e-04 4.76929e-04 1.06953e-04
980.7600 5.38858e-03 -5.28562e-02 3.58195e+02 6.40740e-04 5.99642e-04 1.37624e-04
980.7700 6.16524e-03 -5.22417e-02 3.66685e+02 6.40753e-04 7.78338e-04 1.82874e-04
980.7800 7.30185e-03 -5.16393e-02 3.75306e+02 6.40765e-04 1.03980e-03 2.50054e-04
980.7900 8.90548e-03 -5.10794e-02 3.83595e+02 6.40779e-04 1.40858e-03 3.46229e-04
980.8000 1.08584e-02 -5.06202e-02 3.90592e+02 6.40792e-04 1.85752e-03 4.64914e-04
980.8100 1.23801e-02 -5.03137e-02 3.95357e+02 6.40806e-04 2.20717e-03 5.59179e-04
980.8200 1.22955e-02 -5.00880e-02 3.98926e+02 6.40819e-04 2.18772e-03 5.59266e-04
980.8300 1.06834e-02 -4.97680e-02 4.04071e+02 6.40833e-04 1.81724e-03 4.70561e-04
980.8400 8.74305e-03 -4.92969e-02 4.11817e+02 6.40848e-04 1.37117e-03 3.61868e-04
980.8500 7.18297e-03 -4.87313e-02 4.21409e+02 6.40862e-04 1.01236e-03 2.73403e-04
980.8600 6.08417e-03 -4.81271e-02 4.32033e+02 6.40877e-04 7.59561e-04 2.10307e-04
980.8700 5.33383e-03 -4.75123e-02 4.43266e+02 6.40892e-04 5.86890e-04 1.66727e-04
980.8800 4.81794e-03 -4.68979e-02 4.54939e+02 6.40907e-04 4.68150e-04 1.36500e-04
980.8900 4.45654e-03 -4.62874e-02 4.67005e+02 6.40922e-04 3.84955e-04 1.15222e-04
980.9000 4.19821e-03 -4.56814e-02 4.79466e+02 6.40937e-04 3.25477e-04 1.00022e-04
980.9100 4.01036e-03 -4.50797e-02 4.92342e+02 6.40953e-04 2.82220e-04 8.90598e-05
980.9200 3.87216e-03 -4.44815e-02 5.05665e+02 6.40969e-04 2.50392e-04 8.11561e-05
980.9300 3.77009e-03 -4.38862e-02 5.19470e+02 6.40985e-04 2.26879e-04 7.55446e-05
980.9400 3.69523e-03 -4.32932e-02 5.33792e+02 6.41002e-04 2.09629e-04 7.17271e-05
980.9500 3.64166e-03 -4.27019e-02 5.48672e+02 6.41018e-04 1.97279e-04 6.93849e-05
980.9600 3.60547e-03 -4.21118e-02 5.64150e+02 6.41035e-04 1.88932e-04 6.83254e-05
980.9700 3.58420e-03 -4.15226e-02 5.80270e+02 6.41052e-04 1.84018e-04 6.84517e-05
980.9800 3.57645e-03 -4.09338e-02 5.97079e+02 6.41070e-04 1.82217e-04 6.97471e-05
980.9900 3.58173e-03 -4.03450e-02 6.14629e+02 6.41087e-04 1.83414e-04 7.22706e-05
981.0000 3.60035e-03 -3.97559e-02 6.32975e+02 6.41105e-04 1.87684e-04 7.61628e-05
981.0100 3.63353e-03 -3.91661e-02 6.52180e+02 6.41123e-04 1.95304e-04 8.16621e-05
981.0200 3.68349e-03 -3.85751e-02 6.72314e+02 6.41141e-04 2.06787e-04 8.91353e-05
981.0300 3.75380e-03 -3.79825e-02 6.93453e+02 6.41159e-04 2.22956e-04 9.91292e-05
981.0400 3.84991e-03 -3.73877e-02 7.15689e+02 6.41178e-04 2.45062e-04 1.12455e-04
981.0500 3.98001e-03 -3.67902e-02 7.39122e+02 6.41197e-04 2.74991e-04 1.30325e-04
981.0600 4.15651e-03 -3.61893e-02 7.63870e+02 6.41216e-04 3.15599e-04 1.54582e-04
981.0700 4.39842e-03 -3.55843e-02 7.90063e+02 6.41235e-04 3.71265e-04 1.88089e-04
981.0800 4.73544e-03 -3.49747e-02 8.17836e+02 6.41255e-04 4.48814e-04 2.35377e-04
981.0900 5.21433e-03 -3.43611e-02 8.47301e+02 6.41274e-04 5.59008e-04 3.03738e-04
981.1000 5.90831e-03 -3.37459e-02 8.78454e+02 6.41294e-04 7.18680e-04 4.04867e-04
981.1100 6.92477e-03 -3.31380e-02 9.10926e+02 6.41314e-04 9.52514e-04 5.56449e-04
981.1200 8.38468e-03 -3.25608e-02 9.43380e+02 6.41335e-04 1.28827e-03 7.79434e-04
981.1300 1.02770e-02 -3.20643e-02 9.72563e+02 6.41355e-04 1.72332e-03 1.07494e-03
981.1400 1.20580e-02 -3.17118e-02 9.93956e+02 6.41376e-04 2.13259e-03 1.35953e-03
981.1500 1.25330e-02 -3.14798e-02 1.00853e+03 6.41397e-04 2.24172e-03 1.45009e-03
981.1600 1.12674e-02 -3.12026e-02 1.02676e+03 6.41418e-04 1.95088e-03 1.28482e-03
981.1700 9.31203e-03 -3.07735e-02 1.05589e+03 6.41440e-04 1.50140e-03 1.01688e-03
981.1800 7.60955e-03 -3.02294e-02 1.09444e+03 6.41461e-04 1.10988e-03 7.79180e-04
981.1900 6.38019e-03 -2.96328e-02 1.13904e+03 6.41483e-04 8.27062e-04 6.04312e-04
981.2000 5.53752e-03 -2.90197e-02 1.18772e+03 6.41505e-04 6.33149e-04 4.82413e-04
981.2100 4.96036e-03 -2.84047e-02 1.23972e+03 6.41528e-04 5.00305e-04 3.97899e-04
981.2200 4.55842e-03 -2.77930e-02 1.29489e+03 6.41550e-04 4.07775e-04 3.38753e-04
981.2300 4.27275e-03 -2.71857e-02 1.35337e+03 6.41573e-04 3.42001e-04 2.96954e-04
981.2400 4.06597e-03 -2.65829e-02 1.41544e+03 6.41596e-04 2.94380e-04 2.67338e-04
981.2500 3.91426e-03 -2.59838e-02 1.48145e+03 6.41619e-04 2.59434e-04 2.46598e-04
981.2600 3.80222e-03 -2.53877e-02 1.55180e+03 6.41643e-04 2.33619e-04 2.32615e-04
981.2700 3.71974e-03 -2.47942e-02 1.62697e+03 6.41666e-04 2.14608e-04 2.24044e-04
981.2800 3.66012e-03 -2.42025e-02 1.70747e+03 6.41690e-04 2.00857e-04 2.20072e-04
981.2900 3.61890e-03 -2.36122e-02 1.79388e+03 6.41714e-04 1.91345e-04 2.20267e-04
981.3000 3.59323e-03 -2.30229e-02 1.88686e+03 6.41738e-04 1.85411e-04 2.24509e-04
981.3100 3.58142e-03 -2.24341e-02 1.98717e+03 6.41763e-04 1.82666e-04 2.32952e-04
981.3200 3.58268e-03 -2.18454e-02 2.09566e+03 6.41788e-04 1.82933e-04 2.46038e-04
981.3300 3.59711e-03 -2.12566e-02 2.21332e+03 6.41813e-04 1.86228e-04 2.64545e-04
981.3400 3.62561e-03 -2.06671e-02 2.34132e+03 6.41838e-04 1.92764e-04 2.89676e-04
981.3500 3.67006e-03 -2.00766e-02 2.48099e+03 6.41863e-04 2.02973e-04 3.23225e-04
981.3600 3.73358e-03 -1.94847e-02 2.63392e+03 6.41889e-04 2.17569e-04 3.67841e-04
981.3700 3.82093e-03 -1.88907e-02 2.80202e+03 6.41915e-04 2.37652e-04 4.27454e-04
981.3800 3.93932e-03 -1.82942e-02 2.98754e+03 6.41941e-04 2.64879e-04 5.07991e-04
981.3900 4.09960e-03 -1.76946e-02 3.19322e+03 6.41967e-04 3.01750e-04 6.18570e-04
981.4000 4.31838e-03 -1.70910e-02 3.42235e+03 6.41993e-04 3.52081e-04 7.73568e-04
981.4100 4.62134e-03 -1.64830e-02 3.67889e+03 6.42020e-04 4.21788e-04 9.96230e-04
981.4200 5.04894e-03 -1.58706e-02 3.96729e+03 6.42047e-04 5.20174e-04 1.32498e-03
981.4300 5.66481e-03 -1.52554e-02 4.29193e+03 6.42074e-04 6.61871e-04 1.82394e-03
981.4400 6.56523e-03 -1.46436e-02 4.65461e+03 6.42102e-04 8.69014e-04 2.59725e-03
981.4500 7.87346e-03 -1.40527e-02 5.04750e+03 6.42129e-04 1.16991e-03 3.79186e-03
981.4600 9.65121e-03 -1.35232e-02 5.43760e+03 6.42157e-04 1.57866e-03 5.51237e-03
981.4700 1.15795e-02 -1.31200e-02 5.75782e+03 6.42185e-04 2.02183e-03 7.47591e-03
981.4800 1.26018e-02 -1.28627e-02 5.97700e+03 6.42213e-04 2.25670e-03 8.66237e-03
981.4900 1.18318e-02 -1.26199e-02 6.21523e+03 6.42242e-04 2.07975e-03 8.30171e-03
981.5000 9.95859e-03 -1.22410e-02 6.62335e+03 6.42270e-04 1.64921e-03 7.01572e-03
981.5100 8.12088e-03 -1.17266e-02 7.23300e+03 6.42299e-04 1.22664e-03 5.69868e-03
981.5200 6.74021e-03 -1.11418e-02 8.02285e+03 6.42328e-04 9.09043e-04 4.68458e-03
981.5300 5.78530e-03 -1.05318e-02 8.98581e+03 6.42358e-04 6.89313e-04 3.97879e-03
981.5400 5.13286e-03 -9.91657e-03 1.01391e+04 6.42387e-04 5.39146e-04 3.51157e-03
981.5500 4.68123e-03 -9.30359e-03 1.15208e+04 6.42417e-04 4.35175e-04 3.22078e-03
981.5600 4.36229e-03 -8.69494e-03 1.31899e+04 6.42447e-04 3.61736e-04 3.06528e-03
981.5700 4.13267e-03 -8.09076e-03 1.52311e+04 6.42477e-04 3.08851e-04 3.02230e-03
981.5800 3.96480e-03 -7.49055e-03 1.77649e+04 6.42508e-04 2.70179e-04 3.08385e-03
981.5900 3.84097e-03 -6.89365e-03 2.09658e+04 6.42538e-04 2.41642e-04 3.25524e-03
981.6000 3.74958e-03 -6.29941e-03 2.50931e+04 6.42569e-04 2.20573e-04 3.55654e-03
981.6100 3.68297e-03 -5.70723e-03 3.05452e+04 6.42600e-04 2.05207e-04 4.02788e-03
981.6200 3.63604e-03 -5.11660e-03 3.79596e+04 6.42632e-04 1.94372e-04 4.74152e-03
981.6300 3.60546e-03 -4.52706e-03 4.84075e+04 6.42663e-04 1.87301e-04 5.82688e-03
981.6400 3.58919e-03 -3.93819e-03 6.38017e+04 6.42695e-04 1.83523e-04 7.52535e-03
981.6500 3.58616e-03 -3.34960e-03 8.78307e+04 6.42727e-04 1.82794e-04 1.03189e-02
981.6600 3.59618e-03 -2.76091e-03 1.28356e+05 6.42759e-04 1.85068e-04 1.52685e-02
981.6700 3.61987e-03 -2.17175e-03 2.04577e+05 6.42792e-04 1.90489e-04 2.50494e-02
981.6800 3.65877e-03 -1.58171e-03 3.73398e+05 6.42824e-04 1.99411e-04 4.78645e-02
981.6900 3.71553e-03 -9.90354e-04 8.59633e+05 6.42857e-04 2.12445e-04 1.17402e-01
981.7000 3.79429e-03 -3.97199e-04 2.86995e+06 6.42890e-04 2.30545e-04 4.25370e-01
981.7100 3.90135e-03 1.98313e-04 4.15000e+06 6.42923e-04 2.55155e-04 6.80788e-01
981.7200 4.04612e-03 7.96805e-04 1.17440e+06 6.42957e-04 2.88448e-04 2.17804e-01
981.7300 4.24296e-03 1.39895e-03 4.55662e+05 6.42991e-04 3.33724e-04 9.77767e-02
981.7400 4.51398e-03 2.00536e-03 2.33137e+05 6.43025e-04 3.96072e-04 5.93761e-02
981.7500 4.89379e-03 2.61632e-03 1.39694e+05 6.43059e-04 4.83454e-04 4.34294e-02
981.7600 5.43699e-03 3.23092e-03 9.23886e+04 6.43093e-04 6.08429e-04 3.61495e-02
981.7700 6.22791e-03 3.84502e-03 6.54139e+04 6.43128e-04 7.90382e-04 3.32510e-02
981.7800 7.38391e-03 4.44613e-03 4.88440e+04 6.43163e-04 1.05628e-03 3.31827e-02
981.7900 9.00867e-03 5.00311e-03 3.83440e+04 6.43198e-04 1.42989e-03 3.52652e-02
981.8000 1.09679e-02 5.45683e-03 3.19164e+04 6.43233e-04 1.88024e-03 3.86007e-02
981.8100 1.24540e-02 5.75758e-03 2.84455e+04 6.43269e-04 2.22169e-03 4.06526e-02
981.8200 1.23082e-02 5.98299e-03 2.64897e+04 6.43304e-04 2.18815e-03 3.72882e-02
981.8300 1.06657e-02 6.30693e-03 2.42516e+04 6.43340e-04 1.81069e-03 2.82505e-02
981.8400 8.72784e-03 6.78124e-03 2.13004e+04 6.43376e-04 1.36514e-03 1.87082e-02
981.8500 7.17823e-03 7.34818e-03 1.83038e+04 6.43413e-04 1.00872e-03 1.18796e-02
981.8600 6.08773e-03 7.95267e-03 1.57008e+04 6.43449e-04 7.57809e-04 7.65587e-03
981.8700 5.34254e-03 8.56732e-03 1.35627e+04 6.43486e-04 5.86300e-04 5.11689e-03
981.8800 4.82962e-03 9.18146e-03 1.18258e+04 6.43523e-04 4.68222e-04 3.56325e-03
981.8900 4.46991e-03 9.79169e-03 1.04067e+04 6.43560e-04 3.85393e-04 2.58111e-03
981.9000 4.21254e-03 1.03974e-02 9.23470e+03 6.43598e-04 3.26115e-04 1.93824e-03
981.9100 4.02525e-03 1.09989e-02 8.25539e+03 6.43636e-04 2.82964e-04 1.50352e-03
981.9200 3.88738e-03 1.15969e-02 7.42801e+03 6.43674e-04 2.51191e-04 1.20100e-03
981.9300 3.78553e-03 1.21919e-02 6.72194e+03 6.43712e-04 2.27705e-04 9.85276e-04
981.9400 3.71081e-03 1.27848e-02 6.11395e+03 6.43750e-04 2.10466e-04 8.28365e-04
981.9500 3.65735e-03 1.33758e-02 5.58620e+03 6.43789e-04 1.98121e-04 7.12507e-04
981.9600 3.62127e-03 1.39657e-02 5.12479e+03 6.43827e-04 1.89774e-04 6.26156e-04
981.9700 3.60009e-03 1.45547e-02 4.71875e+03 6.43866e-04 1.84861e-04 5.61653e-04
981.9800 3.59245e-03 1.51434e-02 4.35932e+03 6.43906e-04 1.83062e-04 5.13854e-04
981.9900 3.59783e-03 1.57320e-02 4.03945e+03 6.43945e-04 1.84262e-04 4.79300e-04
982.0000 3.61657e-03 1.63209e-02 3.75336e+03 6.43985e-04 1.88537e-04 4.55715e-04
982.0100 3.64987e-03 1.69105e-02 3.49631e+03 6.44025e-04 1.96162e-04 4.41700e-04
982.0200 3.69994e-03 1.75014e-02 3.26434e+03 6.44065e-04 2.07649e-04 4.36570e-04
982.0300 3.77034e-03 1.80938e-02 3.05416e+03 6.44105e-04 2.23815e-04 4.40288e-04
982.0400 3.86648e-03 1.86884e-02 2.86297e+03 6.44146e-04 2.45906e-04 4.53492e-04
982.0500 3.99651e-03 1.92857e-02 2.68841e+03 6.44187e-04 2.75798e-04 4.77636e-04
982.0600 4.17274e-03 1.98865e-02 2.52845e+03 6.44228e-04 3.16323e-04 5.15259e-04
982.0700 4.41405e-03 2.04913e-02 2.38139e+03 6.44269e-04 3.71826e-04 5.70477e-04
982.0800 4.74982e-03 2.11006e-02 2.24580e+03 6.44310e-04 4.49067e-04 6.49798e-04
982.0900 5.22634e-03 2.17141e-02 2.12060e+03 6.44352e-04 5.58693e-04 7.63406e-04
982.1000 5.91601e-03 2.23293e-02 2.00521e+03 6.44394e-04 7.17352e-04 9.26923e-04
982.1100 6.92525e-03 2.29375e-02 1.89998e+03 6.44436e-04 9.49504e-04 1.16259e-03
982.1200 8.37546e-03 2.35159e-02 1.80711e+03 6.44478e-04 1.28301e-03 1.49425e-03
982.1300 1.02638e-02 2.40155e-02 1.73181e+03 6.44521e-04 1.71712e-03 1.91663e-03
982.1400 1.20704e-02 2.43725e-02 1.68041e+03 6.44564e-04 2.13227e-03 2.30953e-03
982.1500 1.26097e-02 2.46053e-02 1.64849e+03 6.44607e-04 2.25613e-03 2.39743e-03
982.1600 1.13917e-02 2.48769e-02 1.61359e+03 6.44650e-04 1.97622e-03 2.05566e-03
982.1700 9.43546e-03 2.52996e-02 1.56123e+03 6.44693e-04 1.52653e-03 1.53648e-03
982.1800 7.71024e-03 2.58401e-02 1.49730e+03 6.44737e-04 1.12977e-03 1.09063e-03
982.1900 6.45824e-03 2.64352e-02 1.43100e+03 6.44781e-04 8.41722e-04 7.76640e-04
982.2000 5.59861e-03 2.70480e-02 1.36707e+03 6.44825e-04 6.43888e-04 5.67600e-04
982.2100 5.00966e-03 2.76630e-02 1.30705e+03 6.44869e-04 5.08311e-04 4.28442e-04
982.2200 4.59960e-03 2.82749e-02 1.25114e+03 6.44914e-04 4.13890e-04 3.33958e-04
982.2300 4.30827e-03 2.88823e-02 1.19910e+03 6.44959e-04 3.46789e-04 2.68196e-04
982.2400 4.09745e-03 2.94853e-02 1.15057e+03 6.45004e-04 2.98216e-04 2.21313e-04
982.2500 3.94279e-03 3.00845e-02 1.10521e+03 6.45049e-04 2.62568e-04 1.87189e-04
982.2600 3.82854e-03 3.06806e-02 1.06269e+03 6.45094e-04 2.36223e-04 1.61939e-04
982.2700 3.74436e-03 3.12742e-02 1.02274e+03 6.45140e-04 2.16799e-04 1.43047e-04
982.2800 3.68340e-03 3.18659e-02 9.85123e+02 6.45186e-04 2.02719e-04 1.28846e-04
982.2900 3.64109e-03 3.24562e-02 9.49624e+02 6.45232e-04 1.92934e-04 1.18216e-04
982.3000 3.61450e-03 3.30455e-02 9.16064e+02 6.45278e-04 1.86766e-04 1.10400e-04
982.3100 3.60186e-03 3.36343e-02 8.84282e+02 6.45325e-04 1.83810e-04 1.04891e-04
982.3200 3.60236e-03 3.42229e-02 8.54134e+02 6.45371e-04 1.83877e-04 1.01359e-04
982.3300 3.61600e-03 3.48116e-02 8.25494e+02 6.45418e-04 1.86970e-04 9.96155e-05
982.3400 3.64364e-03 3.54010e-02 7.98245e+02 6.45466e-04 1.93287e-04 9.95890e-05
982.3500 3.68709e-03 3.59913e-02 7.72281e+02 6.45513e-04 2.03242e-04 1.01320e-04
982.3600 3.74935e-03 3.65831e-02 7.47505e+02 6.45561e-04 2.17527e-04 1.04970e-04
982.3700 3.83504e-03 3.71768e-02 7.23829e+02 6.45609e-04 2.37206e-04 1.10849e-04
982.3800 3.95114e-03 3.77731e-02 7.01167e+02 6.45657e-04 2.63883e-04 1.19463e-04
982.3900 4.10814e-03 3.83725e-02 6.79443e+02 6.45705e-04 2.99975e-04 1.31605e-04
982.4000 4.32204e-03 3.89757e-02 6.58586e+02 6.45754e-04 3.49163e-04 1.48494e-04
982.4100 4.61759e-03 3.95833e-02 6.38535e+02 6.45802e-04 4.17142e-04 1.72016e-04
982.4200 5.03364e-03 4.01954e-02 6.19250e+02 6.45851e-04 5.12846e-04 2.05109e-04
982.4300 5.63130e-03 4.08106e-02 6.00739e+02 6.45900e-04 6.50334e-04 2.52341e-04
982.4400 6.50361e-03 4.14232e-02 5.83119e+02 6.45950e-04 8.50991e-04 3.20539e-04
982.4500 7.77283e-03 4.20174e-02 5.66757e+02 6.46000e-04 1.14290e-03 4.18444e-04
982.4600 9.51558e-03 4.25553e-02 5.52517e+02 6.46049e-04 1.54359e-03 5.50990e-04
982.4700 1.14719e-02 4.29732e-02 5.41796e+02 6.46100e-04 1.99320e-03 6.97729e-04
982.4800 1.26507e-02 4.32407e-02 5.35083e+02 6.46150e-04 2.26401e-03 7.82769e-04
982.4900 1.20595e-02 4.34747e-02 5.29365e+02 6.46200e-04 2.12813e-03 7.27982e-04
982.5000 1.02341e-02 4.38358e-02 5.20726e+02 6.46251e-04 1.70856e-03 5.74964e-04
982.5100 8.35237e-03 4.43383e-02 5.09009e+02 6.46302e-04 1.27588e-03 4.19731e-04
982.5200 6.91354e-03 4.49180e-02 4.95953e+02 6.46353e-04 9.44892e-04 3.02896e-04
982.5300 5.91314e-03 4.55266e-02 4.82772e+02 6.46405e-04 7.14682e-04 2.23028e-04
982.5400 5.22934e-03 4.61419e-02 4.69975e+02 6.46456e-04 5.57279e-04 1.69312e-04
982.5500 4.75661e-03 4.67553e-02 4.57715e+02 6.46508e-04 4.48433e-04 1.32699e-04
982.5600 4.42336e-03 4.73646e-02 4.46009e+02 6.46560e-04 3.71677e-04 1.07181e-04
982.5700 4.18379e-03 4.79694e-02 4.34831e+02 6.46613e-04 3.16481e-04 8.89841e-05
982.5800 4.00884e-03 4.85701e-02 4.24139e+02 6.46665e-04 2.76157e-04 7.57432e-05
982.5900 3.87982e-03 4.91674e-02 4.13895e+02 6.46718e-04 2.46403e-04 6.59556e-05
982.6000 3.78451e-03 4.97620e-02 4.04063e+02 6.46771e-04 2.24411e-04 5.86468e-05
982.6100 3.71486e-03 5.03545e-02 3.94612e+02 6.46824e-04 2.08322e-04 5.31731e-05
982.6200 3.66548e-03 5.09453e-02 3.85513e+02 6.46878e-04 1.96901e-04 4.91031e-05
982.6300 3.63285e-03 5.15350e-02 3.76742e+02 6.46931e-04 1.89336e-04 4.61461e-05
982.6400 3.61477e-03 5.21240e-02 3.68278e+02 6.46985e-04 1.85120e-04 4.41087e-05
982.6500 3.61007e-03 5.27126e-02 3.60101e+02 6.47039e-04 1.83983e-04 4.28680e-05
982.6600 3.61842e-03 5.33013e-02 3.52193e+02 6.47094e-04 1.85853e-04 4.23562e-05
982.6700 3.64035e-03 5.38905e-02 3.44538e+02 6.47148e-04 1.90846e-04 4.25524e-05
982.6800 3.67726e-03 5.44804e-02 3.37120e+02 6.47203e-04 1.99287e-04 4.34814e-05
982.6900 3.73161e-03 5.50716e-02 3.29924e+02 6.47258e-04 2.11745e-04 4.52174e-05
982.7000 3.80733e-03 5.56646e-02 3.22937e+02 6.47313e-04 2.29120e-04 4.78956e-05
982.7100 3.91031e-03 5.62598e-02 3.16145e+02 6.47369e-04 2.52772e-04 5.17329e-05
982.7200 4.04946e-03 5.68579e-02 3.09534e+02 6.47424e-04 2.84748e-04 5.70636e-05
982.7300 4.23825e-03 5.74596e-02 3.03093e+02 6.47480e-04 3.28148e-04 6.43979e-05
982.7400 4.49736e-03 5.80655e-02 2.96809e+02 6.47536e-04 3.87734e-04 7.45203e-05
982.7500 4.85911e-03 5.86759e-02 2.90676e+02 6.47593e-04 4.70937e-04 8.86490e-05
982.7600 5.37438e-03 5.92903e-02 2.84696e+02 6.47649e-04 5.89464e-04 1.08687e-04
982.7700 6.12223e-03 5.99052e-02 2.78899e+02 6.47706e-04 7.61489e-04 1.37559e-04
982.7800 7.21565e-03 6.05101e-02 2.73373e+02 6.47763e-04 1.01298e-03 1.79380e-04
982.7900 8.76904e-03 6.10776e-02 2.68343e+02 6.47820e-04 1.37018e-03 2.38189e-04
982.8000 1.07152e-02 6.15530e-02 2.64241e+02 6.47878e-04 1.81753e-03 3.11154e-04
982.8100 1.23792e-02 6.18779e-02 2.61491e+02 6.47935e-04 2.19984e-03 3.72718e-04
982.8200 1.25567e-02 6.21018e-02 2.59611e+02 6.47993e-04 2.24056e-03 3.76921e-04
982.8300 1.10849e-02 6.23987e-02 2.57136e+02 6.48051e-04 1.90233e-03 3.16998e-04
982.8400 9.11596e-03 6.28490e-02 2.53444e+02 6.48110e-04 1.44965e-03 2.38119e-04
982.8500 7.47346e-03 6.34043e-02 2.49002e+02 6.48168e-04 1.07187e-03 1.72995e-04
982.8600 6.30176e-03 6.40049e-02 2.44333e+02 6.48227e-04 8.02275e-04 1.27067e-04
982.8700 5.49924e-03 6.46190e-02 2.39698e+02 6.48286e-04 6.17558e-04 9.59641e-05
982.8800 4.94787e-03 6.52338e-02 2.35192e+02 6.48346e-04 4.90614e-04 7.48115e-05
982.8900 4.56237e-03 6.58451e-02 2.30840e+02 6.48405e-04 4.01828e-04 6.01446e-05
982.9000 4.28735e-03 6.64519e-02 2.26640e+02 6.48465e-04 3.38468e-04 4.97439e-05
982.9100 4.08768e-03 6.70543e-02 2.22583e+02 6.48525e-04 2.92446e-04 4.22147e-05
982.9200 3.94088e-03 6.76531e-02 2.18659e+02 6.48585e-04 2.58593e-04 3.66734e-05
982.9300 3.83238e-03 6.82488e-02 2.14858e+02 6.48645e-04 2.33555e-04 3.25498e-05
982.9400 3.75257e-03 6.88422e-02 2.11170e+02 6.48706e-04 2.15121e-04 2.94688e-05
982.9500 3.69506e-03 6.94338e-02 2.07588e+02 6.48767e-04 2.01822e-04 2.71806e-05
982.9600 3.65564e-03 7.00240e-02 2.04104e+02 6.48828e-04 1.92686e-04 2.55171e-05
982.9700 3.63159e-03 7.06133e-02 2.00712e+02 6.48889e-04 1.87088e-04 2.43663e-05
982.9800 3.62132e-03 7.12021e-02 1.97408e+02 6.48950e-04 1.84662e-04 2.36566e-05
982.9900 3.62417e-03 7.17908e-02 1.94185e+02 6.49012e-04 1.85255e-04 2.33474e-05
983.0000 3.64029e-03 7.23798e-02 1.91039e+02 6.49074e-04 1.88904e-04 2.34238e-05
Cへの移植は問題なくできたので、次はモード解析を完結させるために条件を変えての検討です。遠視野像のミルククラウンを眺めていて、「4.3 数値解析の結果」に書いた「斜めビームなので裏面反射光は垂直共振器に戻らない」という考えが間違っているのではないかと思いました。そこでまずやったのは、講演資料15頁の「① 斜め光線を仮定した数値解析」です。REF.RED改めref_read.tsvで、tht0が0°以外であっても外界が空気で裏面反射ありとしました。以下に示すのはtht0=1.0°の時のref2_out.tsvですが、講演資料に載せているのは0°、1.0°、1.5°に対する計算結果をまとめてグラフ化したものです。
dn tht0 S-wave
0.000e+00 1.000
wavelength gab_dB gph ss t1 t2 tt
980.0000 8.71064e-03 -8.71677e-02 1.31808e+02 6.38531e-04 1.36603e-03 1.14970e-04
980.0100 1.06540e-02 -8.66960e-02 1.33266e+02 6.38531e-04 1.81279e-03 1.54259e-04
980.0200 1.22702e-02 -8.63761e-02 1.34270e+02 6.38530e-04 2.18419e-03 1.87263e-04
980.0300 1.23508e-02 -8.61508e-02 1.34974e+02 6.38530e-04 2.20271e-03 1.89840e-04
980.0400 1.08207e-02 -8.58437e-02 1.35925e+02 6.38530e-04 1.85110e-03 1.60661e-04
980.0500 8.86546e-03 -8.53833e-02 1.37372e+02 6.38530e-04 1.40163e-03 1.22946e-04
980.0600 7.26506e-03 -8.48224e-02 1.39175e+02 6.38530e-04 1.03357e-03 9.18507e-05
980.0700 6.13319e-03 -8.42195e-02 1.41158e+02 6.38531e-04 7.73185e-04 6.96903e-05
980.0800 5.36086e-03 -8.36047e-02 1.43231e+02 6.38532e-04 5.95470e-04 5.44601e-05
980.0900 4.83105e-03 -8.29899e-02 1.45352e+02 6.38533e-04 4.73542e-04 4.39503e-05
980.1000 4.46081e-03 -8.23788e-02 1.47510e+02 6.38534e-04 3.88326e-04 3.65764e-05
980.1100 4.19673e-03 -8.17723e-02 1.49701e+02 6.38535e-04 3.27540e-04 3.13093e-05
980.1200 4.00503e-03 -8.11701e-02 1.51926e+02 6.38537e-04 2.83411e-04 2.74938e-05
980.1300 3.86416e-03 -8.05715e-02 1.54188e+02 6.38539e-04 2.50980e-04 2.47103e-05
980.1400 3.76014e-03 -7.99759e-02 1.56491e+02 6.38541e-04 2.27034e-04 2.26866e-05
980.1500 3.68381e-03 -7.93826e-02 1.58836e+02 6.38543e-04 2.09458e-04 2.12441e-05
980.1600 3.62905e-03 -7.87910e-02 1.61228e+02 6.38546e-04 1.96850e-04 2.02660e-05
980.1700 3.59185e-03 -7.82007e-02 1.63669e+02 6.38549e-04 1.88284e-04 1.96777e-05
980.1800 3.56967e-03 -7.76113e-02 1.66163e+02 6.38552e-04 1.83173e-04 1.94354e-05
980.1900 3.56103e-03 -7.70224e-02 1.68712e+02 6.38555e-04 1.81182e-04 1.95191e-05
980.2000 3.56539e-03 -7.64335e-02 1.71321e+02 6.38558e-04 1.82182e-04 1.99304e-05
980.2100 3.58302e-03 -7.58442e-02 1.73992e+02 6.38562e-04 1.86238e-04 2.06919e-05
980.2200 3.61507e-03 -7.52543e-02 1.76730e+02 6.38566e-04 1.93611e-04 2.18497e-05
980.2300 3.66369e-03 -7.46633e-02 1.79538e+02 6.38570e-04 2.04800e-04 2.34799e-05
980.2400 3.73236e-03 -7.40707e-02 1.82422e+02 6.38574e-04 2.20605e-04 2.56983e-05
980.2500 3.82639e-03 -7.34759e-02 1.85388e+02 6.38579e-04 2.42248e-04 2.86784e-05
980.2600 3.95380e-03 -7.28784e-02 1.88441e+02 6.38583e-04 2.71572e-04 3.26797e-05
980.2700 4.12671e-03 -7.22776e-02 1.91589e+02 6.38588e-04 3.11369e-04 3.80949e-05
980.2800 4.36372e-03 -7.16727e-02 1.94839e+02 6.38594e-04 3.65920e-04 4.55288e-05
980.2900 4.69386e-03 -7.10632e-02 1.98199e+02 6.38599e-04 4.41901e-04 5.59313e-05
980.3000 5.16293e-03 -7.04496e-02 2.01674e+02 6.38605e-04 5.49848e-04 7.08150e-05
980.3100 5.84282e-03 -6.98341e-02 2.05255e+02 6.38610e-04 7.06296e-04 9.25797e-05
980.3200 6.83987e-03 -6.92252e-02 2.08896e+02 6.38616e-04 9.35680e-04 1.24824e-04
980.3300 8.27707e-03 -6.86454e-02 2.12460e+02 6.38623e-04 1.26624e-03 1.71805e-04
980.3400 1.01571e-02 -6.81435e-02 2.15625e+02 6.38629e-04 1.69849e-03 2.33889e-04
980.3500 1.19672e-02 -6.77842e-02 2.17936e+02 6.38636e-04 2.11446e-03 2.94294e-04
980.3600 1.25147e-02 -6.75502e-02 2.19452e+02 6.38643e-04 2.24025e-03 3.13974e-04
980.3700 1.12979e-02 -6.72777e-02 2.21220e+02 6.38650e-04 1.96066e-03 2.77006e-04
980.3800 9.34366e-03 -6.68537e-02 2.24009e+02 6.38657e-04 1.51145e-03 2.16236e-04
980.3900 7.62577e-03 -6.63118e-02 2.27658e+02 6.38665e-04 1.11641e-03 1.62322e-04
980.4000 6.38308e-03 -6.57159e-02 2.31782e+02 6.38673e-04 8.30537e-04 1.22947e-04
980.4100 5.53195e-03 -6.51027e-02 2.36151e+02 6.38681e-04 6.34691e-04 9.57275e-05
980.4200 4.94985e-03 -6.44875e-02 2.40665e+02 6.38689e-04 5.00727e-04 7.69668e-05
980.4300 4.54509e-03 -6.38755e-02 2.45288e+02 6.38697e-04 4.07561e-04 6.38505e-05
980.4400 4.25779e-03 -6.32681e-02 2.50013e+02 6.38706e-04 3.41425e-04 5.45203e-05
980.4500 4.05005e-03 -6.26650e-02 2.54842e+02 6.38715e-04 2.93596e-04 4.77890e-05
980.4600 3.89775e-03 -6.20657e-02 2.59781e+02 6.38724e-04 2.58528e-04 4.28972e-05
980.4700 3.78532e-03 -6.14696e-02 2.64840e+02 6.38733e-04 2.32638e-04 3.93536e-05
980.4800 3.70257e-03 -6.08759e-02 2.70027e+02 6.38743e-04 2.13578e-04 3.68375e-05
980.4900 3.64272e-03 -6.02841e-02 2.75352e+02 6.38753e-04 1.99790e-04 3.51394e-05
980.5000 3.60130e-03 -5.96937e-02 2.80822e+02 6.38763e-04 1.90245e-04 3.41258e-05
980.5100 3.57542e-03 -5.91043e-02 2.86449e+02 6.38773e-04 1.84276e-04 3.37181e-05
980.5200 3.56336e-03 -5.85154e-02 2.92241e+02 6.38783e-04 1.81491e-04 3.38804e-05
980.5300 3.56436e-03 -5.79267e-02 2.98209e+02 6.38794e-04 1.81709e-04 3.46145e-05
980.5400 3.57846e-03 -5.73377e-02 3.04365e+02 6.38805e-04 1.84944e-04 3.59587e-05
980.5500 3.60657e-03 -5.67482e-02 3.10720e+02 6.38816e-04 1.91405e-04 3.79925e-05
980.5600 3.65056e-03 -5.61577e-02 3.17288e+02 6.38827e-04 2.01520e-04 4.08466e-05
980.5700 3.71351e-03 -5.55657e-02 3.24085e+02 6.38838e-04 2.16000e-04 4.47202e-05
980.5800 3.80017e-03 -5.49717e-02 3.31126e+02 6.38850e-04 2.35939e-04 4.99104e-05
980.5900 3.91771e-03 -5.43752e-02 3.38432e+02 6.38862e-04 2.62986e-04 5.68605e-05
980.6000 4.07697e-03 -5.37755e-02 3.46025e+02 6.38874e-04 2.99634e-04 6.62389e-05
980.6100 4.29448e-03 -5.31719e-02 3.53928e+02 6.38887e-04 3.49689e-04 7.90717e-05
980.6200 4.59593e-03 -5.25639e-02 3.62169e+02 6.38899e-04 4.19060e-04 9.69661e-05
980.6300 5.02174e-03 -5.19514e-02 3.70767e+02 6.38912e-04 5.17049e-04 1.22482e-04
980.6400 5.63566e-03 -5.13361e-02 3.79719e+02 6.38925e-04 6.58313e-04 1.59715e-04
980.6500 6.53434e-03 -5.07242e-02 3.88951e+02 6.38938e-04 8.65070e-04 2.14983e-04
980.6600 7.84183e-03 -5.01331e-02 3.98193e+02 6.38952e-04 1.16581e-03 2.96613e-04
980.6700 9.62050e-03 -4.96036e-02 4.06750e+02 6.38965e-04 1.57479e-03 4.09287e-04
980.6800 1.15481e-02 -4.92010e-02 4.13429e+02 6.38979e-04 2.01782e-03 5.33053e-04
980.6900 1.25585e-02 -4.89445e-02 4.17762e+02 6.38994e-04 2.24998e-03 6.00624e-04
980.7000 1.17694e-02 -4.87008e-02 4.21955e+02 6.39008e-04 2.06866e-03 5.57779e-04
980.7100 9.88925e-03 -4.83196e-02 4.28639e+02 6.39022e-04 1.63652e-03 4.48258e-04
980.7200 8.05733e-03 -4.78032e-02 4.37933e+02 6.39037e-04 1.21529e-03 3.40105e-04
980.7300 6.68615e-03 -4.72175e-02 4.48842e+02 6.39052e-04 8.99881e-04 2.58116e-04
980.7400 5.73974e-03 -4.66071e-02 4.60654e+02 6.39067e-04 6.82119e-04 2.00808e-04
980.7500 5.09383e-03 -4.59918e-02 4.73043e+02 6.39083e-04 5.33468e-04 1.61275e-04
980.7600 4.64700e-03 -4.53788e-02 4.85893e+02 6.39098e-04 4.30615e-04 1.33720e-04
980.7700 4.33157e-03 -4.47702e-02 4.99179e+02 6.39114e-04 3.57999e-04 1.14213e-04
980.7800 4.10454e-03 -4.41661e-02 5.12917e+02 6.39130e-04 3.05723e-04 1.00223e-04
980.7900 3.93861e-03 -4.35660e-02 5.27137e+02 6.39147e-04 2.67510e-04 9.01290e-05
980.8000 3.81623e-03 -4.29692e-02 5.41874e+02 6.39163e-04 2.39324e-04 8.28890e-05
980.8100 3.72597e-03 -4.23750e-02 5.57170e+02 6.39180e-04 2.18528e-04 7.78247e-05
980.8200 3.66023e-03 -4.17829e-02 5.73067e+02 6.39197e-04 2.03377e-04 7.44975e-05
980.8300 3.61398e-03 -4.11923e-02 5.89612e+02 6.39214e-04 1.92713e-04 7.26314e-05
980.8400 3.58395e-03 -4.06027e-02 6.06853e+02 6.39232e-04 1.85782e-04 7.20685e-05
980.8500 3.56812e-03 -4.00139e-02 6.24841e+02 6.39249e-04 1.82120e-04 7.27441e-05
980.8600 3.56547e-03 -3.94253e-02 6.43632e+02 6.39267e-04 1.81491e-04 7.46751e-05
980.8700 3.57581e-03 -3.88366e-02 6.63288e+02 6.39285e-04 1.83855e-04 7.79599e-05
980.8800 3.59981e-03 -3.82474e-02 6.83877e+02 6.39303e-04 1.89361e-04 8.27895e-05
980.8900 3.63903e-03 -3.76573e-02 7.05473e+02 6.39322e-04 1.98372e-04 8.94705e-05
980.9000 3.69617e-03 -3.70659e-02 7.28161e+02 6.39340e-04 2.11508e-04 9.84659e-05
980.9100 3.77544e-03 -3.64727e-02 7.52036e+02 6.39359e-04 2.29737e-04 1.10462e-04
980.9200 3.88320e-03 -3.58771e-02 7.77209e+02 6.39379e-04 2.54524e-04 1.26481e-04
980.9300 4.02904e-03 -3.52785e-02 8.03805e+02 6.39398e-04 2.88077e-04 1.48057e-04
980.9400 4.22756e-03 -3.46762e-02 8.31965e+02 6.39417e-04 3.33754e-04 1.77548e-04
980.9500 4.50129e-03 -3.40697e-02 8.61849e+02 6.39437e-04 3.96740e-04 2.18642e-04
980.9600 4.88558e-03 -3.34585e-02 8.93610e+02 6.39457e-04 4.85167e-04 2.77237e-04
980.9700 5.43626e-03 -3.28438e-02 9.27354e+02 6.39477e-04 6.11876e-04 3.62856e-04
980.9800 6.23953e-03 -3.22299e-02 9.62977e+02 6.39498e-04 7.96684e-04 4.90615e-04
980.9900 7.41450e-03 -3.16299e-02 9.99759e+02 6.39519e-04 1.06696e-03 6.82176e-04
981.0000 9.06148e-03 -3.10763e-02 1.03548e+03 6.39539e-04 1.44569e-03 9.57377e-04
981.0100 1.10224e-02 -3.06298e-02 1.06550e+03 6.39561e-04 1.89645e-03 1.29234e-03
981.0200 1.24437e-02 -3.03367e-02 1.08580e+03 6.39582e-04 2.22302e-03 1.54380e-03
981.0300 1.21881e-02 -3.01099e-02 1.10226e+03 6.39603e-04 2.16425e-03 1.52581e-03
981.0400 1.04927e-02 -2.97762e-02 1.12747e+03 6.39625e-04 1.77463e-03 1.27979e-03
981.0500 8.56903e-03 -2.92936e-02 1.16526e+03 6.39647e-04 1.33235e-03 9.93073e-04
981.0600 7.05318e-03 -2.87226e-02 1.21224e+03 6.39669e-04 9.83698e-04 7.62790e-04
981.0700 5.99221e-03 -2.81167e-02 1.26514e+03 6.39692e-04 7.39588e-04 5.98547e-04
981.0800 5.26831e-03 -2.75019e-02 1.32238e+03 6.39714e-04 5.72990e-04 4.84718e-04
981.0900 4.77004e-03 -2.68879e-02 1.38347e+03 6.39737e-04 4.58296e-04 4.05617e-04
981.1000 4.42041e-03 -2.62781e-02 1.44842e+03 6.39760e-04 3.77800e-04 3.50086e-04
981.1100 4.17009e-03 -2.56728e-02 1.51752e+03 6.39784e-04 3.20159e-04 3.10838e-04
981.1200 3.98785e-03 -2.50716e-02 1.59115e+03 6.39807e-04 2.78185e-04 2.83201e-04
981.1300 3.85369e-03 -2.44740e-02 1.66979e+03 6.39831e-04 2.47279e-04 2.64189e-04
981.1400 3.75461e-03 -2.38791e-02 1.75400e+03 6.39855e-04 2.24447e-04 2.51897e-04
981.1500 3.68204e-03 -2.32865e-02 1.84438e+03 6.39879e-04 2.07716e-04 2.45142e-04
981.1600 3.63028e-03 -2.26956e-02 1.94164e+03 6.39903e-04 1.95775e-04 2.43242e-04
981.1700 3.59557e-03 -2.21059e-02 2.04658e+03 6.39928e-04 1.87761e-04 2.45903e-04
981.1800 3.57557e-03 -2.15170e-02 2.16010e+03 6.39953e-04 1.83131e-04 2.53153e-04
981.1900 3.56896e-03 -2.09285e-02 2.28324e+03 6.39978e-04 1.81584e-04 2.65335e-04
981.2000 3.57531e-03 -2.03399e-02 2.41722e+03 6.40003e-04 1.83021e-04 2.83139e-04
981.2100 3.59502e-03 -1.97510e-02 2.56344e+03 6.40029e-04 1.87533e-04 3.07682e-04
981.2200 3.62936e-03 -1.91614e-02 2.72355e+03 6.40054e-04 1.95413e-04 3.40648e-04
981.2300 3.68065e-03 -1.85705e-02 2.89949e+03 6.40080e-04 2.07193e-04 3.84532e-04
981.2400 3.75255e-03 -1.79780e-02 3.09360e+03 6.40106e-04 2.23721e-04 4.43020e-04
981.2500 3.85068e-03 -1.73833e-02 3.30869e+03 6.40133e-04 2.46285e-04 5.21631e-04
981.2600 3.98347e-03 -1.67858e-02 3.54814e+03 6.40159e-04 2.76825e-04 6.28774e-04
981.2700 4.16368e-03 -1.61848e-02 3.81611e+03 6.40186e-04 3.18282e-04 7.77569e-04
981.2800 4.41094e-03 -1.55797e-02 4.11764e+03 6.40213e-04 3.75169e-04 9.89009e-04
981.2900 4.75588e-03 -1.49701e-02 4.45879e+03 6.40240e-04 4.54534e-04 1.29756e-03
981.3000 5.24684e-03 -1.43563e-02 4.84636e+03 6.40268e-04 5.67496e-04 1.76092e-03
981.3100 5.95937e-03 -1.37414e-02 5.28644e+03 6.40295e-04 7.31427e-04 2.47579e-03
981.3200 7.00343e-03 -1.31347e-02 5.77938e+03 6.40323e-04 9.71599e-04 3.59557e-03
981.3300 8.49848e-03 -1.25613e-02 6.30576e+03 6.40351e-04 1.31542e-03 5.31155e-03
981.3400 1.04126e-02 -1.20732e-02 6.80177e+03 6.40380e-04 1.75547e-03 7.64633e-03
981.3500 1.21464e-02 -1.17323e-02 7.17328e+03 6.40408e-04 2.15388e-03 9.89457e-03
981.3600 1.24912e-02 -1.15042e-02 7.45046e+03 6.40437e-04 2.23307e-03 1.06552e-02
981.3700 1.11290e-02 -1.12180e-02 7.85414e+03 6.40466e-04 1.92004e-03 9.65840e-03
981.3800 9.16736e-03 -1.07786e-02 8.53473e+03 6.40495e-04 1.46908e-03 8.03067e-03
981.3900 7.49681e-03 -1.02289e-02 9.49818e+03 6.40525e-04 1.08489e-03 6.60025e-03
981.4000 6.29951e-03 -9.63035e-03 1.07295e+04 6.40554e-04 8.09428e-04 5.56304e-03
981.4100 5.48019e-03 -9.01684e-03 1.22475e+04 6.40584e-04 6.20878e-04 4.87113e-03
981.4200 4.91874e-03 -8.40213e-03 1.41092e+04 6.40614e-04 4.91642e-04 4.44372e-03
981.4300 4.52729e-03 -7.79089e-03 1.64102e+04 6.40644e-04 4.01517e-04 4.22119e-03
981.4400 4.24873e-03 -7.18419e-03 1.92952e+04 6.40675e-04 3.37369e-04 4.17054e-03
981.4500 4.04688e-03 -6.58181e-03 2.29796e+04 6.40706e-04 2.90875e-04 4.28261e-03
981.4600 3.89869e-03 -5.98315e-03 2.77907e+04 6.40737e-04 2.56732e-04 4.57150e-03
981.4700 3.78924e-03 -5.38753e-03 3.42430e+04 6.40768e-04 2.31505e-04 5.07963e-03
981.4800 3.70872e-03 -4.79433e-03 4.31816e+04 6.40799e-04 2.12937e-04 5.89212e-03
981.4900 3.65062e-03 -4.20298e-03 5.60722e+04 6.40831e-04 1.99530e-04 7.16967e-03
981.5000 3.61064e-03 -3.61299e-03 7.56375e+04 6.40863e-04 1.90295e-04 9.22419e-03
981.5100 3.58601e-03 -3.02391e-03 1.07404e+05 6.40895e-04 1.84592e-04 1.27064e-02
981.5200 3.57510e-03 -2.43535e-03 1.63993e+05 6.40927e-04 1.82049e-04 1.91347e-02
981.5300 3.57721e-03 -1.84691e-03 2.79390e+05 6.40959e-04 1.82501e-04 3.26818e-02
981.5400 3.59245e-03 -1.25824e-03 5.70288e+05 6.40992e-04 1.85978e-04 6.79844e-02
981.5500 3.62181e-03 -6.68931e-04 1.61010e+06 6.41025e-04 1.92703e-04 1.98892e-01
981.5600 3.66721e-03 -7.85799e-05 5.42440e+06 6.41058e-04 2.03121e-04 7.06325e-01
981.5700 3.73183e-03 5.13270e-04 2.23291e+06 6.41091e-04 2.17965e-04 3.12016e-01
981.5800 3.82056e-03 1.10713e-03 7.04925e+05 6.41125e-04 2.38356e-04 1.07724e-01
981.5900 3.94074e-03 1.70359e-03 3.21891e+05 6.41159e-04 2.65988e-04 5.48955e-02
981.6000 4.10347e-03 2.30329e-03 1.80972e+05 6.41193e-04 3.03414e-04 3.52075e-02
981.6100 4.32570e-03 2.90691e-03 1.15024e+05 6.41227e-04 3.54535e-04 2.61493e-02
981.6200 4.63376e-03 3.51499e-03 7.91579e+04 6.41262e-04 4.25406e-04 2.15940e-02
981.6300 5.06907e-03 4.12748e-03 5.75820e+04 6.41296e-04 5.25556e-04 1.94073e-02
981.6400 5.69681e-03 4.74261e-03 4.36539e+04 6.41331e-04 6.69977e-04 1.87571e-02
981.6500 6.61530e-03 5.35381e-03 3.42219e+04 6.41366e-04 8.81268e-04 1.93428e-02
981.6600 7.94856e-03 5.94278e-03 2.76848e+04 6.41402e-04 1.18791e-03 2.10938e-02
981.6700 9.74988e-03 6.46744e-03 2.32346e+04 6.41437e-04 1.60207e-03 2.38764e-02
981.6800 1.16672e-02 6.86230e-03 2.04793e+04 6.41473e-04 2.04270e-03 2.68348e-02
981.6900 1.26099e-02 7.11359e-03 1.89991e+04 6.41509e-04 2.25926e-03 2.75361e-02
981.7000 1.17499e-02 7.36015e-03 1.78809e+04 6.41545e-04 2.06163e-03 2.36497e-02
981.7100 9.85103e-03 7.74707e-03 1.63309e+04 6.41582e-04 1.62518e-03 1.70279e-02
981.7200 8.03070e-03 8.26679e-03 1.44654e+04 6.41618e-04 1.20658e-03 1.11986e-02
981.7300 6.67427e-03 8.85373e-03 1.26714e+04 6.41655e-04 8.94547e-04 7.27326e-03
981.7400 5.73837e-03 9.46435e-03 1.11173e+04 6.41692e-04 6.79179e-04 4.84517e-03
981.7500 5.09898e-03 1.00794e-02 9.81554e+03 6.41729e-04 5.32008e-04 3.35107e-03
981.7600 4.65608e-03 1.06921e-02 8.73011e+03 6.41767e-04 4.30037e-04 2.40937e-03
981.7700 4.34304e-03 1.13004e-02 7.81962e+03 6.41805e-04 3.57947e-04 1.79642e-03
981.7800 4.11748e-03 1.19042e-02 7.04893e+03 6.41843e-04 3.05990e-04 1.38439e-03
981.7900 3.95250e-03 1.25040e-02 6.39039e+03 6.41881e-04 2.67973e-04 1.09919e-03
981.8000 3.83076e-03 1.31006e-02 5.82266e+03 6.41919e-04 2.39911e-04 8.96709e-04
981.8100 3.74094e-03 1.36946e-02 5.32926e+03 6.41958e-04 2.19196e-04 7.49904e-04
981.8200 3.67554e-03 1.42865e-02 4.89732e+03 6.41997e-04 2.04101e-04 6.41706e-04
981.8300 3.62957e-03 1.48769e-02 4.51671e+03 6.42036e-04 1.93480e-04 5.61070e-04
981.8400 3.59979e-03 1.54662e-02 4.17935e+03 6.42075e-04 1.86584e-04 5.00689e-04
981.8500 3.58420e-03 1.60549e-02 3.87870e+03 6.42115e-04 1.82954e-04 4.55659e-04
981.8600 3.58177e-03 1.66433e-02 3.60946e+03 6.42154e-04 1.82357e-04 4.22673e-04
981.8700 3.59236e-03 1.72318e-02 3.36726e+03 6.42194e-04 1.84754e-04 3.99520e-04
981.8800 3.61662e-03 1.78209e-02 3.14846e+03 6.42234e-04 1.90299e-04 3.84794e-04
981.8900 3.65613e-03 1.84108e-02 2.95001e+03 6.42275e-04 1.99353e-04 3.77718e-04
981.9000 3.71357e-03 1.90020e-02 2.76936e+03 6.42315e-04 2.12537e-04 3.78060e-04
981.9100 3.79316e-03 1.95951e-02 2.60431e+03 6.42356e-04 2.30818e-04 3.86135e-04
981.9200 3.90125e-03 2.01906e-02 2.45300e+03 6.42397e-04 2.55660e-04 4.02870e-04
981.9300 4.04742e-03 2.07890e-02 2.31383e+03 6.42439e-04 2.89266e-04 4.29992e-04
981.9400 4.24620e-03 2.13912e-02 2.18541e+03 6.42480e-04 3.34981e-04 4.70341e-04
981.9500 4.52004e-03 2.19976e-02 2.06657e+03 6.42522e-04 3.97969e-04 5.28429e-04
981.9600 4.90409e-03 2.26086e-02 1.95634e+03 6.42564e-04 4.86319e-04 6.11339e-04
981.9700 5.45382e-03 2.32232e-02 1.85408e+03 6.42606e-04 6.12788e-04 7.30103e-04
981.9800 6.25486e-03 2.38372e-02 1.75966e+03 6.42648e-04 7.97061e-04 9.01349e-04
981.9900 7.42578e-03 2.44375e-02 1.67397e+03 6.42691e-04 1.06638e-03 1.14726e-03
982.0000 9.06833e-03 2.49922e-02 1.59996e+03 6.42734e-04 1.44408e-03 1.48501e-03
982.0100 1.10339e-02 2.54413e-02 1.54318e+03 6.42777e-04 1.89587e-03 1.88055e-03
982.0200 1.24870e-02 2.57367e-02 1.50726e+03 6.42820e-04 2.22971e-03 2.16037e-03
982.0300 1.22788e-02 2.59618e-02 1.48143e+03 6.42863e-04 2.18183e-03 2.07789e-03
982.0400 1.06025e-02 2.62904e-02 1.44553e+03 6.42907e-04 1.79658e-03 1.66963e-03
982.0500 8.66725e-03 2.67688e-02 1.39508e+03 6.42951e-04 1.35164e-03 1.21237e-03
982.0600 7.13191e-03 2.73378e-02 1.33803e+03 6.42995e-04 9.98482e-04 8.59040e-04
982.0700 6.05436e-03 2.79430e-02 1.28090e+03 6.43040e-04 7.50539e-04 6.18198e-04
982.0800 5.31845e-03 2.85577e-02 1.22645e+03 6.43084e-04 5.81159e-04 4.58367e-04
982.0900 4.81183e-03 2.91717e-02 1.17542e+03 6.43129e-04 4.64521e-04 3.51153e-04
982.1000 4.45637e-03 2.97817e-02 1.12779e+03 6.43174e-04 3.82663e-04 2.77571e-04
982.1100 4.20192e-03 3.03871e-02 1.08332e+03 6.43219e-04 3.24050e-04 2.25801e-04
982.1200 4.01669e-03 3.09884e-02 1.04170e+03 6.43265e-04 2.81365e-04 1.88539e-04
982.1300 3.88031e-03 3.15861e-02 1.00265e+03 6.43310e-04 2.49927e-04 1.61207e-04
982.1400 3.77956e-03 3.21810e-02 9.65936e+02 6.43356e-04 2.26686e-04 1.40872e-04
982.1500 3.70568e-03 3.27736e-02 9.31326e+02 6.43402e-04 2.09633e-04 1.25616e-04
982.1600 3.65288e-03 3.33645e-02 8.98636e+02 6.43449e-04 1.97431e-04 1.14160e-04
982.1700 3.61732e-03 3.39542e-02 8.67700e+02 6.43495e-04 1.89198e-04 1.05641e-04
982.1800 3.59658e-03 3.45431e-02 8.38374e+02 6.43542e-04 1.84378e-04 9.94770e-05
982.1900 3.58931e-03 3.51316e-02 8.10528e+02 6.43589e-04 1.82656e-04 9.52821e-05
982.2000 3.59503e-03 3.57201e-02 7.84049e+02 6.43636e-04 1.83925e-04 9.28162e-05
982.2100 3.61407e-03 3.63089e-02 7.58833e+02 6.43684e-04 1.88263e-04 9.19566e-05
982.2200 3.64767e-03 3.68984e-02 7.34784e+02 6.43731e-04 1.95950e-04 9.26850e-05
982.2300 3.69806e-03 3.74891e-02 7.11818e+02 6.43779e-04 2.07501e-04 9.50882e-05
982.2400 3.76881e-03 3.80815e-02 6.89853e+02 6.43827e-04 2.23741e-04 9.93736e-05
982.2500 3.86537e-03 3.86760e-02 6.68816e+02 6.43876e-04 2.45921e-04 1.05902e-04
982.2600 3.99594e-03 3.92733e-02 6.48637e+02 6.43924e-04 2.75929e-04 1.15248e-04
982.2700 4.17290e-03 3.98740e-02 6.29251e+02 6.43973e-04 3.16614e-04 1.28299e-04
982.2800 4.41524e-03 4.04788e-02 6.10599e+02 6.44022e-04 3.72348e-04 1.46422e-04
982.2900 4.75256e-03 4.10881e-02 5.92637e+02 6.44071e-04 4.49938e-04 1.71742e-04
982.3000 5.23149e-03 4.17017e-02 5.75342e+02 6.44121e-04 5.60111e-04 2.07572e-04
982.3100 5.92500e-03 4.23169e-02 5.58755e+02 6.44170e-04 7.19645e-04 2.59024e-04
982.3200 6.94030e-03 4.29249e-02 5.43056e+02 6.44220e-04 9.53179e-04 3.33467e-04
982.3300 8.39918e-03 4.35028e-02 5.28737e+02 6.44270e-04 1.28867e-03 4.38986e-04
982.3400 1.02960e-02 4.40009e-02 5.16830e+02 6.44321e-04 1.72472e-03 5.74339e-04
982.3500 1.20999e-02 4.43552e-02 5.08580e+02 6.44371e-04 2.13924e-03 7.01060e-04
982.3600 1.26168e-02 4.45862e-02 5.03316e+02 6.44422e-04 2.25793e-03 7.32356e-04
982.3700 1.13755e-02 4.48588e-02 4.97252e+02 6.44473e-04 1.97268e-03 6.32175e-04
982.3800 9.41236e-03 4.52833e-02 4.88001e+02 6.44524e-04 1.52138e-03 4.78519e-04
982.3900 7.69008e-03 4.58250e-02 4.76533e+02 6.44576e-04 1.12529e-03 3.45646e-04
982.4000 6.44289e-03 4.64206e-02 4.64373e+02 6.44627e-04 8.38343e-04 2.50956e-04
982.4100 5.58724e-03 4.70335e-02 4.52338e+02 6.44679e-04 6.41417e-04 1.87045e-04
982.4200 5.00115e-03 4.76485e-02 4.40727e+02 6.44731e-04 5.06490e-04 1.43920e-04
982.4300 4.59308e-03 4.82603e-02 4.29617e+02 6.44784e-04 4.12519e-04 1.14272e-04
982.4400 4.30313e-03 4.88676e-02 4.19000e+02 6.44836e-04 3.45729e-04 9.34113e-05
982.4500 4.09329e-03 4.94705e-02 4.08847e+02 6.44889e-04 2.97373e-04 7.84057e-05
982.4600 3.93933e-03 5.00696e-02 3.99120e+02 6.44942e-04 2.61881e-04 6.74105e-05
982.4700 3.82561e-03 5.06656e-02 3.89784e+02 6.44995e-04 2.35647e-04 5.92439e-05
982.4800 3.74182e-03 5.12591e-02 3.80811e+02 6.45049e-04 2.16306e-04 5.31338e-05
982.4900 3.68116e-03 5.18507e-02 3.72171e+02 6.45102e-04 2.02286e-04 4.85666e-05
982.5000 3.63908e-03 5.24409e-02 3.63843e+02 6.45156e-04 1.92546e-04 4.51973e-05
982.5100 3.61266e-03 5.30301e-02 3.55804e+02 6.45210e-04 1.86410e-04 4.27939e-05
982.5200 3.60015e-03 5.36188e-02 3.48036e+02 6.45265e-04 1.83476e-04 4.12043e-05
982.5300 3.60074e-03 5.42072e-02 3.40523e+02 6.45319e-04 1.83557e-04 4.03359e-05
982.5400 3.61444e-03 5.47959e-02 3.33248e+02 6.45374e-04 1.86656e-04 4.01441e-05
982.5500 3.64212e-03 5.53852e-02 3.26198e+02 6.45429e-04 1.92972e-04 4.06278e-05
982.5600 3.68556e-03 5.59754e-02 3.19358e+02 6.45484e-04 2.02919e-04 4.18298e-05
982.5700 3.74778e-03 5.65671e-02 3.12715e+02 6.45540e-04 2.17187e-04 4.38435e-05
982.5800 3.83339e-03 5.71608e-02 3.06258e+02 6.45595e-04 2.36838e-04 4.68273e-05
982.5900 3.94934e-03 5.77570e-02 2.99973e+02 6.45651e-04 2.63474e-04 5.10291e-05
982.6000 4.10612e-03 5.83563e-02 2.93849e+02 6.45707e-04 2.99508e-04 5.68288e-05
982.6100 4.31970e-03 5.89595e-02 2.87875e+02 6.45764e-04 3.48614e-04 6.48071e-05
982.6200 4.61479e-03 5.95671e-02 2.82041e+02 6.45820e-04 4.16479e-04 7.58607e-05
982.6300 5.03019e-03 6.01792e-02 2.76344e+02 6.45877e-04 5.12026e-04 9.13887e-05
982.6400 5.62698e-03 6.07944e-02 2.70794e+02 6.45934e-04 6.49307e-04 1.13574e-04
982.6500 6.49828e-03 6.14071e-02 2.65436e+02 6.45991e-04 8.49722e-04 1.45701e-04
982.6600 7.76685e-03 6.20016e-02 2.60394e+02 6.46049e-04 1.14147e-03 1.92027e-04
982.6700 9.51110e-03 6.25401e-02 2.55957e+02 6.46107e-04 1.54250e-03 2.55092e-04
982.6800 1.14747e-02 6.29586e-02 2.52590e+02 6.46164e-04 1.99378e-03 3.25413e-04
982.6900 1.26666e-02 6.32260e-02 2.50470e+02 6.46223e-04 2.26760e-03 3.67032e-04
982.7000 1.20834e-02 6.34585e-02 2.48635e+02 6.46281e-04 2.13354e-03 3.42834e-04
982.7100 1.02549e-02 6.38182e-02 2.45823e+02 6.46339e-04 1.71327e-03 2.72213e-04
982.7200 8.36652e-03 6.43201e-02 2.41979e+02 6.46398e-04 1.27904e-03 2.00060e-04
982.7300 6.92236e-03 6.48997e-02 2.37656e+02 6.46457e-04 9.46817e-04 1.45463e-04
982.7400 5.91862e-03 6.55083e-02 2.33245e+02 6.46517e-04 7.15830e-04 1.07945e-04
982.7500 5.23283e-03 6.61236e-02 2.28913e+02 6.46576e-04 5.57963e-04 8.25839e-05
982.7600 4.75892e-03 6.67371e-02 2.24716e+02 6.46636e-04 4.48836e-04 6.52202e-05
982.7700 4.42493e-03 6.73465e-02 2.20664e+02 6.46696e-04 3.71904e-04 5.30716e-05
982.7800 4.18490e-03 6.79512e-02 2.16750e+02 6.46756e-04 3.16594e-04 4.43816e-05
982.7900 4.00964e-03 6.85519e-02 2.12966e+02 6.46816e-04 2.76191e-04 3.80453e-05
982.8000 3.88040e-03 6.91493e-02 2.09302e+02 6.46877e-04 2.46379e-04 3.33579e-05
982.8100 3.78493e-03 6.97438e-02 2.05749e+02 6.46938e-04 2.24341e-04 2.98613e-05
982.8200 3.71514e-03 7.03362e-02 2.02297e+02 6.46999e-04 2.08214e-04 2.72523e-05
982.8300 3.66564e-03 7.09270e-02 1.98942e+02 6.47060e-04 1.96757e-04 2.53280e-05
982.8400 3.63290e-03 7.15167e-02 1.95676e+02 6.47121e-04 1.89157e-04 2.39522e-05
982.8500 3.61469e-03 7.21056e-02 1.92493e+02 6.47183e-04 1.84904e-04 2.30351e-05
982.8600 3.60984e-03 7.26942e-02 1.89390e+02 6.47245e-04 1.83726e-04 2.25214e-05
982.8700 3.61802e-03 7.32829e-02 1.86362e+02 6.47307e-04 1.85546e-04 2.23830e-05
982.8800 3.63973e-03 7.38719e-02 1.83403e+02 6.47369e-04 1.90481e-04 2.26157e-05
982.8900 3.67635e-03 7.44618e-02 1.80511e+02 6.47432e-04 1.98848e-04 2.32391e-05
982.9000 3.73033e-03 7.50530e-02 1.77681e+02 6.47495e-04 2.11213e-04 2.42995e-05
982.9100 3.80554e-03 7.56458e-02 1.74909e+02 6.47558e-04 2.28465e-04 2.58769e-05
982.9200 3.90785e-03 7.62410e-02 1.72192e+02 6.47621e-04 2.51954e-04 2.80967e-05
982.9300 4.04606e-03 7.68390e-02 1.69526e+02 6.47685e-04 2.83706e-04 3.11508e-05
982.9400 4.23352e-03 7.74406e-02 1.66907e+02 6.47748e-04 3.26792e-04 3.53307e-05
982.9500 4.49072e-03 7.80464e-02 1.64331e+02 6.47812e-04 3.85929e-04 4.10845e-05
982.9600 4.84965e-03 7.86567e-02 1.61798e+02 6.47877e-04 4.68477e-04 4.91081e-05
982.9700 5.36074e-03 7.92711e-02 1.59309e+02 6.47941e-04 5.86032e-04 6.04917e-05
982.9800 6.10243e-03 7.98863e-02 1.56877e+02 6.48006e-04 7.56633e-04 7.69171e-05
982.9900 7.18744e-03 8.04918e-02 1.54541e+02 6.48071e-04 1.00618e-03 1.00773e-04
983.0000 8.73227e-03 8.10610e-02 1.52400e+02 6.48136e-04 1.36141e-03 1.34474e-04
①のグラフでは、tht0を変化させるとABS(G) [dB](gab_db)とARG(G) [rad](gph)は共に短波長側にシフトしていきますが、そのずれ量は同じです。その結果、グラフ中の上向き矢印で示すように共振条件(gphが0になる波長)におけるレーザ発振に必要な閾値利得(gab_dbの値)はtht0に関係なく一定になります。閾値利得が小さいほど同じ電流値に対する出力光強度は大きくなるので、閾値利得が同じということはtht0による光強度の 変化はないということです。従って、このモデルでは縦モードにサブピークを生じることはありません。
そこで次に考えたのが講演資料15頁の「②ビーム拡がりで反射戻り光は垂直と仮定」というモデルです。半導体基板中での光ビームの拡がり角は小さいとはいえ、基板裏面に垂直に入射するものもあるので、これが垂直共振器に戻ると考えたのです。このモデルに対する計算をするためには、ref_read.tsvではなくプログラムそのものを修正する必要があります。修正後のプログラムが以下のref3.cです。変更しているのは下部反射器の実効反射率crr2を計算する109行目からのforループで、i<2(i=0の外界とi=1の半導体基板)では入射角tht1と屈折角tht2がtht0に依らず0であるとしています。
/*
---------------------------------------------------------
Calculation of phase condition for a vertical cavity
* Modified from ref2.c.
* In ref2.c, the ray in the substrate bent by refraction.
Here always vertical even when tilted in the cavity.
i=0,1,2,...,nc(QW),nc+1,...,nl
<--------------------------> light
since 2015/8/25
by K. Matsuda
---------------------------------------------------------
*/
/* header files */
#include <stdio.h>
#include <complex.h>
#include <math.h>
/* macros */
#define N_ARY 150
/* main */
int main(void){
int spflg, nl, nc, i, imax, i_wl;
// (spflg: =0 for s-wave, =1 for p-wave)
double wl, tht0, wl_s, wl_e, dwl, dn, wlin, tht1, tht2;
double phi1, gab_dB, gph, ss, t1, t2, tt;
double n[N_ARY], l[N_ARY], a[N_ARY], nw[N_ARY];
double complex crr, cr, cwk1, cwk2, cwk3, crr1, crr2, cg;
double complex cn[N_ARY];
FILE *fp;
char *ifname = "ref_read.tsv";
char *ofname = "ref3_out.tsv";
printf("start\n");
printf("reading...\n");
fp = fopen(ifname, "r");
if(fp == NULL){
printf("Error: cannot open the file '%s'\n", ifname);
return -1;
}
fscanf(fp, "%lf\t%lf\t%d\n", &wl, &tht0, &spflg);
fscanf(fp, "%d\t%d\n", &nl, &nc);
fscanf(fp, "%lf\n", &n[0]);
for(i=1; i<nl+1; i++){
fscanf(fp, "%lf\t%lf\t%lf\n", &n[i], &l[i], &a[i]);
}
fscanf(fp, "%lf\n", &n[nl+1]);
fscanf(fp, "%lf\t%lf\t%lf\n", &wl_s, &wl_e, &dwl);
fscanf(fp, "%lf\n", &dn);
fclose(fp);
printf("calc...\n");
fp = fopen(ofname, "w");
if(spflg == 0){
fprintf(fp, "dn\ttht0\tS-wave\n");
}else{
fprintf(fp, "dn\ttht0\tP-wave\n");
}
fprintf(fp, "%9.3e\t%6.3f\n", dn, tht0);
fprintf(fp, "wavelength\tgab_dB\tgph\tss\tt1\tt2\ttt\n");
tht0 = tht0*M_PI/180.0;
for(i=1; i<nl+1; i++){
if(l[i]<5.0){
l[i] = wl*l[i]/n[i];
}
}
imax = (int)(wl_e - wl_s)/dwl;
for(i_wl=0; i_wl<imax+1; i_wl++){
wlin = wl_s + i_wl*dwl;
nw[0] = (n[0] - 7.4e-4*(wlin-wl))*(1.0 + dn);
cn[0] = nw[0] + I*0.0;
for(i=1; i<nl; i++){
nw[i] = (n[i] - 7.4e-4*(wlin - wl))*(1.0 + dn);
cn[i] = nw[i] - I*(a[i]*(wlin/1.0e7)/(4.0*M_PI));
}
nw[nl] = n[nl] - 7.4e-4*(wlin-wl);
cn[nl] = nw[nl] - I*(a[nl]*(wlin/1.0e7)/(4.0*M_PI));
nw[nl+1] = n[nl+1];
cn[nl+1] = nw[nl+1] + I*0.0;
crr = 0.0 + I*0.0;
for(i=0; i<nc; i++){
tht1 = asin(sin(tht0)*nw[0]/nw[i]);
tht2 = asin(sin(tht0)*nw[0]/nw[i+1]);
if(spflg == 0){
cr = (cn[i+1]*cos(tht2) - cn[i]*cos(tht1))/
(cn[i+1]*cos(tht2) + cn[i]*cos(tht1));
}else{
cr = (cn[i]*cos(tht2) - cn[i+1]*cos(tht1))/
(cn[i]*cos(tht2) + cn[i+1]*cos(tht1));
}
if(i == 0){
crr = cr;
}else{
cwk3 = I*4.0*M_PI*cn[i]*l[i]*cos(tht1)/wlin;
cwk1 = cr + crr*cexp(cwk3);
cwk2 = 1.0 + cr*crr*cexp(cwk3);
crr = cwk1/cwk2;
}
}
crr1 = crr;
crr = 0.0 + I*0.0;
for(i=0; i<nl-nc+1; i++){
if(i<2){
tht1 = 0.0;
tht2 = 0.0;
}else{
tht1 = asin(sin(tht0)*nw[0]/nw[nl-i+1]);
tht2 = asin(sin(tht0)*nw[0]/nw[nl-i]);
}
if(spflg == 0){
cr = (cn[nl-i]*cos(tht2) - cn[nl-i+1]*cos(tht1))/
(cn[nl-i]*cos(tht2) + cn[nl-i+1]*cos(tht1));
}else{
cr = (cn[nl-i+1]*cos(tht2) - cn[nl-i]*cos(tht1))/
(cn[nl-i+1]*cos(tht2) + cn[nl-i]*cos(tht1));
}
if(i == 0){
crr = cr;
}else{
cwk3 = I*4.0*M_PI*cn[nl-i+1]*l[nl-i+1]*cos(tht1)/wlin;
cwk1 = cr + crr*cexp(cwk3);
cwk2 = 1.0 + cr*crr*cexp(cwk3);
crr = cwk1/cwk2;
}
}
crr2 = crr;
tht1 = asin(sin(tht0)*nw[0]/nw[nc]);
phi1 = 4.0*M_PI*nw[nc]*l[nc]*cos(tht1)/wlin;
cg = 1.0/(crr1*crr2*cexp(I*phi1));
gab_dB = 20.0*log10(cabs(cg));
gph = carg(cg);
ss = cabs(cpow(1.0/(1.0 - 1.0/cg), 2.0));
t1 = 1.0 - cabs(cpow(crr1, 2.0));
t2 = 1.0 - cabs(cpow(crr2, 2.0));
tt = t1*t2*ss;
fprintf(fp, "%9.4f\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\t%12.5e\n",
wlin, gab_dB, gph, ss, t1, t2, tt);
}
fclose(fp);
printf("end.\n");
return 0;
}
②のグラフはref3.cによって計算したref3_out.tsvをグラフ化したものですが、①のグラフと同様にtht0が0°、1.0°、1.5°の結果をまとめてあります。この場合は、ARG(G) [rad](gph)は短波長側にシフトしていきますが、ABS(G) [dB](gab_db)の方は変化しません(グラフでは3条件が重なっているので一番上のtht=1.5°しか見えません)。その結果、上向き矢印で示す共振条件における閾値利得はtht0によって変化することになり、このモデルであれば縦モードにサブピークが生じることを説明できます。これで縦モードについては解決したので、次は遠視野像についての検討です。
今までの結果と、さらに追加した解析をまとめたのが講演資料16頁にある一覧表です。表の横軸にあるI-Lは電流-光出力のグラフで、FFPは遠視野像です。縦軸の1行目は垂直光しか考えなかった場合で、2行目がref3.cによる解析です。遠視野像のミルククラウンから、垂直共振器内で斜めモードが発振しているのではないかと考えたのが、3行目と4行目のモデルです。3行目では斜め光が垂直共振器に戻り、4行目では垂直光が戻ります。これらのモデルを解析するために新たにref4.cを作成しましたが、結論として物理現象をうまく説明できないことが分ったので、ref4.cについては紹介しません。
確かに、垂直共振器で斜め光がメインモードとして発振するというのはおかしな話で、ミルククラウンの美しさに幻惑されてしまったとしか言えません。では、遠視野像のミルククラウンの原因は何なのか? 垂直発振光は半導体基板内で拡がり角を持ち、半導体基板が光学フィルタとして機能するために出射角度による放射光の強弱が生じます。3次元的に見れば、これは同心円状の強弱になります。一方、駆動電流による垂直共振器の温度上昇で垂直発振光の波長自体が長波長側にシフトしていきます。この結果、放射光が強められる角度が変って、同心円が波紋状に広がって行くミルククラウンになるというのが正しい解釈だと思われます。
駄待ち狐は、FORTRANからCへの移植を行ってからさらに8年後の2023年、ref3.cをPythonに移植しようと思い立ちました。「I. 人生の余技として作成したプログラム」の「自作プログラムの50年史」で紹介した年表はそのずっと前から作成していて、Cに「お疲れさまでした」と言うためにはPythonへの移植が必要だと感じたためです。Pythonでも複素数型と複素関数は扱えるので、移植自体には何の困難もありません。それだけでは物足りないと思ったので、Cのプログラムではtht0が0°、1.0°、1.5°のそれぞれに対してプログラムを走らせて、その結果をExcel上でまとめていたのを一括処理できるようにしました。
"""
Calculation of phase condition for a vertical cavity
* Converted from ref3.c of C version.
* In ref3.c, three ray-angle conditions are calculated one by one.
Here calculated in a run and saved directly in the Excel file.
i=0,1,2,...,nc(qw),nc+1,...,nl, nl+1
sub, air
<---------------------------> light
since 2015/8/25
by K. Matsuda
"""
import math
import cmath
import openpyxl
# Reading analysis conditions and VC structures from 'ref_read.tsv'
file = open('ref_read.tsv', 'r')
wl, tht0, spflg = [float(s) for s in file.readline().split()]
nl, nc = [int(s) for s in file.readline().split()]
n = [0.0] * (nl + 2)
l = [0.0] * (nl + 2)
a = [0.0] * (nl + 2)
n[0], = [float(s) for s in file.readline().split()]
for i in range(1, nl + 1):
n[i], l[i], a[i] = [float(s) for s in file.readline().split()]
n[nl + 1], = [float(s) for s in file.readline().split()]
wl_s, wl_e, dwl = [float(s) for s in file.readline().split()]
dn, = [float(s) for s in file.readline().split()]
file.close()
# Converting readout parameters
tht0s = [0.0, 1.0, 1.5] # ignoring tht0 readout
tht0_labels = ['0° ', '1° ', '1.5°'] # used in the Excel file
spflg = int(spflg)
for i in range(1, nl+1):
if l[i] < 5.0:
l[i] = wl * l[i] / n[i]
imax = int((wl_e - wl_s) / dwl)
gains = [] # gains[0] = [gab_dBs, gphs] for tht0=0.0
# Loop for changing tht0
for i_tht0, tht0 in enumerate(tht0s):
# Values for the top row in the Excel file given here
wls = ['wavelength']
gab_dBs = [tht0_labels[i_tht0] + ' ABS']
gphs = [tht0_labels[i_tht0] + ' ARG']
tht0 = tht0 * math.pi / 180.0
# Loop for changing wavelength
for i_wl in range(imax + 1):
# Calculating real and complex refractive indices for each wavelength
wlin = wl_s + i_wl * dwl
nw = []
cn = []
nw.append((n[0] - 7.4e-4 * (wlin - wl)) * (1.0 + dn))
cn.append(nw[0] + 0.0j)
for i in range(1, nl):
nw.append((n[i] - 7.4e-4 * (wlin - wl)) * (1.0 + dn))
cn_imag = -1.0 * a[i] * (wlin / 1.0e7) / (4.0 * math.pi)
cn.append(complex(nw[i], cn_imag))
nw.append((n[nl] - 7.4e-4 * (wlin - wl)))
cn_imag = -1.0 * a[nl] * (wlin / 1.0e7) / (4.0 * math.pi)
cn.append(complex(nw[nl], cn_imag))
nw.append(n[nl+1])
cn.append(nw[nl+1] + 0.0j)
# Calculating the effective complex reflectivity of the top-side
for i in range(nc):
tht1 = math.asin(math.sin(tht0) * nw[0] / nw[i])
tht2 = math.asin(math.sin(tht0) * nw[0] / nw[i+1])
if spflg == 0:
cr = (cn[i+1] * math.cos(tht2) - cn[i] * math.cos(tht1)) \
/ (cn[i+1] * math.cos(tht2) + cn[i] * math.cos(tht1))
else:
cr = (cn[i] * math.cos(tht2) - cn[i+1] * math.cos(tht1)) \
/ (cn[i] * math.cos(tht2) + cn[i+1] * math.cos(tht1));
if i == 0:
crr = cr
else:
cwk0 = 4.0j * math.pi * cn[i] * l[i] * math.cos(tht1) / wlin
cwk1 = cr + crr * cmath.exp(cwk0)
cwk2 = 1.0 + cr * crr * cmath.exp(cwk0)
crr = cwk1 / cwk2
crr1 = crr
# Calculating the effective complex reflectivity of the bottom-side
for i in range(nl-nc+1):
if i < 2:
tht1 = 0.0
tht2 = 0.0
else:
tht1 = math.asin(math.sin(tht0) * nw[0] / nw[nl-i+1])
tht2 = math.asin(math.sin(tht0) * nw[0] / nw[nl-i])
if spflg == 0:
cr = (cn[nl-i] * math.cos(tht2) - cn[nl-i+1] * math.cos(tht1)) \
/ (cn[nl-i] * math.cos(tht2) + cn[nl-i+1] * math.cos(tht1))
else:
cr = (cn[nl-i+1] * math.cos(tht2) - cn[nl-i] * math.cos(tht1)) \
/ (cn[nl-i+1] * math.cos(tht2) + cn[nl-i] * math.cos(tht1))
if i == 0:
crr = cr
else:
cwk0 = 4.0j * math.pi * cn[nl-i+1] * l[nl-i+1] \
* math.cos(tht1) / wlin
cwk1 = cr + crr * cmath.exp(cwk0)
cwk2 = 1.0 + cr * crr * cmath.exp(cwk0)
crr = cwk1 / cwk2
crr2 = crr
# Calculating gabs_dB and gph (also with ss, t1, t2, and tt)
tht1 = math.asin(math.sin(tht0) * nw[0] / nw[nc])
phi1 = 4.0 * math.pi * nw[nc] * l[nc] * math.cos(tht1) / wlin
cg = 1.0 / (crr1 * crr2 * cmath.exp(1j * phi1))
wls.append(wlin)
gab_dBs.append(20.0 * math.log10(abs(cg)))
gphs.append(cmath.phase(cg))
gains.append([gab_dBs, gphs])
# Calculated results put into the xlsx file
wb = openpyxl.load_workbook('ref_out.xlsx')
sheet = wb['ref']
for i, wl in enumerate(wls):
sheet.cell(row=i+1, column=1).value = wl
for i_tht0, tht0 in enumerate(tht0s):
st_row = 1
st_col = 2 + i_tht0 * 2
for x, col in enumerate(gains[i_tht0]):
for y, data in enumerate(col):
sheet.cell(row=st_row + y, column=st_col + x).value = data
wb.save('ref_out.xlsx')
46行目から117行目の一番外側のforループで、tht0を0°、1.0°、1.5°とした計算をします。120~130行目で結果をExcelファイルに書出しますが、Pythonにはopenpyxlというモジュールが用意されていて、これをインポートすればExcelファイルの読み書きが自由自在です。ただ、Excel上で書式を整えたグラフを生成するのは困難なので、雛型のExcelファイルref_out.xlsx(HTML形式で保存したものはこちら)に予めグラフを埋込んでおき、セルの値のみを書換えるというプログラムになっています。この後のファイル名をクリックしてref_read.tsvとref_out.xlsxをダウンロードすれば、上記プログラムの動作確認ができます。
ここで紹介した垂直共振器のモード解析は、1996年から2023年の足掛け28年に亘って手を入れてきたプログラムです。さらに言うと、今回の解析のポイントは半導体基板裏面からの「反射戻り光」ですが、1983~1985年に開発した外部共振器レーザは、水平共振器ながら反射戻り光を利用した半導体レーザです。外部共振器レーザの代表的な論文で示したFig. 5は、計算式(1)および(2)を連名著者である佐藤久直先生に教えていただき、雄谷順君がグラフ化してくれました。しかし、私自身はあまり意味が分っておらず「気色悪さ」が残っていました。それが、垂直共振器のモード解析をする間に完全に理解できました。
共振器のモード解析という視点で見ると、40年間に亘る手持ち(頭持ち?)ネタだったことになります。「???」の気色悪さが年月を経て「!!!」になることは、駄待ち狐にとって無上の喜びです。それに要した年月が長いほどその満足感は大きくなります。そういう意味で、これは趣味のプログラミングの中でも特筆に値するものだと思っています。会社の利益に貢献していない(だから「趣味」)という反省と、世のため、人のためになっていない無念さはありますが、雌伏のままでも至福はあるということです。