'd-Cephei.BAS Modified 27 July 2000 13 Jun 2009 'Robert S. Fritzius 305 Hillside Drive Starkville, MS 39759 U.S.A. 'fritzius@bellsouth.net see http://www.datasync.com../binaries.htm 'Method for calculating apparent radial velocity for C+V '(non-Doppler) has been added in section 1300 GOSUB 50 ' Initialize variables 10 CLS PRINT PRINT " D-CEPHEI.BAS" PRINT PRINT " Menu" PRINT PRINT " (1) Review program information" PRINT " (2) Select Run Parameters" PRINT " ESC Quit" 15 Z$=INKEY$:IF Z$="" THEN 15 IF Z$="1" THEN 4000 'Review program information IF Z$="2" THEN 20 'Select run options IF Z$=ESC$ THEN END GOTO 15 20 GOSUB 170 'Select Options IF ESC = 1 THEN 10 GOSUB 270 'Run it GOTO 20 50 'Initialize variables DIM Xmax(3),Xmin(3) DIM Ymax(3),Ymin(3) 'Ephemeris data Variable component EV# = 0 'Eccentricity VID = 0 'Iota (Tilt) Degrees VOD = 270 'Omega Degrees (Ascending node to perihelion) VODD = VOD 'Switchable value of VOD for two components PVD = 5.4 'Sidereal Period in days VTAU = 0 'Tau of perihelion (Not Used) VWD = 180 'omega degrees Angle asc node to perihelion VWR = VWd * P180 'omega radians Angle asc node to perihelion K1 = 2.8 'Ellipse Generating constant K2 = 1.35 'Ellipse eccentricity speed factor MULT = .0065 'Orbit Radius Multiple of one A.U. MULT1 = 0 'Orbit Radius used in calculations NumComps = 1 'Number of Components 1 or 2 NumPoints = 3 'Number of emission points on surface of star AU = 1.49E+11 'Astronomical Unit in meters Pi = 3.141593 'Pi TwoPi = 2 * Pi '2 Pi P180 = Pi / 180 'Pi / 180 SecsDay = 86400! 'Seconds in a day YrDays = 365.26 'Year in Days YRS# = YrDays * SecsDay'Year in seconds C = 300000000# 'Speed of Light M/Sec LY# = C * YRS# 'Light Year in Meters Lambda = 5.5E-07 'Wavelength (Meters) yellow-green Xc# = 0 'X of Component 1 Yc# = 0 'Y of Component 1 Zc# = 0 'Z of Component 1 Dx# = 0 Dy# = 0 R# = 0 'Distance CG to Ellipse RLY# = 0 'Distance Star-to-Observer in LY Vx# = 0 'X Component variable speed of light Vy# = 0 'Y Component variable speed of light Vxy# = 0 'Orbital Velocity 'Positions of body in motion around binary C.O.G. XS = 65 'X origin for sun on screen YS = 65 'Y origin for sun on screen VS = -20 / AU 'Vertical Scale for binary system HS = 50 / AU 'Horizontal Scale for binary system 'Common Constants used on brightness and radial velocity graphs Xorigin = 60 'X origin Xmult = 3.1 'Horizontal scale '' 'Brightness versus Time display constants YBo = 140 'Y Brightness origin VB = -.7 'Vertical scale 'Radial Velocity versus Time display constants YVo = 163 'Y Velocity origin VRV = .8 * SQR(MULT) 'Vertical scale 'Photon positions in vincinity of observer constants XO = 400 'X origin YO = 75 'Y origin VO = -40 / LY# 'Vertical Scale HO = 100 / LY# 'Horizontal Scale MODE = 1: MODE$ = "C+V" DA = 1: DA$ = "dTau/dt" NC = 2.25 'Number of Cycles (Orbits) NB = 520 'Number of Brightness time bins NS = 360 'Number of steps per orbit period Radv$ = "######.### " a$ = STRING$(79, " ") ESC$ = CHR$(27) Ax# = 0 'Acceleration of binary component in x direction Temit = 0 'Time of Emisson at binary component TOA# = 0 'Time Of Arrival at observer Xold# = 0 'Old X, used in calc of Vx Yold# = 0 'Old Y, used in calc of Vy Zold# = 0 'Old Z, used in calc of Vz Frac = 1! 'Fraction of orbit 2 size compared to orbit 1 Theta = 0 'Eclipse tracking angle EC = 0 'Eclipse Flag 0 = off 1 = on EC$ = "OFF" 'Eclipse Message LBL = 20 'Lower Bin Limit (for display) DIM NPR(NB) TSF$ = "OFF" 'Tandy 1400HD Scale Factor string TSF = 1.1 'Tandy 1400HD Scale Factor COUNT=0 'Counter used to plot time tics DIM TOA#(1000),DTOA#(1000)' Used to calculate DTDT DELTAU=0 'd Tau DTauDT=0 'd Tau / dt slope of app rad vel curve RETURN '******************************************************** 170 '* Select Run Parameters * '******************************************************** ESC = 0 200 CLS : SCREEN 2 OrbRad = MULT * AU PVr = 5 * SecsDay PVS = PVD * SecsDay 'Period of Variable in Seconds Vref = TwoPi * MULT * AU / PVr V = TwoPi * OrbRad / PVS VB = -4 * Vref / V L# = ((PVS / 2) * (C ^ 2) / (2 * V)) / LY#'This is a dimensionless ratio IF DIST = 0 THEN DIST = .25 * L# SRF = (29.6 / V) ^ 2 'Scale Reducing Factor Radial Velocity YrFrac = PVD / YrDays LOCATE 1, 1 PRINT "Binary Star Brightness versus Apparent Radial Velocity" PRINT PRINT "Options" PRINT USING "(1) Orbit constant K1 ###.### "; K1 PRINT USING "(2) Orbit Radius in A.U.'s ##.#### "; MULT PRINT USING "(3) Iota (Tilt) of orbit degrees ####.#### "; VID PRINT USING "(4) Eccentricity of orbit #.#### "; EV# PRINT USING "(5) Orbit period in days ###.### "; PVD PRINT USING " Average orbit speed in Km/sec#####.### "; V * .001 PRINT USING "(6) Omega degrees (asc node) ####.# "; VOD PRINT USING "(7) omega degrees (perihelion) ####.# "; VWD PRINT USING " de Sitter Catch up distance ######.#### LY "; L# PRINT USING "(8) Observer Distance ######.#### LY "; DIST PRINT USING "(C) Modeling mode \ \ "; MODE$ IF MODE = 2 THEN PRINT a$: GOTO 205 PRINT USING "(D) Doppler Only or d Tau /dt \ \"; DA$ PRINT USING "(E) Eclipse function \ \ "; EC$ 205 PRINT USING "(N) Number of components 1 or 2 # "; NumComps IF NumComps = 1 THEN 208 PRINT USING "(P) Fraction radius Orbit 2 / Orbit 1 ##.## "; Frac 208 PRINT USING "(T) Tandy 1400HD Horiz Scale Factor \ \"; TSF$ PRINT "(Z) Restore original parameters" LOCATE 5, 48: PRINT "At end of the run the" LOCATE 6, 48: PRINT "display can be printed" LOCATE 7, 48: PRINT "by pressing " LOCATE 8, 48: PRINT "SHFT + PRINT SCREEN." LOCATE LOCATE 10, 48: PRINT "MS-DOS GRAPHICS driver" LOCATE 11, 48: PRINT "must be pre-selected." LOCATE 13, 48: PRINT "Otherwise press any key" LOCATE 14, 48: PRINT "to start new run." LOCATE 22, 1: PRINT STRING$(70, 32); LOCATE 22, 1: PRINT "Which option (ENTER to execute) (ESC for MENU) ?"; ESC = 0 210 Z$ = INKEY$: IF Z$ = "" THEN 210 IF Z$ = ESC$ THEN ESC = 1: GOTO 250 IF Z$ = CHR$(13) THEN 250 IF Z$ = "1" THEN LOCATE 21, 1: INPUT "New K1 "; K1: GOTO 200 IF Z$ = "2" THEN LOCATE 21, 1: INPUT "New Orbit Radius a.u "; MULT: GOTO 200 IF Z$ = "3" THEN LOCATE 21, 1: INPUT "New Tilt degrees "; VID: GOTO 200 IF Z$ = "4" THEN LOCATE 21, 1: INPUT "New Eccentricity "; EV#: GOTO 200 IF Z$ = "5" THEN LOCATE 21, 1: INPUT "New Orbit period days "; PVD: GOTO 200 IF Z$ = "6" THEN LOCATE 21, 1: INPUT "New Omega degrees "; VOD: GOTO 200 IF Z$ = "7" THEN LOCATE 21, 1: INPUT "New omega Degrees "; VWd: GOTO 200 IF Z$ = "8" THEN LOCATE 21, 1: INPUT "New Observer Dist (LY) "; DIST: GOTO 200 Z = ASC(Z$) IF Z > 96 AND Z < 123 THEN Z$ = CHR$(Z - 32) IF Z$ = "C" AND MODE = 1 THEN MODE = 2: MODE$ = " C ": GOTO 200 IF Z$ = "C" AND MODE = 2 THEN MODE = 1: MODE$ = "C+V": GOTO 200 IF Z$ = "D" AND DA = 1 THEN DA = 2: DA$ = "DOPPLER": GOTO 200 IF Z$ = "D" AND DA = 2 THEN DA = 1: DA$ = "dTau/dt": GOTO 200 IF Z$="E" AND EC =0 THEN EC =1:EC$ ="ON": GOTO 200 IF Z$="E" AND EC =1 THEN EC =0:EC$ = "OFF": GOTO 200 IF Z$ = "N" AND NumComps = 1 THEN NumComps = 2: GOTO 200 IF Z$ = "N" AND NumComps = 2 THEN NumComps = 1: GOTO 200 IF Z$ = "P" THEN LOCATE 21, 1: INPUT "New Fraction "; Frac: GOTO 200 IF Z$ = "T" AND TSF = 1.1 THEN TSF = .7: TSF$ = " ON": GOTO 200 IF Z$ = "T" AND TSF = .7 THEN TSF = 1.1: TSF$ = "OFF": GOTO 200 IF Z$ = "Z" THEN RUN GOTO 200 250 RETURN 270 CLS PRINT USING "ORBIT RADIUS = #.### AU "; MULT; PRINT USING "PERIOD = ##.## DAYS "; PVD; PRINT USING "AVG ORBIT SPEED = ###.## KM/SEC"; V * .001 PRINT USING "DE SITTER DIST = ###.# LY "; L#; PRINT USING "OBSERVER DIST = ###.##### LY "; DIST; ON MODE GOTO 275, 280 275 PRINT USING "\ \"; DA$ GOTO 300 280 PRINT "DOPPLER C=CONST" 300 'LOCATE 3, 1: PRINT "Apparent radial velocity = Km/Sec" PRINT USING "ORBIT ECCENTRICITY = #.###"; EV#; LOCATE 3,30: PRINT USING "Perihelion = ### deg";VWd; LOCATE 3, 55: PRINT "Space bar to pause/restart" LOCATE 12, 9: PRINT "1"; LOCATE 9, 1: PRINT STRING$(30, 32); IF TSF$ = " ON" THEN LOCATE 9, 1: PRINT " 4 2 ----> OBS"; IF TSF$ = "OFF" THEN LOCATE 9, 1: PRINT "4 2 ----> OBS"; LOCATE 5, 9: PRINT "3"; LOCATE 15, 3: PRINT "BRT"; LOCATE 19, 3: PRINT "RECEDING"; LOCATE 21, 3: PRINT "RAD VEL"; LOCATE 23, 3: PRINT "APPROACHING"; 'ADJUST HORIZONTAL SCALE FOR SMALLER ELIPSES 'FOR I = 1 TO 15 ' X = 16 + INT((I - 1) * 7.5 - .5) ' IF I > 0 AND I < 5 THEN J = I: GOTO 305 ' IF I > 4 AND I < 9 THEN J = I - 4: GOTO 305 ' IF I > 8 THEN J = I - 8 ' IF X > 78 THEN 306 305 'LOCATE 24, X: PRINT STR$(J); 306 'NEXT I FOR I=1 TO NumComps Xmax(i)=-1e12:Xmin(i)=1e12 Ymax(i)=-1e12:Ymin(i)=1e12 NEXT I RunNo = 1 'Zero "pulse arrival time" scaling bins FOR I = 0 TO NB: NPR(I) = 0: NEXT I 'Ecliptic to Graph 310 ON RunNo GOTO 315,320 315 MULT1 = MULT VODD = VOD GOTO 330 320 MULT1=MULT*Frac 330 OrbRad = MULT1 * AU VODD = VOD - 180 'Variable Component VIR = VID * P180 'Iota (orbit tilt) radians VOR = VODD * P180 'Omega radians (ascending node) VWR = VWD * P180 'omega radians (asc node to perihelion) VCI = COS(VIR) VSI = SIN(VIR) VCO = COS(VOR) VSO = SIN(VOR) VCW = COS(VWR) VSW = SIN(VWR) VL1 = VCO * VCW - VSO * VSW * VCI' + - VM1 = VSO * VCW + VCO * VSW * VCI' + + VN1 = VSW * VSI ' + VL2 = -VCO * VSW - VSO * VCW * VCI' - - VM2 = -VSO * VSW + VCO * VCW * VCI' - + VN2 = VCW * VSI ' + 'Surface rotational speed components can be added to VX# and VY# 400 Xobs# = DIST * LY# 'X coord of observer in Km (from C.O.G.) Yobs# = 0 'Y coord of observer in Km Zobs# = 0 'Z coord of observer in KM 440 'Draw horizontal line for Radial Velocity info Vrad# = 0 FOR bin% = LBL TO NB STEP 2 GOSUB 2400 NEXT bin% 450 'Set up initial conditions for ellipse generator PVS = PVD * SecsDay 'Period of Component in Seconds Vorb = TwoPi * OrbRad / PVS 'Average Orbit Speed in Meters/sec 'lprint using "Observer distance = ####.####### LY";DIST 'lprint " Temit DTavg Favg Vrel" 452 Dmul=(.7e-3)/(DIST)^.7 ' used as scale adjuster for distance ' in lines 1300+ on RunNo goto 454,456 454 'For First run Ks=OrbRad*(1-EV#) 'Starting X comp (in plane of ellipse) Nu = 0 'Starting Y comp KsV = 0 'Starting Vx NuV = (1 + K2 * EV#^1.1) * Vorb 'Starting Vy goto 460 456 'For Second run Ks=-OrbRad*(1-EV#) 'Starting X comp (in plane of ellipse) Nu = 0 'Starting Y comp KsV = 0 'Starting Vx NuV = -(1 + K2 * EV#^1.1) * Vorb 'Starting Vy 460 STP = 1 / NS 'time between plotted positions dt# = PVS * STP RMAX# = 0 RMIN# = 2 D$ = "BM"'This is used to skip to plotted point without drawing a line COUNT=0 FOR Temit = 0 TO NC STEP STP COUNT=COUNT+1 for ii=1 to 9000:next ii 'speed reduction 'Calculate ellipse X's and Y's ( Ks's and Nu's) R2# = (Ks ^ 2 + Nu ^ 2)'R Squared R# = SQR(R2#) 'locate 22,1:print using "R/AU = ###.#### ";R#/AU KdV = 1E+29 * (K1 / NS) * (MULT1 ^ 3 / R2#) KsV = KsV - KdV * Ks / R#'Update X- component of Velocity NuV = NuV - KdV * Nu / R#'Update Y- component of Velocity Ks = Ks + KsV * dt# Nu = Nu + NuV * dt# 465 Xc# = VL1 * Ks + VL2 * Nu'X for emitting component Yc# = VM1 * Ks + VM2 * Nu Zc# = VN1 * Ks + VN2 * Nu IF Xc# = 0 THEN Theta = Pi / 2 * SGN(Yc#): GOTO 467 i=RunNo 'For orbit purity check IF Xc#>Xmax(i) then Xmax(i)=Xc# IF Xc#Ymax(i) then Ymax(i)=Yc# IF Yc# 0 THEN Theta = Pi + Theta: GOTO 467'2nd Quadrant IF Xc# < 0 AND Yc# < 0 THEN Theta = Pi + Theta: GOTO 467'3rd Quadrant IF Xc# > 0 AND Yc# < 0 THEN Theta = 2 * Pi + Theta'4th Quadrant 467 'LOCATE 4,57:PRINT USING "Theta = ###.## radians";Theta; GOSUB 2000 'Plot Variable Star positions RLY# = (Xobs# - Xc#) 'This will give bogus Vx# on first time thru IF Temit <= STP THEN 470 Vx# = (Xc# - Xold#) / dt# Vy# = (Yc# - Yold#) / dt# 'Vz# = (Zc# - Zold#) / dt# Vxy#=(Vx#^2+Vy#^2)^.5 470 Xold# = Xc#: 'X-Old's Yold# = Yc#: 'Y-Old's 'Zold# = Zc#: 'Z-Old's 'Calculate Ax# 'acceleration of source w resp to obs IF Temit <= STP THEN 480 'This will give a bogus result the first time thru dVx# = (Vx# - OVx#) 480 OVx# = Vx# 'Old Vx Ax# = 150000! * dVx# / dt# ' why 15e4? ON MODE GOTO 910, 940 910 'Ballistic theory of light ON DA GOTO 920, 930 920 'dt / D tau (Ritz's hypothesis) 'Vrad# = .5 * Ax# : 'don't use acceleration 'Vrad will be computed in 1300.. GOTO 1000 930 'Doppler (Sekerin's Ritzian with Doppler) Vrad# = Vx# GOTO 1000 ' 940 'Wave theory of light Vrad# = Vx# GOTO 1000 1000 'Calculate Travel times ON MODE GOTO 1100, 1200 'Mode 1 = C+V; Mode 2 = C 1100 'Ballistic speed of light C+V X,Y components Sum# = C + Vx# T# = (RLY# / Sum#) 'Travel time to Observer in secs GOTO 1300 1200 'Constant speed of light C T# = RLY# / C 'Travel time to Observer in secs 1300 'Calculate Time of Arrival (TOA) TOA# = Temit * YrFrac + T# / YRS# - DIST 'TOA at observer 'Calculate d Tau/dt (Tau is modulated arrival time) TOA#(COUNT)=TOA#*SecsDay*YrDays DELTAU#=TOA#(COUNT)-TOA#(COUNT-1) DTauDT#=ABS((DELTAU#)/dt#) 'd Tau/dt 'DTauDT#= (DELTAU#)/dt# 'd Tau/dt IF MODE=2 THEN 1302 IF DA=2 THEN 1302 'Ballistic theory D Tau / dt radial velocity computation Vrad#=((1/DTauDT# - 1) * c)*Dmul ' Vrad# for c+v 'See line 452 for Dmul 1302 'Z$=INKEY$:IF Z$="" THEN 1302 'if Temit>1.144 then lprint chr$(12):end 'Show arrival time modulation effects for second orbit '******IF Temit > NC/2 THEN Vrad#=Vrad#/DTauDT 'Don't get rid of following. It's a trouble shooting feature 'Locate 16,1:print using "Te*YrFrac = #####.#### ";Temit*YrFrac; 'Locate 17,1:print using "T/yrs = #####.#### ";T#/YRS#; 'Locate 18,1:print using "DIST = #####.#### ";DIST; 'Locate 19,1:print using "Tarr = #####.#### ";TOA# BIN% = INT(20 + (365 / PVD) * 80 * TOA#) 'BIN% is used for both Intensity and Apparent Radial velocity plots IF EC=0 THEN 1370 ' Eclipse FCT is OFF ignore 1360 1360 IF Theta>.9*Pi AND Theta <1.1*Pi THEN 1400 1370 IF bin%<0 then bin%=NB+bin%:GOTO 1380 IF bin%>NB then bin%=bin%-NB 1380 NPR(bin%) = NPR(bin%) + 1 IF bin% < LBL OR bin% > NB THEN 1500 YB = NPR(bin%) IF Temit <= STP THEN 1500 'Prog doesn't get right figures first iteration 1400 GOSUB 2300 'Plot intensity bin heights as they fill GOSUB 2400 'Plot points on radial velocity curve 1450 'This shows the TOA of every twentieth arriving "sample" 'IF COUNT/10 <> INT(COUNT/10) THEN 1470 'Yg= INT(25 + COUNT/20) 'DRAW "BM" + STR$(Xg) + "," + STR$(Yg) 'DRAW "M" + STR$(Xg) + "," + STR$(Yg) 1470 Z$ = INKEY$: IF Z$ = "" THEN 1500 IF Z$ = CHR$(27) THEN Temit = NC: GOTO 1500 IF Z$ <> " " THEN 1500 1490 Z$ = INKEY$: IF Z$ = "" THEN 1490 IF Z$ = ESC$ THEN Temit = NC 1500 NEXT Temit 'Play it again Sam for Second star of binary IF NumComps = 1 OR RunNo = 2 THEN 1900 'Flip second component to opposition of first RunNo = 2 GOTO 310 1900 'Draw intensity envelope bin% = LBL: YB = NPR(LBL): GOSUB 2500 FOR bin% = LBL + 1 TO NB - 1 YB = (NPR(bin% - 1) + 4 * NPR(bin%) + NPR(bin% + 1)) / 6 GOSUB 2600 NEXT bin% LOCATE 4, 43: PRINT STRING$(30, " "); 'Locate 5,45:print using "Ecentricity = #.###";EV; 'Locate 6,45 'Print using "2* OrbRad = ##.###e8";2*OrbRad*1e-8 'For i=1 to NumComps ' Dx(i)=(Xmax(i)-Xmin(i))*1e-8 ' Dy(i)=(Ymax(i)-Ymin(i))*1e-8 ' DxDy(i)=Dx(i)/Dy(i) ' Locate 7+i,45 ' print using "dx=##.###e8 dy=##.###e8 dx/dy=#.####";dx(i);dy(i);DxDy(i); 'Next i 'Pause for picture 1920 Z$ = INKEY$: IF Z$ = "" THEN 1920 LOCATE 23, 1: PRINT STRING$(78, 32); LOCATE 23, 5: PRINT USING "Extinction Dist LY = #####.### "; DIST; LOCATE 23, 37: INPUT "New Val (ENTER to change mode) "; Z IF Z = 999 OR Z = 0 THEN RETURN DIST = Z: GOTO 270 RETURN 2000 'Plot x,y positions of Component 1 'Xg = INT(HS * Xc# * TSF / MULT1 + XS + 5 * Temit) Xg = INT(HS * Xc# * .8*TSF / MULT1 + XS + 4 * Temit) '.8*TSF is to squeeze CRT display so screen dump comes out OK Yg = INT(VS * Yc# * 1.1 / MULT1 + YS) IF Xg < 0 OR Xg > 600 THEN RETURN IF Yg < 0 OR Yg > 300 THEN RETURN DRAW "BM" + STR$(Xg) + "," + STR$(Yg) DRAW "M" + STR$(Xg) + "," + STR$(Yg) RETURN 2300 'Draw dots in intensity bins Xg = INT(Xmult * bin% + Xorigin) Yg = INT(VB * YB + YBo) IF Xg < 0 OR Xg > 680 THEN RETURN IF Yg < 0 OR Yg > 300 THEN RETURN DRAW "BM" + STR$(Xg) + "," + STR$(Yg) DRAW "M" + STR$(Xg) + "," + STR$(Yg) RETURN 2400 'Draw Radial Velocity info Xg = INT(Xmult * bin% + Xorigin) Yg = INT(VRV * Vrad# * SRF * 3000! + YVo) 'Yg = INT(-VRV * DTauDT * SRF * 3e7 + YVo) IF Xg < 0 OR Xg > 680 THEN RETURN IF Yg < 30 OR Yg > 300 THEN RETURN DRAW "BM" + STR$(Xg) + "," + STR$(Yg) DRAW "M" + STR$(Xg) + "," + STR$(Yg) RETURN 2500 'Draw first point of intensity envelope Xg = INT(Xmult * bin% + Xorigin) Yg = INT(VB * YB + YBo) IF Xg < 0 OR Xg > 600 THEN RETURN IF Yg < 0 OR Yg > 300 THEN RETURN DRAW "BM" + STR$(Xg) + "," + STR$(Yg) DRAW "M" + STR$(Xg) + "," + STR$(Yg) RETURN 2600 'Draw remaining points of intensity envelope Xg = INT(Xmult * bin% + Xorigin) Yg = INT(VB * YB + YBo) 'IF Xg<0 OR Xg>600 THEN RETURN 'IF Yg<0 OR Yg>300 THEN RETURN DRAW "M" + STR$(Xg) + "," + STR$(Yg) RETURN 4000 'Print program info CLS PRINT " D-CEPHEI" PRINT " Robert S. Fritzius 305 Hillside Drive Starkville MS 39759 USA" PRINT PRINT " This program models V.I. Sekerin's (1988) hypothetical (C+V) modulation" PRINT "effects on the observed brightness and apparent velocity of spectroscopic" PRINT "binary stars. It uses the relation (C-V)/D = T + (C+V)/D to calculate the" PRINT "distance required for slower light (component receeding from observer) to" PRINT "be overtaken by the faster light (component approaching observer) where" PRINT "T = one half orbital period and D is the distance to the observer. PRINT " Orbital elements for one or two visual components of a binary star" PRINT "are used to generate 2 1/4 cycles of orbital travel for each component." PRINT "At one degree intervals each visual component 'emits' a light pulse toward" PRINT "an observer who is located at the extinction distance from the binary." PRINT "This extinction length is the distance at which essentially all of the" PRINT "initial starlight has been absorbed and reradiated by the interstellar" PRINT "medium, which is assumed to be stationary with respect to the observer. PRINT " The program is written as though the light is unaffected by extinction" PRINT "out to the extinction distance." PRINT " Source-to-observer travel times and apparent velocity variations" PRINT "are calculated for each pulse. These times are filed in brightness " PRINT PRINT "N = Next page M = Menu ESC = Quit" 4020 Z$=INKEY$:IF Z$="" THEN 4020 IF Z$=ESC$ THEN END IF Z$="N" OR Z$="n" THEN 4030 IF Z$="M" OR Z$="m" THEN 10 4030 CLS PRINT "time of arrival (TOA) bins. The brightness bins also serve as accumulators" PRINT "so that their final summations show what an observer would 'see' in real time." PRINT "In the C+V mode, bin filling is NOT a time-wise linear sequence. " PRINT PRINT "Pre-extinction light speed is selectable either as C or C+V, where V " PRINT "is the visible source speed in the direction of the observer. Arrival" PRINT "times and apparent velocities are calculated for each pulse. Arrival times" PRINT "are 'filed' in brightness time of arrival (TOA) bins. These bins also serve" PRINT "as accumulators so that their final summations show what an observer would " PRINT "'see' in real time. In the C+V mode, bin filling is NOT a time-wise linear sequence. " PRINT PRINT "You may select Sekerin's Doppler (velocity) effects or Ritz's acceleration" PRINT "effects to calculate observed apparent velocity variations. Uniquely pulsar-" PRINT "like presentations occur where the extinction distance approximates or exceeds" PRINT "0.5 of the 'overtake' distance." PRINT PRINT "The program's ellipse generator goes strange if you select an ellipticity" PRINT "that exceeds 0.2. PRINT PRINT "P = Previous page Any other key to return to Menu" 4040 Z$ = INKEY$: IF Z$ = "" THEN 4040 IF Z$ = "P" OR Z$="p" THEN 4000 GOTO 10