The Timing & Noise Model
The pulsar timing & noise model (a.k.a. pulsar ephemeris) is a generative mathematical model for the TOA measurements and uncertainties (and the DM measurements & uncertainties in the wideband paradigm). The timing residuals are the differences between measured TOAs and the TOAs predicted by the timing model. See Hobbs+ 2006 and Edwards+ 2006 for details.
The physical and instrumental effects that affect one TOA at a time are represented as Components, and the effects that are correlated across multiple TOAs are modeled as a Kernel.
Vela.Component — TypeComponentAbstract base type of all timing & noise model components which affect one TOA at a time.
Each component has a correct_toa() method which produces a TOA correction.
Vela.correct_toa — Functioncorrect_toa(::Component, ::TOABase, ::TOACorrectionBase, ::NamedTuple)Correct the TOA using a delay, phase, observing frequency shift, uncertainty scaling, doppler factor, etc.
Kernels will be discussed in its own section.
TOA corrections
A TOA correction as mentioned above can be one or more of the following:
- A delay that modifies the TOA value
- A phase correction that modifies the TOA phase
- A Doppler correction that modifies the observing frequency and the pulsar spin frequency
- An EFAC or EQUAD that modifies the TOA uncertainty
- A DM correction that modifies the wideband DM measurement
- A DMEFAC or DMEQUAD that modifies the wideband DM uncertainty
The accumlated TOA corrections are represented by the TOACorrection and WidebandTOACorrection types, which are derived from TOACorrectionBase.
Vela.TOACorrectionBase — TypeTOACorrectionBaseAn abstract base class representing accumulated timing & noise model corrections applied to a TOA.
Vela.TOACorrection — TypeTOACorrectionThe accumulated timing & noise model corrections applied to a narrowband TOA.
Vela.WidebandTOACorrection — TypeWidebandTOACorrectionThe accumulated timing & noise model corrections applied to a wideband TOA.
The following methods extract some of the corrected quantities of interest.
Vela.corrected_toa_value — FunctionTOA value after delay correction.
Vela.doppler_corrected_observing_frequency — FunctionObserving frequency in the barycentric or pulsar frame, depending on the correction level. The observing_frequency is originally in the topocentric frame.
Vela.doppler_shifted_spin_frequency — Functiondoppler_shifted_spin_frequency(::TOACorrection)Spin frequency in topocentric or barycentric frame, depending on the correction level. The spin_frequency is originally in the pulsar frame.
Vela.scaled_toa_error_sqr — Functionscaled_toa_error_sqr(toa::TOA, toacorr::TOACorrection)Squared TOA uncertainty after applying EFAC and EQUAD.
Vela.scaled_dm_error_sqr — Functionscaled_dm_error_sqr(::DMInfo, ::DMInfoCorrection)Squared DM uncertainty after applying DMEFAC and DMEQUAD.
Vela.phase_residual — Functionphase_residual(::TOA, ::TOACorrection)TOA phase residual
Vela.dm_residual — Functiondm_residual(::DMInfo, ::DMInfoCorrection)Compute DM residual corresponding to a wideband TOA.
There are three types of Components as shown below based on what type of corrections they provide.
Component
├─ DelayComponent
│  ⋮
│  
├─ MarginalizedTimingModel
├─ PhaseComponent
│  ⋮
│  
└─ WhiteNoiseComponent
   ⋮
   
Delay components
DelayComponents correct the measured TOA by subtracting certain delays.
Vela.DelayComponent — TypeDelayComponentAbstract base type of all timing model components which contribute a time delay correction to a TOA.
DelayComponent has further subtypes which represent different physical processes producing delays.
DelayComponent
├─ BinaryComponent
│  ⋮
│  
├─ ChromaticComponent
│  ⋮
│  
├─ DispersionComponent
│  ⋮
│  
├─ FrequencyDependentBase
│  ⋮
│  
├─ RedNoiseBase
│  ⋮
│  
└─ SolarSystem
Solar system delays
Vela.SolarSystem — TypeSolar system Rømer delay, Parallax delay, and Shapiro delay.
Corresponds to AstrometryEquatorial, AstrometryEcliptic,  and SolarSystemShapiro in PINT.
Reference: Edwards+ 2006
In addition to a delay, SolarSystem also producess a Doppler correction which applies to the observing frequency and the pulsar spin frequency. 
This component barycenters the TOA. It will skip TOAs that are already barycentered, e.g., TOAs measured using space-based telescopes. The is_barycentered() function checks whether a TOA has been barycentered.
Vela.is_barycentered — Functionis_barycentered(::TOA)::BoolChecks if a TOA has been barycentered.
Dispersion delays
DispersionComponents represent the dispersion of the radio waves due to the free electrons present along the line of sight to the pulsar. This may include the ionized interstellar medium as well as  solar wind.
Vela.DispersionComponent — TypeDispersionComponentAbstrct base type of all timing model components which provide a dispersion measure correction.
DispersionComponents provide a delay and a DM correction (for wideband TOAs), which are related by the equation $\Delta_{\text{DM}} = K * \text{DM} / \nu^2$. The dispersion correction is computed via  the dispersion_slope() function.
Vela.dispersion_slope — Functiondispersion_slope(::DispersionComponent, ::TOA, ::TOACorrection, ::NamedTuple)Compute the dispersion slope corresponding to a TOA.
The DispersionComponents available in Vela.jl are
DispersionComponent
├─ DispersionNoiseBase
│  ├─ DMWaveX
│  └─ PowerlawDispersionNoiseGP
├─ DispersionPiecewise
├─ DispersionTaylor
├─ SolarWind
│  └─ SolarWindDispersion
├─ DispersionJumpBase
│  ├─ DispersionJump
│  └─ ExclusiveDispersionJump
└─ DispersionOffsetBase
   ├─ DispersionOffset
   └─ ExclusiveDispersionOffset
The most basic DispersionComponent is DispersionTaylor.
Vela.DispersionTaylor — TypeDispersionTaylorTaylor series representation of the dispersion measure.
Corresponds to DispersionDM in PINT.
Reference: Backer & Hellings 1986
DMWaveX and PowerlawDispersionNoiseGP provide two representations of the dispersion noise / stochastic DM variations.
Vela.DMWaveX — TypeDMWaveXAn unconstrained Fourier series representation of the dispersion noise. Corresponds to the DMWaveX component in PINT.
Reference: Susobhanan+ 2024
Vela.PowerlawDispersionNoiseGP — TypePowerlawDispersionNoiseGPA Fourier series Gaussian process representation of the dispersion noise where the  power spectral density is assumed to be a power law. Corresponds to PLDMNoise in PINT.
Reference: Lentati+ 2014, van Haasteren & Vallisneri 2014
See also Red noise models.
SolarWindDispersion is a simple model for solar wind dispersion.
Vela.SolarWindDispersion — TypeSolarWindDispersionSolar wind model assuming a spherically symmetric distribution of electrons which falls off as an inverse-square function of the distance from the Sun. Corresponds to the SolarWindDispersion model in PINT.
Reference: Edwards+ 2006
Alternatively, DM variations can be modeled as a simple piecewise-constant function using DMX parameters. This is available through the DispersionPiecewise component.
Vela.DispersionPiecewise — TypeDispersionPiecewisePiecewise-constant representation of the dispersion measure.
Corresponds to DispersionDMX in PINT. Overlapping DMX ranges are not supported.
Reference: Arzoumanian+ 2015
DispersionJump and DispersionOffset represent two types of system-dependent dispersion  offsets.
Vela.DispersionOffset — TypeDispersionOffsetSystem-dependent DM offsets (FDJUMPDM) with non-exclusive selection masks. Corresponds to FDJumpDM in PINT.
Reference: Susobhanan+ 2024
Vela.DispersionJump — TypeDispersionJumpSystem-dependent wideband DM offsets (DMJUMP) with non-exclusive selection masks.
Unlike an FDJUMPDM, a DMJUMP only provides a DM correction and no delay. Corresponds to DispersionJump in PINT.
Reference: Alam+ 2021
Chromatic delays
Chromatic delays are similar to dispersion delays, but have a different powerlaw dependence on the observing frequency. Such delays can occur due to interstellar scattering or frequency-dependent dispersion. A chromatic delay is given by $\Delta_{\text{CM}} = K * \text{CM} / \nu^\alpha$ where CM is called the chromatic measure, and $\alpha$ is called the chromatic index. The effect of chromatic effects on wideband TOAs is not well-understood.
ChromaticComponent
├─ ChromaticPiecewise
├─ ChromaticTaylor
└─ ChromaticNoiseBase
   ├─ CMWaveX
   └─ PowerlawChromaticNoiseGP
Vela.ChromaticTaylor — TypeChromaticTaylorTaylor series representation of the chromatic measure.
Corresponds to ChromaticCM in PINT.
Vela.CMWaveX — TypeCMWaveXA Fourier series representation of the variable-index chromatic red noise. Corresponds to the CMWaveX component in PINT.
Reference: Susobhanan+ 2024
Vela.PowerlawChromaticNoiseGP — TypePowerlawDispersionNoiseGPA Fourier series Gaussian process representation of the chromatic noise where the  power spectral density is assumed to be a power law. Corresponds to PLChromNoise in PINT.
Reference: Lentati+ 2014, van Haasteren & Vallisneri 2014
See also Red noise models.
Chromatic variations can also be modeled as a simple piecewise-constant function using CMX parameters. This is available through the ChromaticPiecewise component.
Vela.ChromaticPiecewise — TypePiecewise-constant representation of the chromatic measure with a constant chromatic index.
Corresponds to ChromaticCMX in PINT. Does not support overlapping  ranges.
Binary delays
Similar to solar system delays, the binary motion of the pulsar also introduces various delays to the TOAs, including Rømer delay, Shapiro delay, and Einstein delay.
Vela.BinaryComponent — TypeBinaryComponentAbstract base type of all binary components.
Different binary models are used based on the properties of the binary orbit.
BinaryComponent
├─ BinaryDDBase
│  ├─ BinaryDD
│  ├─ BinaryDDH
│  ├─ BinaryDDK
│  └─ BinaryDDS
└─ BinaryELL1Base
   ├─ BinaryELL1
   ├─ BinaryELL1H
   └─ BinaryELL1k
Vela.jl has two families of binary models. The ELL1 family is used for nearly circular binaries and the DD family is used for eccentric orbits. The different models are characterized by their treatment of Shapiro delay, Kopeikin corrections, etc.
Vela.BinaryDD — TypeVela.BinaryDDH — TypeBinaryDDHThe Damour & Deruelle model for eccentric binaries with orthometric parametrization of the Shapiro delay. Used for low to moderate inclination binaries.
References: Damour & Deruelle 1986, Freire & Wex 2010, Weisberg & Huang 2016
Vela.BinaryDDK — TypeBinaryDDKThe Damour & Deruelle model for eccentric binaries with Kopeikin corrections included, which account for the apparent changes in the orbital elements due to proper motion and parallax.
References: Damour & Deruelle 1986, Kopeikin 1995, Kopeikin 1996
Vela.BinaryDDS — TypeBinaryDDSThe Damour & Deruelle model for eccentric binaries with an alternative parametrization of Shapiro delay applicable to almost edge-on orbits.
References: Damour & Deruelle 1986, Kramer+ 2006, Rafikov & Lai 2006
Vela.BinaryELL1 — TypeVela.BinaryELL1H — TypeBinaryELL1HA binary model representing a nearly circular orbit with orthometric parametrization of the Shapiro delay. The Shapiro delay computed in this model does not include the Fourier components that are fully covariant with the Rømer delay.
Reference: Lange+ 2001, Freire & Wex 2010
Vela.BinaryELL1k — TypeBinaryELL1kA binary model representing a nearly circular orbit with large advance of periapsis. The difference between this model and ELL1 is that this model features an exact treatment of advance of periapsis whereas ELL1 uses a linear approximation.
Reference: Susobhanan+ 2018
Frequency-dependent delays
Unmodeled frequency-dependent profile evolution can manifest as frequency-dependent delays in narrowband TOAs. These are taken care during timing using certain phenomenological models listed below.
Vela.FrequencyDependent — TypeFrequencyDependentA frequency-dependent delay to account for frequency-dependent profile evolution.  Corresponds to FD in PINT.
Reference: Arzoumanian+ 2015
Vela.FrequencyDependentJump — TypeFrequencyDependentJumpA system- & frequency-dependent delay to account for frequency-dependent profile evolution. This is useful while combining TOAs generated by different experiments with different TOA measurement procedures. Corresponds to FDJump in PINT.
Reference: Susobhanan+ 2024
Spin noise
Rotational irregularities of the pulsar causes stochastic modulations on the TOAs. We represent these modulations as a Fourier series in time.
Vela.WaveX — TypeWaveXAn unconstrained Fourier series representation of the achromatic red noise. Corresponds to the WaveX component in PINT.
Reference: Susobhanan+ 2024
Vela.PowerlawRedNoiseGP — TypePowerlawRedNoiseGPA Fourier series Gaussian process representation of the achromatic red noise where the  power spectral density is assumed to be a power law. Corresponds to PLRedNoise in  PINT.
Reference: Lentati+ 2014, van Haasteren & Vallisneri 2014
See also Red noise models.
Phase components
A PhaseComponent contributes to the phase computation from a delay-corrected TOA.
Vela.PhaseComponent — TypePhaseComponentAbstract base type of all timing model components which contribute a phase correction to a TOA.
The hierarchy of PhaseComponents is given below.
PhaseComponent
├─ Glitch
├─ PhaseOffset
├─ Spindown
└─ PhaseJumpBase
   ├─ ExclusivePhaseJump
   └─ PhaseJump
Vela.Spindown — TypeSpindownRotation or the pulsar represented as a Taylor series in spin frequency. Corresponds to Spindown in PINT.
Reference: Backer & Hellings 1986
Vela.Glitch — TypeGlitchGlitches in pulsar rotation. Corresponds to Glitch in PINT.
Reference: Hobbs+ 2006, Haskell & Melatos 2015
Vela.PhaseOffset — TypePhase offset between measured TOAs and the TZR TOA. Corresponds to PhaseOffset in PINT.
Reference: Susobhanan+ 2024
Vela.PhaseJump — TypePhaseJumpSystem-dependent phase jumps with non-exclusive selection masks.  Corresponds to PhaseJump in PINT.
Reference: Hobbs+ 2006
White noise components
These components modify the TOA or DM uncertainty in some manner.
WhiteNoiseComponent
├─ DispersionMeasurementNoise
└─ MeasurementNoise
Vela.MeasurementNoise — TypeMeasurementNoiseModifications to the measured TOA uncertainties:  EFACs (error factors) and EQUADs (errors added in quadrature). Assumes that the EFACs & EQUADs are exclusive. Corresponds to  ScaleToaErrors in PINT.
Reference: Lentati+ 2014
Vela.DispersionMeasurementNoise — TypeDispersionMeasurementNoiseModifications to the measured wideband DM uncertainties: DMEFACs and DMEQUADs. Assumes that the DMEFACs & DMEQUADs are exclusive. Corresponds to ScaleDmErrors in PINT.
Reference: Alam+ 2021
Order of components
It should be noted that the action of different Components do not commute in general. Therefore,  they must be applied in the correct order to get sensible results. The order followed by Vela.jl  is roughly as follows:
- Delay corrections a. Solar system effects b. Interstellar medium effects c. Pulsar binary effects
- Phase computation a. Pulsar rotational effects
- Uncertainty corrections a. Measurement noise corrections
The TZR TOA
The pulse phases are measured with respect to a fictitious fiducial TOA called the TZR TOA (TZR  stands for t_zero). This is represented using a TOA object, but is distinguished from physical  TOAs using the  tzr attribute. The make_tzr_toa() function creates a TZR TOA and the is_tzr()  function checks whether a TOA is a TZR TOA. A TZR TOA is always narrowband.
Vela.make_tzr_toa — Functionmake_tzr_toa(tzrtdb::GQ{Double64}, tzrfreq::GQ{Float64}, tzrephem::SolarSystemEphemeris)::TOACreate a TZR TOA object.
Vela.is_tzr — Functionis_tzr(::TOA)::BoolChecks if a TOA is a TZR TOA.
The TimingModel type
A timing & noise model is represented by the TimingModel type. 
Vela.TimingModel — TypeTimingModelThe pulsar timing & noise model. Supports both narrowband and wideband timing. Corresponds to TimingModel in PINT.
References: Edwards+ 2006, Lentati+ 2014, Alam+ 2021
It has the following contents:
- Pulsar name (PSR), solar system ephemeris name (EPHEM), name of the TT timescale realization (CLOCK), etc.
- An ordered collection of Components
- A Kernel
- A TZR TOA
- A ParamHandlercontaining information about model parameters.
- An ordered collection of Priors for each free parameter
These are explained in the following sections.