Commit 47ae45b627563b37b8b4efe7dc5bb2268d638f20
1 parent
0bb6c9ac
Complemented temporal phase curve constructor
Showing
4 changed files
with
43 additions
and
6 deletions
include/GModelTemporalPhaseCurve.hpp
| @@ -80,6 +80,11 @@ public: | @@ -80,6 +80,11 @@ public: | ||
| 80 | GModelTemporalPhaseCurve(void); | 80 | GModelTemporalPhaseCurve(void); |
| 81 | explicit GModelTemporalPhaseCurve(const GXmlElement& xml); | 81 | explicit GModelTemporalPhaseCurve(const GXmlElement& xml); |
| 82 | GModelTemporalPhaseCurve(const GFilename& filename, | 82 | GModelTemporalPhaseCurve(const GFilename& filename, |
| 83 | + const GTime& mjd, | ||
| 84 | + const double& phase, | ||
| 85 | + const double& f0, | ||
| 86 | + const double& f1, | ||
| 87 | + const double& f2, | ||
| 83 | const double& norm = 1.0); | 88 | const double& norm = 1.0); |
| 84 | GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); | 89 | GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); |
| 85 | virtual ~GModelTemporalPhaseCurve(void); | 90 | virtual ~GModelTemporalPhaseCurve(void); |
pyext/GModelTemporalPhaseCurve.i
| @@ -41,6 +41,11 @@ public: | @@ -41,6 +41,11 @@ public: | ||
| 41 | GModelTemporalPhaseCurve(void); | 41 | GModelTemporalPhaseCurve(void); |
| 42 | explicit GModelTemporalPhaseCurve(const GXmlElement& xml); | 42 | explicit GModelTemporalPhaseCurve(const GXmlElement& xml); |
| 43 | GModelTemporalPhaseCurve(const GFilename& filename, | 43 | GModelTemporalPhaseCurve(const GFilename& filename, |
| 44 | + const GTime& mjd, | ||
| 45 | + const double& phase, | ||
| 46 | + const double& f0, | ||
| 47 | + const double& f1, | ||
| 48 | + const double& f2, | ||
| 44 | const double& norm = 1.0); | 49 | const double& norm = 1.0); |
| 45 | GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); | 50 | GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); |
| 46 | virtual ~GModelTemporalPhaseCurve(void); | 51 | virtual ~GModelTemporalPhaseCurve(void); |
src/model/GModelTemporalPhaseCurve.cpp
| @@ -78,25 +78,41 @@ GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(void) : GModelTemporal() | @@ -78,25 +78,41 @@ GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(void) : GModelTemporal() | ||
| 78 | * @brief File constructor | 78 | * @brief File constructor |
| 79 | * | 79 | * |
| 80 | * @param[in] filename File name of phase curve nodes. | 80 | * @param[in] filename File name of phase curve nodes. |
| 81 | + * @param[in] mjd Reference time. | ||
| 82 | + * @param[in] phase Phase at reference time. | ||
| 83 | + * @param[in] f0 Frequency at reference time (Hz). | ||
| 84 | + * @param[in] f1 First frequency derivative at reference time. | ||
| 85 | + * @param[in] f2 Second frequency derivative at reference time. | ||
| 81 | * @param[in] norm Normalization factor. | 86 | * @param[in] norm Normalization factor. |
| 82 | * | 87 | * |
| 83 | * Constructs phase curve from a list of nodes that is found in the specified | 88 | * Constructs phase curve from a list of nodes that is found in the specified |
| 84 | - * FITS file. See the load_nodes() method for more information about the | ||
| 85 | - * expected structure of the file. | 89 | + * FITS file, a reference time and phase information at the reference time. |
| 90 | + * See the load_nodes() method for more information about the expected | ||
| 91 | + * structure of the file. | ||
| 86 | ***************************************************************************/ | 92 | ***************************************************************************/ |
| 87 | GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(const GFilename& filename, | 93 | GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(const GFilename& filename, |
| 94 | + const GTime& mjd, | ||
| 95 | + const double& phase, | ||
| 96 | + const double& f0, | ||
| 97 | + const double& f1, | ||
| 98 | + const double& f2, | ||
| 88 | const double& norm) : | 99 | const double& norm) : |
| 89 | GModelTemporal() | 100 | GModelTemporal() |
| 90 | { | 101 | { |
| 91 | // Initialise members | 102 | // Initialise members |
| 92 | init_members(); | 103 | init_members(); |
| 93 | 104 | ||
| 105 | + // Set parameters | ||
| 106 | + this->mjd(mjd); | ||
| 107 | + this->phase(phase); | ||
| 108 | + this->f0(f0); | ||
| 109 | + this->f1(f1); | ||
| 110 | + this->f2(f2); | ||
| 111 | + this->norm(norm); | ||
| 112 | + | ||
| 94 | // Load nodes | 113 | // Load nodes |
| 95 | load_nodes(filename); | 114 | load_nodes(filename); |
| 96 | 115 | ||
| 97 | - // Set normalization | ||
| 98 | - m_norm.value(norm); | ||
| 99 | - | ||
| 100 | // Return | 116 | // Return |
| 101 | return; | 117 | return; |
| 102 | } | 118 | } |
test/test_GModel.cpp
| @@ -2307,9 +2307,20 @@ void TestGModel::test_temp_phasecurve(void) | @@ -2307,9 +2307,20 @@ void TestGModel::test_temp_phasecurve(void) | ||
| 2307 | test_value(model1.type(), "PhaseCurve", "Check void model type"); | 2307 | test_value(model1.type(), "PhaseCurve", "Check void model type"); |
| 2308 | 2308 | ||
| 2309 | // Test value constructor | 2309 | // Test value constructor |
| 2310 | - GModelTemporalPhaseCurve model2(m_temp_phasecurve, 2.0); | 2310 | + GModelTemporalPhaseCurve model2(m_temp_phasecurve, |
| 2311 | + GTime(3.0, "secs"), | ||
| 2312 | + 0.0, | ||
| 2313 | + 1.0, | ||
| 2314 | + 0.1, | ||
| 2315 | + 0.01, | ||
| 2316 | + 2.0); | ||
| 2311 | test_value(model2.filename().url(), m_temp_phasecurve, | 2317 | test_value(model2.filename().url(), m_temp_phasecurve, |
| 2312 | "Check phase curve file name"); | 2318 | "Check phase curve file name"); |
| 2319 | + test_value(model2.mjd().secs(), 3.0); | ||
| 2320 | + test_value(model2.phase(), 0.0); | ||
| 2321 | + test_value(model2.f0(), 1.0); | ||
| 2322 | + test_value(model2.f1(), 0.1); | ||
| 2323 | + test_value(model2.f2(), 0.01); | ||
| 2313 | test_value(model2.norm(), 2.0); | 2324 | test_value(model2.norm(), 2.0); |
| 2314 | 2325 | ||
| 2315 | // Test XML constructor | 2326 | // Test XML constructor |