Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALPulsar 7.1.1.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Header ExtrapolatePulsarSpins.h

Detailed Description

Extrapolate the Pulsar spin-paramters \( \{f^{(k)}\}\equiv\{f, \dot{f},\ddot{f},...\} \) , and "spin-ranges" \( \{ f^{(k)}, \Delta f^{(k)} \} \) from one SSB epoch to another.

Author
Reinhard Prix

The central function of this module is XLALExtrapolatePulsarSpinRange(), which extrapolates a complete "spin range" (defined as PulsarSpinRange) from one epoch to another. A "spin-range" contains an epoch, and two vectors, \( f^{(k)} \) and \( \Delta f^{(k)} \) (where "canonical" ordering refers to \( \Delta f^{(k)} >= 0 \) for all k.

The extrapolation is defined by the pulsar spindown-model:

\[ f(\tau_1) = f(\tau_0) + \frac{\dot{f}(\tau_0)}{1!} \,\Delta\tau + \frac{\ddot{f}(\tau_0)}{2!} \,\Delta\tau^2 + ... = \sum_{k=0}^s \frac{f^{(k)}(\tau_0)}{k!}\, \Delta\tau^k\,, \]

where

\[\Delta\tau \equiv \tau_1 - \tau_0\]

and therefore generally

\[ f^{(l)}(\tau_1) = \sum_{k=0}^{s - l} \frac{ f^{(k+l)}(\tau_0)}{k! }\, \Delta\tau^k\,. \]

This expression is used to extrapolate a whole "spin-range", namely at each spindown-order \( (l) \) the extrapolated range is given by

\[ \min\left[ f^{(l)}(\tau_1) \right] = \sum_{k=0}^{s - l} \frac{1}{k!} \min\left[ f^{(k+l)}(\tau_0) \, \Delta\tau^k \right]\,. \]

\[ \max\left[ f^{(l)}(\tau_1) \right] = \sum_{k=0}^{s - l} \frac{1}{k!} \max\left[ f^{(k+l)}(\tau_0) \, \Delta\tau^k \right]\,. \]

This ensures that the range will be correctly extrapolated even if \( \tau_1 < \tau_0 \) , i.e. \( \Delta\tau < 0 \) .

The initial-phase extrapolation in XLALExtrapolatePulsarPhase() proceeds in the other direction, extrapolating \( \phi(\tau_0) \) to \( \phi(\tau_1) \) , where the spins are given at \( \tau_1 \) , i.e. \( f^{(k)}(\tau_1) \) . By using the above equations, one can arrive at the following expression:

\[ \phi(\tau_1) = \phi(\tau_0) - \sum_{k=0}^s \frac{f^{(k)}(\tau_1)}{(k+1)!} \, (-\Delta\tau)^{k+1} \,. \]

This function is used in XLALEstimatePulsarAmplitudeParams() to propagate the estimated initial phase from the internal reference time back to the user-input reference time.

Prototypes

int XLALInitPulsarSpinRangeFromSpins (PulsarSpinRange *range, const LIGOTimeGPS *refTime, const PulsarSpins fkdot1, const PulsarSpins fkdot2)
 Initialise a PulsarSpinRange struct from two PulsarSpins structs. More...
 
int XLALExtrapolatePulsarSpinRange (PulsarSpinRange *range1, const PulsarSpinRange *range0, const REAL8 dtau)
 General pulsar-spin extrapolation function: given a "spin-range" (ie spins + spin-bands) range0 at time \( \tau_0 \) , propagate the whole spin-range to time \( \tau_1 \) . More...
 
int XLALExtrapolatePulsarSpins (PulsarSpins fkdot1, const PulsarSpins fkdot0, REAL8 dtau)
 Extrapolate the Pulsar spin-parameters \( \{f, \dot{f},\ddot{f},...\} \) (fkdot0) from the initial reference-epoch \( \tau_0 \) to the new reference-epoch \( \tau_1 \) . More...
 
int XLALExtrapolatePulsarPhase (REAL8 *phi1, const PulsarSpins fkdot1, const REAL8 phi0, const REAL8 dtau)
 Extrapolate phase \( \phi_0 \) from \( \tau_0 \) to \( \tau_1 \) , given the spins fkdot1 at \( \tau_1 \) . More...
 
int XLALCWSignalCoveringBand (REAL8 *minCoverFreq, REAL8 *maxCoverFreq, const LIGOTimeGPS *time1, const LIGOTimeGPS *time2, const PulsarSpinRange *spinRange, const REAL8 binaryMaxAsini, const REAL8 binaryMinPeriod, const REAL8 binaryMaxEcc)
 Determines a frequency band which covers the frequency evolution of a band of CW signals between two GPS times. More...
 
int XLALCWSignalBand (REAL8 *minFreq, REAL8 *maxFreq, const DetectorStateSeries *detStates, const PulsarDopplerParams *doppler)
 Determines the frequency band occupied by the frequency evolution of a given CW signal between two GPS times. More...
 
DetectorStateSeriesXLALPrepareCWSignalBand (SkyPosition *skypos_maxdoppler, const LIGOTimeGPS tStart, const REAL8 Tspan, const REAL8 dT, const LALDetector *detector, const EphemerisData *edat)
 (Optional) Helper function for using XLALCWSignalBand(): compute DetectorStateSeries for given time-span and detector, and optionally also the sky-position with maximal Doppler band-width. More...
 

Function Documentation

◆ XLALInitPulsarSpinRangeFromSpins()

int XLALInitPulsarSpinRangeFromSpins ( PulsarSpinRange range,
const LIGOTimeGPS refTime,
const PulsarSpins  fkdot1,
const PulsarSpins  fkdot2 
)

Initialise a PulsarSpinRange struct from two PulsarSpins structs.

Parameters
[out]rangeoutput spin range
[in]refTimereference time
[in]fkdot1input spins
[in]fkdot2input spins

Definition at line 70 of file ExtrapolatePulsarSpins.c.

◆ XLALExtrapolatePulsarSpinRange()

int XLALExtrapolatePulsarSpinRange ( PulsarSpinRange range1,
const PulsarSpinRange range0,
const REAL8  dtau 
)

General pulsar-spin extrapolation function: given a "spin-range" (ie spins + spin-bands) range0 at time \( \tau_0 \) , propagate the whole spin-range to time \( \tau_1 \) .

Note
*range1 is allowed to point to the same spin-range as *range0: the input will be overwritten with the output.
The output-range is in the 'canonical' order of \( [ f^{(k)}, f^{(k)} + \Delta f^{(k)}] \) , where \( \Delta f^{(k)} \ge 0 \) .
Parameters
[out]range1output spin range
[in]range0input spin range
[in]dtautime difference \( \tau_1 - \tau_0 \) to extrapolate range0 to

Definition at line 99 of file ExtrapolatePulsarSpins.c.

◆ XLALExtrapolatePulsarSpins()

int XLALExtrapolatePulsarSpins ( PulsarSpins  fkdot1,
const PulsarSpins  fkdot0,
REAL8  dtau 
)

Extrapolate the Pulsar spin-parameters \( \{f, \dot{f},\ddot{f},...\} \) (fkdot0) from the initial reference-epoch \( \tau_0 \) to the new reference-epoch \( \tau_1 \) .

This is equivalent to XLALExtrapolatePulsarSpins(), but uses the fixed-size array-type PulsarSpins instead, which is easier to handle and avoids any dynamic-memory hassles.

Note
This can be called with fkdot1 == fkdot0, in which case the input will be correctly replaced by the output.
Parameters
[out]fkdot1output spin-parameter array
[in]fkdot0input spin-parameter array
[in]dtautime difference \( \tau_1 - \tau_0 \) to extrapolate fkdot0 to

Definition at line 159 of file ExtrapolatePulsarSpins.c.

◆ XLALExtrapolatePulsarPhase()

int XLALExtrapolatePulsarPhase ( REAL8 phi1,
const PulsarSpins  fkdot1,
const REAL8  phi0,
const REAL8  dtau 
)

Extrapolate phase \( \phi_0 \) from \( \tau_0 \) to \( \tau_1 \) , given the spins fkdot1 at \( \tau_1 \) .

Returns \( \phi_1 \) in the range \( [0, 2\pi] \) .

Parameters
[out]phi1output phase at \( \tau_1 \)
[in]fkdot1spin-params at reference \( \tau_1 \)
[in]phi0input phase at \( \tau_0 \)
[in]dtautime difference \( \tau_1 - \tau_0 \) to extrapolate phi0 to

Definition at line 205 of file ExtrapolatePulsarSpins.c.

◆ XLALCWSignalCoveringBand()

int XLALCWSignalCoveringBand ( REAL8 minCoverFreq,
REAL8 maxCoverFreq,
const LIGOTimeGPS time1,
const LIGOTimeGPS time2,
const PulsarSpinRange spinRange,
const REAL8  binaryMaxAsini,
const REAL8  binaryMinPeriod,
const REAL8  binaryMaxEcc 
)

Determines a frequency band which covers the frequency evolution of a band of CW signals between two GPS times.

The calculation accounts for the spin evolution of the signals, and the maximum possible Dopper modulation due to detector motion, and (for binary signals) binary orbital motion.

Parameters
[out]minCoverFreqMinimum frequency of the covering band
[out]maxCoverFreqMaximum frequency of the covering band
[in]time1One end of the GPS time range
[in]time2The other end of the GPS time range
[in]spinRangeFrequency and spindown range of the CW signals
[in]binaryMaxAsiniMaximum projected semi-major axis a*sini/c (= 0 for isolated sources)
[in]binaryMinPeriodMinimum orbital period (s); must be 0 for isolated signals
[in]binaryMaxEccMaximal binary eccentricity: must be 0 for isolated signals

Definition at line 249 of file ExtrapolatePulsarSpins.c.

◆ XLALCWSignalBand()

int XLALCWSignalBand ( REAL8 minFreq,
REAL8 maxFreq,
const DetectorStateSeries detStates,
const PulsarDopplerParams doppler 
)

Determines the frequency band occupied by the frequency evolution of a given CW signal between two GPS times.

The calculation accounts for the spin evolution of the signals, and the actual Dopper modulation due to detector motion, and (for binary signals) binary orbital motion.

Parameters
[out]minFreqMinimum frequency of the covering band
[out]maxFreqMaximum frequency of the covering band
[in]detStatesdetector state series, cf XLALGetDetectorStates()
[in]dopplerSignal phase-evolution parameters

Definition at line 321 of file ExtrapolatePulsarSpins.c.

◆ XLALPrepareCWSignalBand()

DetectorStateSeries * XLALPrepareCWSignalBand ( SkyPosition skypos_maxdoppler,
const LIGOTimeGPS  tStart,
const REAL8  Tspan,
const REAL8  dT,
const LALDetector detector,
const EphemerisData edat 
)

(Optional) Helper function for using XLALCWSignalBand(): compute DetectorStateSeries for given time-span and detector, and optionally also the sky-position with maximal Doppler band-width.

The calculation accounts for the spin evolution of the signals, and the actual Dopper modulation due to detector motion, and (for binary signals) binary orbital motion.

Parameters
[out]skypos_maxdoppler[optional] sky-position of maximal Doppler band-width over the sky
[in]tStartstart GPS time of observing interval
[in]Tspantotal span of observing interval in seconds
[in]dTstep-size (in seconds) to use to sample output detector-state series
[in]detectordetector, cf XLALGetSiteInfo()
[in]edatephemeris data, cf XLALInitBarycenter()

Definition at line 373 of file ExtrapolatePulsarSpins.c.