Tempo2 DM polynomial is not a Taylor expansion

Issue #27 resolved
Paul Ray created an issue

TEMPO, PINT, and the Tempo2 paper (Eqn 39 of Edwards et al.) treat DM, DM1, DM2, ... as a Taylor expansion around DMEPOCH.

Tempo2 instead uses a polynomial that is not a Taylor expansion. This is noted on line 122 of dm_delays.C. For consistency with other codes, and the paper that defines the Tempo2 timing models, this should be changed to a Taylor series.

Comments (9)

  1. Paul Ray reporter

    This issue is serious for anyone that uses multiple packages. I just made a sample par and tim file and computed residuals with TEMPO, Tempo2 and PINT. The TOAs were initially computed assuming that DMn represents a Taylor expansion. Since PINT and TEMPO both treat it that way, they have flat residuals. Tempo2 then uses a different definition where the DMn represent polynomial coefficients, not a Taylor series, so it has large residuals.

  2. Paul Ray reporter

    Here is the par file

    PSR              1748-2021E
    RAJ       17:48:52.75 
    DECJ      -20:21:29.0 
    F0       61.485476554 
    F1         -1.181E-15 
    PEPOCH        53750.000000
    POSEPOCH      53750.000000
    DMEPOCH 56000.0
    DM              223.9
    DM1 0.1
    DM2 -0.2
    DM3 0.03
    SOLARN0               0.00
    EPHEM               DE421
    CLK              UTC(NIST)
    UNITS               TDB
    TIMEEPH             FB90
    T2CMETHOD           TEMPO
    CORRECT_TROPOSPHERE N
    PLANET_SHAPIRO      N
    DILATEFREQ          N
    TZRMJD  53801.38605120074849
    TZRFRQ            1949.609
    TZRSITE                  1
    

  3. Paul Ray reporter

    And here is the .tim file:

    FORMAT 1
    fake 800.000000 55999.9999999202043404 1.000 gbt 
    fake 1400.000000 56004.0201005526131481 1.000 gbt 
    fake 2000.000000 56008.0402010457829977 1.000 gbt 
    fake 800.000000 56012.0603014854607755 1.000 gbt 
    fake 1400.000000 56016.0804020083415625 1.000 gbt 
    fake 2000.000000 56020.1005025345277430 1.000 gbt 
    fake 800.000000 56024.1206030780192940 1.000 gbt 
    fake 1400.000000 56028.1407035916677894 1.000 gbt 
    fake 2000.000000 56032.1608040955485185 1.000 gbt 
    fake 800.000000 56036.1809045448533449 1.000 gbt 
    fake 1400.000000 56040.2010049614709143 1.000 gbt 
    fake 2000.000000 56044.2211055187862500 1.000 gbt 
    fake 800.000000 56048.2412060936935417 1.000 gbt 
    fake 1400.000000 56052.2613064586238079 1.000 gbt 
    fake 2000.000000 56056.2814070330387731 1.000 gbt 
    fake 800.000000 56060.3015075142701273 1.000 gbt 
    fake 1400.000000 56064.3216081012012732 1.000 gbt 
    fake 2000.000000 56068.3417086068487732 1.000 gbt 
    fake 800.000000 56072.3618091196284606 1.000 gbt 
    fake 1400.000000 56076.3819096262256019 1.000 gbt 
    fake 2000.000000 56080.4020099637366089 1.000 gbt 
    fake 800.000000 56084.4221106035616435 1.000 gbt 
    fake 1400.000000 56088.4422109644596644 1.000 gbt 
    fake 2000.000000 56092.4623114825155902 1.000 gbt 
    fake 800.000000 56096.4824119731748726 1.000 gbt 
    fake 1400.000000 56100.5025125502416320 1.000 gbt 
    fake 2000.000000 56104.5226129938769097 1.000 gbt 
    fake 800.000000 56108.5427134886215278 1.000 gbt 
    fake 1400.000000 56112.5628140847132060 1.000 gbt 
    fake 2000.000000 56116.5829146019808795 1.000 gbt 
    fake 800.000000 56120.6030150191205093 1.000 gbt 
    fake 1400.000000 56124.6231155735782060 1.000 gbt 
    fake 2000.000000 56128.6432160083025579 1.000 gbt 
    fake 800.000000 56132.6633166728568055 1.000 gbt 
    fake 1400.000000 56136.6834170705596527 1.000 gbt 
    fake 2000.000000 56140.7035176113727546 1.000 gbt 
    fake 800.000000 56144.7236180394686111 1.000 gbt 
    fake 1400.000000 56148.7437185772422454 1.000 gbt 
    fake 2000.000000 56152.7638190114757407 1.000 gbt 
    fake 800.000000 56156.7839195932634491 1.000 gbt 
    fake 1400.000000 56160.8040201195941319 1.000 gbt 
    fake 2000.000000 56164.8241206620531365 1.000 gbt 
    fake 800.000000 56168.8442211405809606 1.000 gbt 
    fake 1400.000000 56172.8643216481087385 1.000 gbt 
    fake 2000.000000 56176.8844221514465972 1.000 gbt 
    fake 800.000000 56180.9045225903144214 1.000 gbt 
    fake 1400.000000 56184.9246230753573148 1.000 gbt 
    fake 2000.000000 56188.9447236283750348 1.000 gbt 
    fake 800.000000 56192.9648240494876967 1.000 gbt 
    fake 1400.000000 56196.9849246815165046 1.000 gbt 
    fake 2000.000000 56201.0050250944664699 1.000 gbt 
    fake 800.000000 56205.0251257099042130 1.000 gbt 
    fake 1400.000000 56209.0452260717772222 1.000 gbt 
    fake 2000.000000 56213.0653266477321296 1.000 gbt 
    fake 800.000000 56217.0854271361025579 1.000 gbt 
    fake 1400.000000 56221.1055277012834491 1.000 gbt 
    fake 2000.000000 56225.1256281477936690 1.000 gbt 
    fake 800.000000 56229.1457287032647454 1.000 gbt 
    fake 1400.000000 56233.1658292109222454 1.000 gbt 
    fake 2000.000000 56237.1859295807110301 1.000 gbt 
    fake 800.000000 56241.2060301538619676 1.000 gbt 
    fake 1400.000000 56245.2261306149294560 1.000 gbt 
    fake 2000.000000 56249.2462311495965509 1.000 gbt 
    fake 800.000000 56253.2663316749308449 1.000 gbt 
    fake 1400.000000 56257.2864322427587268 1.000 gbt 
    fake 2000.000000 56261.3065326953462037 1.000 gbt 
    fake 800.000000 56265.3266331807650926 1.000 gbt 
    fake 1400.000000 56269.3467336124389352 1.000 gbt 
    fake 2000.000000 56273.3668342034340972 1.000 gbt 
    fake 800.000000 56277.3869346079582408 1.000 gbt 
    fake 1400.000000 56281.4070352384427430 1.000 gbt 
    fake 2000.000000 56285.4271356787843635 1.000 gbt 
    fake 800.000000 56289.4472362472583565 1.000 gbt 
    fake 1400.000000 56293.4673366729530555 1.000 gbt 
    fake 2000.000000 56297.4874371801394097 1.000 gbt 
    fake 800.000000 56301.5075377426867477 1.000 gbt 
    fake 1400.000000 56305.5276382150260186 1.000 gbt 
    fake 2000.000000 56309.5477386110034259 1.000 gbt 
    fake 800.000000 56313.5678392027892245 1.000 gbt 
    fake 1400.000000 56317.5879396740540278 1.000 gbt 
    fake 2000.000000 56321.6080401884635301 1.000 gbt 
    fake 800.000000 56325.6281407914168866 1.000 gbt 
    fake 1400.000000 56329.6482412884422107 1.000 gbt 
    fake 2000.000000 56333.6683417055911343 1.000 gbt 
    fake 800.000000 56337.6884421571982523 1.000 gbt 
    fake 1400.000000 56341.7085427833593287 1.000 gbt 
    fake 2000.000000 56345.7286432321274074 1.000 gbt 
    fake 800.000000 56349.7487437334093056 1.000 gbt 
    fake 1400.000000 56353.7688441791819214 1.000 gbt 
    fake 2000.000000 56357.7889447184668055 1.000 gbt 
    fake 800.000000 56361.8090452855890046 1.000 gbt 
    fake 1400.000000 56365.8291456678284143 1.000 gbt 
    fake 2000.000000 56369.8492463165859259 1.000 gbt 
    fake 800.000000 56373.8693467130617245 1.000 gbt 
    fake 1400.000000 56377.8894472599270716 1.000 gbt 
    fake 2000.000000 56381.9095477483058102 1.000 gbt 
    fake 800.000000 56385.9296481557883448 1.000 gbt 
    fake 1400.000000 56389.9497488091567244 1.000 gbt 
    fake 2000.000000 56393.9698492222457060 1.000 gbt 
    fake 800.000000 56397.9899498392961574 1.000 gbt 
    fake 1400.000000 56402.0100502969304861 1.000 gbt 
    fake 2000.000000 56406.0301506985516667 1.000 gbt 
    fake 800.000000 56410.0502512216336921 1.000 gbt 
    fake 1400.000000 56414.0703516786458449 1.000 gbt 
    fake 2000.000000 56418.0904521800803935 1.000 gbt 
    fake 800.000000 56422.1105526941487037 1.000 gbt 
    fake 1400.000000 56426.1306533449738889 1.000 gbt 
    fake 2000.000000 56430.1507537541889583 1.000 gbt 
    fake 800.000000 56434.1708543414312037 1.000 gbt 
    fake 1400.000000 56438.1909546864079861 1.000 gbt 
    fake 2000.000000 56442.2110552812709259 1.000 gbt 
    fake 800.000000 56446.2311557671973380 1.000 gbt 
    fake 1400.000000 56450.2512562122161806 1.000 gbt 
    fake 2000.000000 56454.2713567581296991 1.000 gbt 
    fake 800.000000 56458.2914572101655440 1.000 gbt 
    fake 1400.000000 56462.3115578380685995 1.000 gbt 
    fake 2000.000000 56466.3316582174255209 1.000 gbt 
    fake 800.000000 56470.3517588547875926 1.000 gbt 
    fake 1400.000000 56474.3718592714553125 1.000 gbt 
    fake 2000.000000 56478.3919597100930787 1.000 gbt 
    fake 800.000000 56482.4120602887977893 1.000 gbt 
    fake 1400.000000 56486.4321608458730671 1.000 gbt 
    fake 2000.000000 56490.4522612544636574 1.000 gbt 
    fake 800.000000 56494.4723618646233333 1.000 gbt 
    fake 1400.000000 56498.4924623547532754 1.000 gbt 
    fake 2000.000000 56502.5125628602540973 1.000 gbt 
    fake 800.000000 56506.5326633076546875 1.000 gbt 
    fake 1400.000000 56510.5527637483705786 1.000 gbt 
    fake 2000.000000 56514.5728642713617592 1.000 gbt 
    fake 800.000000 56518.5929648650006480 1.000 gbt 
    fake 1400.000000 56522.6130653478947570 1.000 gbt 
    fake 2000.000000 56526.6331657737340740 1.000 gbt 
    fake 800.000000 56530.6532663216675463 1.000 gbt 
    fake 1400.000000 56534.6733668416391781 1.000 gbt 
    fake 2000.000000 56538.6934672432044675 1.000 gbt 
    fake 800.000000 56542.7135679226490046 1.000 gbt 
    fake 1400.000000 56546.7336683388535186 1.000 gbt 
    fake 2000.000000 56550.7537688823958449 1.000 gbt 
    fake 800.000000 56554.7738693419799306 1.000 gbt 
    fake 1400.000000 56558.7939699026842593 1.000 gbt 
    fake 2000.000000 56562.8140703479821759 1.000 gbt 
    fake 800.000000 56566.8341708010329515 1.000 gbt 
    fake 1400.000000 56570.8542714214968520 1.000 gbt 
    fake 2000.000000 56574.8743717677379514 1.000 gbt 
    fake 800.000000 56578.8944722742856367 1.000 gbt 
    fake 1400.000000 56582.9145729070377315 1.000 gbt 
    fake 2000.000000 56586.9346733889255671 1.000 gbt 
    fake 800.000000 56590.9547738883608795 1.000 gbt 
    fake 1400.000000 56594.9748742818382408 1.000 gbt 
    fake 2000.000000 56598.9949748189270602 1.000 gbt 
    fake 800.000000 56603.0150754637435764 1.000 gbt 
    fake 1400.000000 56607.0351758859298727 1.000 gbt 
    fake 2000.000000 56611.0552763799927546 1.000 gbt 
    fake 800.000000 56615.0753768936042014 1.000 gbt 
    fake 1400.000000 56619.0954773557672685 1.000 gbt 
    fake 2000.000000 56623.1155779205902662 1.000 gbt 
    fake 800.000000 56627.1356784800943750 1.000 gbt 
    fake 1400.000000 56631.1557789516593866 1.000 gbt 
    fake 2000.000000 56635.1758794863838773 1.000 gbt 
    fake 800.000000 56639.1959798333721181 1.000 gbt 
    fake 1400.000000 56643.2160803987454514 1.000 gbt 
    fake 2000.000000 56647.2361809185495833 1.000 gbt 
    fake 800.000000 56651.2562814412078009 1.000 gbt 
    fake 1400.000000 56655.2763818396514930 1.000 gbt 
    fake 2000.000000 56659.2964825060653473 1.000 gbt 
    fake 800.000000 56663.3165828302992709 1.000 gbt 
    fake 1400.000000 56667.3366833587938773 1.000 gbt 
    fake 2000.000000 56671.3567838403533101 1.000 gbt 
    fake 800.000000 56675.3768845123700579 1.000 gbt 
    fake 1400.000000 56679.3969848360866204 1.000 gbt 
    fake 2000.000000 56683.4170854857930208 1.000 gbt 
    fake 800.000000 56687.4371860028507755 1.000 gbt 
    fake 1400.000000 56691.4572864633445023 1.000 gbt 
    fake 2000.000000 56695.4773870003733449 1.000 gbt 
    fake 800.000000 56699.4974874899324421 1.000 gbt 
    fake 1400.000000 56703.5175879128221065 1.000 gbt 
    fake 2000.000000 56707.5376884470139467 1.000 gbt 
    fake 800.000000 56711.5577889748713888 1.000 gbt 
    fake 1400.000000 56715.5778893903414120 1.000 gbt 
    fake 2000.000000 56719.5979899608810185 1.000 gbt 
    fake 800.000000 56723.6180904019413310 1.000 gbt 
    fake 1400.000000 56727.6381908904666319 1.000 gbt 
    fake 2000.000000 56731.6582915253109375 1.000 gbt 
    fake 800.000000 56735.6783920186823148 1.000 gbt 
    fake 1400.000000 56739.6984925370310416 1.000 gbt 
    fake 2000.000000 56743.7185929151667593 1.000 gbt 
    fake 800.000000 56747.7386935349255672 1.000 gbt 
    fake 1400.000000 56751.7587939990000462 1.000 gbt 
    fake 2000.000000 56755.7788945519832060 1.000 gbt 
    fake 800.000000 56759.7989949723245948 1.000 gbt 
    fake 1400.000000 56763.8190954104474305 1.000 gbt 
    fake 2000.000000 56767.8391959280592245 1.000 gbt 
    fake 800.000000 56771.8592964700058218 1.000 gbt 
    fake 1400.000000 56775.8793969748210301 1.000 gbt 
    fake 2000.000000 56779.8994975209780440 1.000 gbt 
    fake 800.000000 56783.9195980792432291 1.000 gbt 
    fake 1400.000000 56787.9396985589606134 1.000 gbt 
    fake 2000.000000 56791.9597990761537616 1.000 gbt 
    fake 800.000000 56795.9798995139738195 1.000 gbt 
    fake 1400.000000 56800.0000000761003704 1.000 gbt 
    

  4. Paul Ray reporter

    Just to clarify, this only starts to be a problem at DM2 and above. For DM1, the polynomial coefficient is the same as the Taylor expansion.

  5. Paul Ray reporter

    Also, part of the ugly residuals plot above is due to a bad CLK line. Changing it to CLK TT(TAI) gives this (corrected) plot. Sorry about that! The overloading of the CLK parameter between the different timing codes can cause trouble.

  6. Michael Keith

    I am pretty sure I’ve discussed this issue before and the issue is that we will break previously published parameters. However, having recently run into other issues were people left “wrong” things in the code to avoid breaking backwards compatibility I’m inclined to agree. I’ll have a think about it, and maybe email George.

  7. Michael Keith

    I did discuss this with George and he generally agreed. I’ve started to implement a fix that adds a parameter DM_SERIES which can be POLY or TAYLOR. Default is TAYLOR, POLY is only for backwards compatibility with old par files. I’m not 100% sure this is nessicary, but I’m also kind of interested in trying legendre polynomials at some point, so this adds potential for new possibilities.

    My intent is that tempo2 will print a warning if you have DM2 +, but don’t specify DM_SERIES, pointing to this bug report. I’m not sure if this is nescisary or not either, but at least for now it’s good to make clear if there is a serious change.

    I’ll send you a link to a branch to test once I’ve got it working.

  8. Log in to comment