Переход:
.....Назад.....Содержание.....ВпередПрограмма моделирования вспышек новых и сверхновых звезд и результаты расчетов по ней
По алгоритму, приведенному на рис. П2.2, разработана программа на языке Турбо-Паскаль-7. Эта программа приведена ниже.
{$N+}
Program Simulation; Label Lm38,Lm46,Lm54,Lm69,Lm72,Lm75;
Var Z1 : Array[1..15000] of LongInt; A, Accuracy, C1, C2, CosinusFA, CurrentLightSpeed, DeltaTay, D0, D_factor, Difference, DistToStar, DoublePeriod, Eccentr, FirstApprox, H1, H2, LightSpeed_0, LightSpeedMin, LightSpeedMax, LS_2, MeanAnomaly, Perem, Pin, PR3, PR4, PR5, PR6, PR7, PR8, PR9, RadiationPeriod, ReceptionCell, Rkps, S1, SecondApprox, SinusFA, StarPeriod, Tay, TayMax, TayMin, TNper, TR, Traspr, Uzero, Uzero_2, Umin_2, U2, Umax_2, W, R_star, Tsdvig, Tzend, T_init_1, T_init_2, T_izl_1, T_izl_2: Extended;
F1: Text; I, JR, K, Kz, MaximumValue, MV, Mz, N1, Nper, Nprob, IZ, INN, IKK, IRT, Mzw, Nav, Nsdvig, Nzend: LongInt;
Procedure Gistogram (Time: Extended);
Label Lm84,Lm90,Lm91; begin {83} If Time < TR then goto Lm91 else begin I:=1; Lm84: If I > Nper then goto Lm91 else begin {85} If Time < 0 then goto Lm90 else begin {86} If Time > StarPeriod then goto Lm91 else begin {87} W:=(Time/ReceptionCell)+1.0E0; {88} K:=Trunc(W); {89} Z1[K]:=Z1[K]+1; end; end; end; end; Lm90: Time:=Time + StarPeriod; I:=I+1; goto Lm84; Lm91: Exit; end;
begin {1} Pin :=3.1415926535897932385E0; {2} LightSpeed_0 := 2.99792458E8; {3} Accuracy:=2.0E-16; {4} Uzero:=4.0E-4; {5} Eccentr:=0.6E0; {6} StarPeriod:=360000.0E0; {7} D_factor:=2.0E0; {8} RadiationPeriod := 3.0E0; {9} ReceptionCell :=3.0E+2; {10} LS_2 := LightSpeed_0*LightSpeed_0; {11} Uzero_2:=Uzero*Uzero; {12} PR3:=1 + Eccentr; {13} PR4:=1 - Eccentr; {14} PR5:=6*PR3; {15} PR6:=PR3*PR4; {16} PR7:=4*Eccentr*Uzero_2; {17} PR8:=PR4/PR3; {18} PR9:=PR3/PR4; {19} D0:=StarPeriod*LightSpeed_0*PR6/PR7; {20} Nzend:=Trunc(StarPeriod/ReceptionCell+0.5E0); {21} Tzend:=Nzend*ReceptionCell; {22} Nav:=round(ReceptionCell/RadiationPeriod); {23} DistToStar:=D_factor*D0; {24} Umin_2:=Uzero_2*PR8; {25} Umax_2:=Uzero_2*PR9; {26} LightSpeedMin:=LightSpeed_0*Sqrt(1+Umin_2); {27} LightSpeedMax:=LightSpeed_0*Sqrt(1+Umax_2); {28} TayMax:=DistToStar/LightSpeedMin; {29} TayMin:=DistToStar/LightSpeedMax; {30} Nper:= 2 + Trunc(D_factor); {31} TNper:=Nper*StarPeriod; {32} Tr := - TNper; {33} For K:=1 to Nzend do begin {34} Z1[K]:=0; end; {35} T_init_1:= StarPeriod/2; {36} T_init_2:=3*StarPeriod/2; {37} JR:=0; Lm38: JR:=JR+1; {39} Perem := JR*RadiationPeriod; {40} T_izl_1 := T_init_1 + Perem; {41} T_izl_2 := T_init_2 - Perem; {42} MeanAnomaly:=2*Pin*T_izl_1/StarPeriod; {43} H1:=(MeanAnomaly - Pin)/PR3; {44} H2:=H1*H1*H1; {45} FirstApprox := Pin + H1 + Eccentr*H2/PR5; Lm46: SinusFA:=Sin(FirstApprox); {47} CosinusFA:=Cos(FirstApprox); {48} S1:=Eccentr*SinusFA; {49} C1:=Eccentr*CosinusFA; {50} SecondApprox:=FirstApprox-(FirstApprox-S1-MeanAnomaly)/(1-C1); {51} Difference := abs(FirstApprox - SecondApprox); {52} If Difference < Accuracy then goto Lm54 else begin {53} FirstApprox := SecondApprox; end; goto Lm46; Lm54: U2:= Uzero_2*(1+C1)/(1-C1); {55} CurrentLightSpeed:= LightSpeed_0*Sqrt(1+U2); {56} Traspr:=DistToStar/CurrentLightSpeed; {57} Tay := T_izl_1 + Traspr - TayMax - StarPeriod/2; {58} Gistogram (Tay); {59} Tay := T_izl_2 + Traspr - TayMax - StarPeriod/2; {60} Gistogram (Tay); {61} If T_izl_1 < StarPeriod then goto Lm38 else begin {62} Mzw:=0; {63} For K:=1 to Nzend do begin {64} Mzw:=Mzw + Z1[K]; end; {65} Rkps:=3.0E+19; {66} R_star:=DistToStar/Rkps; {67} MaximumValue:=1; {68} I:=1; Lm69: If I > Nzend then goto Lm75 else begin {70} If Z1[I] > MaximumValue then goto Lm72 else begin {71} I:=I+1; goto Lm69; end; Lm72: IZ:=I; {73} MaximumValue:=Z1[I]; {74} I:=I+1; goto Lm69; Lm75: MV:=MaximumValue; {76} IKK:=IZ+1; {77} INN:=IKK-18; end; {78} For I:=INN to IKK do begin {79} Nprob:=Round(60.0*Z1[I]/MV); {80} Writeln ('*': Nprob,Z1[I]); end; {81} Writeln ('MV=',MV,' IZ=',IZ,' D_factor=',D_factor,' e=',Eccentr); Writeln ('To=',StarPeriod,' Rstar=',R_star,'kps',' Nper=',Nper); Writeln('Nzend=',Nzend,' Nav=',Nav,' Mzw=',Mzw,' Uzero=',Uzero); Writeln('RadPer=',RadiationPeriod,' RecCell=',receptionCell); end;
{82} {$I-} assign (F1,'result'); Rewrite (F1); For I:=1 to Nzend do begin WriteLn (F1,Z1[I]); end; Close(F1); end.
Примечание:
В операторе 30 величина Nper – это количество периодов, свет от которых приходит к наблюдателю в течение промежутка времени, равного одному периоду обращения двойной звезды
Рис. П2.3. Распространение света на астрономические расстояния [1 - скорость света максимальная (источник света находится в перистре Р, двигаясь с максимальной скоростью); 2 - скорость света минимальная (источник света находится в апоастре А, двигаясь с минимальной скоростью); 3 - окно анализа, равное периоду обращения]
На рис. П2.3 Nper = 4, т.е. в течение промежутка времени, равного длительности окна анализа Tw = To, к наблюдатель приходят кванты света, излученные в 4-х различных периодах обращения звезды.
А – апоастр; П – периастр
Приведенные ниже на рис. П2.4 – П2.35 гистограммы рассчитаны при То=3,6Ч 105 = 4 суткам, эксцентриситете эллиптической орбиты е = 0,6, средней скорости движения звезды по орбите, отнесенной к скорости света Uzero = 4Ч 10-4; D t = 60 c; D t = 6000 c; Nzend = 60; Nav = 100.
На Рис. П2.4 – П2.35 показан характер изменения яркости звезды, перемещающейся по эллиптической траектории с эксцентриситетом е = 0,6 при различных расстояниях до этой звезды. Вдоль оси абсцисс откладывалось время. Каждое деление соответствует промежутку времени 6000 с (100 минут). Вдоль оси ординат откладывалось количество импульсов, пришедших к наблюдателю в течение каждого из этих промежутков времени продолжительностью в 100 мин, если звезда излучает в каждый из 100 минутных интервалов по 100 импульсов.
Из рис. П2.4 видно, что начиная с некоторого момента времени звезда плавно увеличивает свой блеск, затем блеск звезды уменьшается, падая на некоторое время ниже стационарного уровня блеска, и снова блеск звезды плавно возрастает до своего стационарного значения.
Из рис. П2.5 – П2.7 видно, что при увеличении расстояния до звезды всплеск яркости звезды увеличивается (если при R/До =0,1 было Nmax = 177, то при R/До = 0,2 имеем Nmax = 342, при R/До = 0,3 имеем Nmax = 468, при R/До = 0,4 имеем Nmax = 577).
Из рис. П2.8 видно, что при R/До = 0,5 на всплеске яркости звезды появляется два максимума. Первый максимум меньше второго (Nmax1 = 512 и Nmax2 = 290).
При дальнейшем увеличении расстояния до звезды блеск звезды в этих двух максимумах изменяется, причем временной интервал между максимумами яркости звезды постепенно увеличивается. По мере увеличения временного расстояния между двумя всплесками яркости звезды блеск звезды при меньшем максимуме постепенно уменьшается (при R/До = 2,8 меньший всплеск исчезает, но при R/До =3,0 он снова появляется).
Переход:
.....Назад.....Содержание.....Вперед