next up previous contents
Next: Detailed explanation of phase_frequency() Up: GRASP Routines: Gravitational Radiation Previous: Function: phase_frequency()   Contents

Example: phase_evoltn program

0 This example uses phase_frequency() to compute the phase and frequency evolution for an inspiraling binary and prints the results on the screen (stdout). The other output messages go to stderr. Includes/phase_evoltn.tex

Here is the output from the phase_evoltn example:

GRASP: Message from function phase_frequency() at line number 439 of file "pN_chirp.c".
Frequency evolution no longer monotonic.
Phase evolution terminated at frequency and step: 911.681702    13357
Terminating chirp. Termination code set to:     1201
Returning to calling routine.
$Id: man_inspiral.tex,v 1.42 1999/09/29 19:44:41 ballen Exp $
$Name:  $

m1=1.400000  m2=1.400000  Initial_Freq=60.000000
steps_filld=13357  steps_alloc=16384  Max_Freq_Actual=911.681702
time_in_band=1.353408 clscnc_time=1.353573
Termination code: 1201

0       0.000000        0.000000        60.000000
1       0.000101        0.038204        60.001675
2       0.000203        0.076369        60.003353
3       0.000304        0.114627        60.005020
4       0.000405        0.152820        60.006695
5       0.000507        0.191071        60.008366
6       0.000608        0.229173        60.010052

 ...      ...             ...              ...

13349   1.352699        797.669800      720.294189
13350   1.352800        798.134949      741.157715
13351   1.352901        798.614136      764.565796
13352   1.353003        799.109192      791.015686
13353   1.353104        799.622192      821.015320
13354   1.353205        800.155457      854.720337
13355   1.353307        800.710999      890.133667
13356   1.353408        801.286499      911.681702

The first seven lines of output come directly from phase_frequency(), and are printed to stderr. These give a warning message telling why the chirp calculation was terminated; it no longer had monotonically increasing frequency. It also tells where the chirp was terminated; after computing 13357 points it has reached a frequency of 907Hz. The termination code (1201) is also printed. Knowing the termination code makes it easy to find the segment of source code that produced the termination; just do a search for the character string ``1201'' and you will find the line of code where the termination code was set. Setting err_cd_sprs greater than 1201 would suppress the printing of this warning message and all messages with a termination code less than 1201. However, even without the printed message the calling routine can determine the value of the termination code; it is returned by phase_frequency().

The rest of the output comes from the phase_evoltn program. The quantity time_in_band$=($steps_filld$-1)\times$Sample_Time is the length (in seconds) of the computed chirp. The quantity clscnc_time is the value of $t_c$ that enters Eqs.([*]) below. The four column output from left to right is the integer index of the data points, time stamp of each point in seconds (starting arbitrarily from zero), the orbital phase in radians (starting arbitrarily from zero), and the orbital frequency (starting from the initial frequency of 60Hz).

To summarize: It takes about 1.35 seconds for two 1.4$M_\odot$ objects to spiral in from an orbital frequency of 60Hz to an orbital frequency of 911Hz. The chirp calculation was terminated at 911Hz - instead of the requested 2000Hz - because the post-Newtonian expression used to compute the chirp is clearly out of its region of validity: the frequency is no longer increasing. Examining the last few data points shows that the frequency was rising quickly - as expected - until the last two data points. During this inspiral the orbital system went through 811.09 $/(2 \pi)\approx $127.53 revolutions. The two integer numbers steps_filld and steps_alloc are the number of actual data points computed and the number of floating point memory slots allocated, respectively. (Memory is allocated in blocks of 4096 floats at a time. Thus steps_alloc will generally exceed steps_filld.) The values of the phase and frequency at every $1/$Sample_Time $=1.10333\times10^{-4}$ seconds starting from when the binary had an orbital frequency of 60Hz until it neared ``coalescence'' at 911Hz have been calculated.

next up previous contents
Next: Detailed explanation of phase_frequency() Up: GRASP Routines: Gravitational Radiation Previous: Function: phase_frequency()   Contents
Bruce Allen 2000-11-19