CppEphem
CEPlanet.h
Go to the documentation of this file.
1 /***************************************************************************
2  * CEPlanet.h: CppEphem *
3  * ----------------------------------------------------------------------- *
4  * Copyright © 2017 JCardenzana *
5  * ----------------------------------------------------------------------- *
6  * *
7  * This program is free software: you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation, either version 3 of the License, or *
10  * (at your option) any later version. *
11  * *
12  * This program is distributed in the hope that it will be useful, *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15  * GNU General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU General Public License *
18  * along with this program. If not, see <http://www.gnu.org/licenses/>. *
19  * *
20  ***************************************************************************/
21 
22 #ifndef CEPlanet_h
23 #define CEPlanet_h
24 
25 #include <cmath>
26 #include "CEBody.h"
27 #include "CEObserver.h"
28 
31 enum CEPlanetAlgo {SOFA,
32  JPL
33  } ;
34 
35 
36 class CEPlanet : public CEBody {
37 public:
38  CEPlanet() ;
39  CEPlanet(const std::string& name,
40  const CEAngle& xcoord,
41  const CEAngle& ycoord,
42  const CESkyCoordType& coord_type=CESkyCoordType::CIRS) ;
43  CEPlanet(const CEPlanet& other);
44  virtual ~CEPlanet() ;
45 
46  CEPlanet& operator=(const CEPlanet& other);
47 
48  /****** Methods ******/
49  double Radius_m();
50  double Mass_kg();
51  double Albedo();
52  void SetMeanRadius_m(double new_radius);
53  void SetMass_kg(double new_mass);
54  void SetAlbedo(double new_albedo);
55  virtual double XCoordinate_Rad(double new_date=-1.0e30) const;
56  virtual double XCoordinate_Deg(double new_date=-1.0e30) const;
57  virtual double YCoordinate_Rad(double new_date=-1.0e30) const;
58  virtual double YCoordinate_Deg(double new_date=-1.0e30) const;
59  virtual double EarthDist_AU(const CEDate& date);
60  virtual void UpdateCoordinates(double new_date=-1.0e30) const;
61  virtual void Update_JPL(double new_date=-1.0e30) const;
62  virtual void Update_SOFA(double new_date=-1.0e30) const;
63 
64  // Override CEBody methods
65  virtual CESkyCoord ObservedCoords(const CEDate& date,
66  const CEObserver& observer) const;
67 
68  /****************************
69  * Methods for getting the current x,y,z coordinates and velocities relative to the ICRS point
70  ****************************/
71  double GetXICRS();
72  double GetYICRS();
73  double GetZICRS();
74  std::vector<double> PositionICRS(void) const;
75  std::vector<double> PositionICRS_Obs(const CEDate& date) const;
76  double GetVxICRS();
77  double GetVyICRS();
78  double GetVzICRS();
79  std::vector<double> VelocityICRS(void) const;
80 
81  /****************************
82  * Methods for computing apparent "phase"
83  ****************************/
84 
85 
86  /****************************
87  * Methods for computing apparent magnitude (i.e. a measure of brightness)
88  ****************************/
89 
90 
91  /****************************
92  * Methods to set orbital properties
93  ****************************/
94  virtual void SetSemiMajorAxis_AU(double semi_major_axis_au,
95  double semi_major_axis_au_per_cent=0.0);
96  virtual void SetEccentricity(double eccentricity,
97  double eccentricity_per_cent=0.0);
98  virtual void SetInclination(double inclination,
99  double inclination_per_cent=0.0,
100  CEAngleType angle_type=CEAngleType::DEGREES);
101  virtual void SetMeanLongitude(double mean_longitude,
102  double mean_longitude_per_cent=0.0,
103  CEAngleType angle_type=CEAngleType::DEGREES);
104  virtual void SetPerihelionLongitude(double perihelion_lon,
105  double perihelion_lon_per_cent=0.0,
106  CEAngleType angle_type=CEAngleType::DEGREES);
107  virtual void SetAscendingNodeLongitude(double ascending_node_lon,
108  double ascending_node_lon_per_cent=0.0,
109  CEAngleType angle_type=CEAngleType::DEGREES);
110  virtual void SetExtraTerms(double b, double c, double s, double f);
111  virtual void SetTolerance(double tol = 1.0e-6);
112  virtual void SetReference(CEPlanet* reference);
113 
114  /****************************
115  * Some generic planets in our solar system
116  ****************************/
117  static CEPlanet Mercury() ;
118  static CEPlanet Venus() ;
119  static CEPlanet Earth() ;
120  static CEPlanet EMBarycenter() ;
121  static CEPlanet Mars() ;
122  static CEPlanet Jupiter() ;
123  static CEPlanet Saturn() ;
124  static CEPlanet Uranus() ;
125  static CEPlanet Neptune() ;
126  static CEPlanet Pluto() ;
127 
128  // Set the algorithm
129  CEPlanetAlgo Algorithm(void) const;
130  void SetAlgorithm(const CEPlanetAlgo& new_algo);
131  void SetSofaID(const double& new_id);
132 
133 private:
134 
135  void copy_members(const CEPlanet& other);
136  void init_members(void);
137  void free_members(void);
138 
139  void UpdatePosition(const double& jd) const;
140 
141  /******************************************
142  * Methods for the JPL algorithm
143  ******************************************/
144 
145  inline double ComputeElement(double value,
146  double value_derivative_,
147  double time) const;
148  double MeanAnomaly(double mean_longitude_deg,
149  double perihelion_long_deg,
150  double T=0.0) const;
151 
152  // Recursive formula necessary for the computation of eccentric anomoly
153  double EccentricAnomoly(double& M, double& e, double &En, double& del_E) const;
154 
155  // Basic properties
156  double radius_m_ ;
157  double mass_kg_ ;
158  double albedo_ ;
159 
160  // The following is a reference point for the observer
161  // This will almost always be the Earth-Moon barycenter
163 
164  // Define the algorithm used to compute the planets position
169 
170  // The coordinates representing the current position will need to be
171  // relative to some date, since planets move. This is the cached date
172  mutable double cached_jd_;
173  mutable std::vector<double> pos_icrs_;
174  // Note, these velocities are only computed for "algorithm_type_=SOFA" at the moment
175  mutable std::vector<double> vel_icrs_;
176 
177  /******************************************
178  * Properties for the JPL algorithm
179  ******************************************/
180  // Orbital properties (element 2 is the derivative)
182  double eccentricity_;
187 
188  // Derivatives of orbital properties
190  double eccentricity_per_cent_;
195 
196  // The following is the tolerance for the computation of eccentric anomoly
197  double E_tol = 1.0e-6 ;
198 
199  // Extra terms for outer planets (Jupiter, Saturn, Uranus, Neptune, and Pluto)
200  double b_;
201  double c_;
202  double s_;
203  double f_;
204 };
205 
206 
207 /**********************************************************************/
210 inline
212 {
213  return algorithm_type_;
214 }
215 
216 
217 /**********************************************************************/
220 inline
221 double CEPlanet::Radius_m()
222 {
223  return radius_m_;
224 }
225 
226 
227 /**********************************************************************/
230 inline
231 double CEPlanet::Mass_kg()
232 {
233  return mass_kg_;
234 }
235 
236 
237 /**********************************************************************/
240 inline
241 double CEPlanet::Albedo()
242 {
243  return albedo_;
244 }
245 
246 
247 /**********************************************************************/
250 inline
251 void CEPlanet::SetMeanRadius_m(double new_radius)
252 {
253  radius_m_ = new_radius;
254 }
255 
256 
257 /**********************************************************************/
260 inline
261 void CEPlanet::SetMass_kg(double new_mass)
262 {
263  mass_kg_ = new_mass ;
264 }
265 
266 
267 /**********************************************************************/
270 inline
271 void CEPlanet::SetAlbedo(double new_albedo)
272 {
273  albedo_ = new_albedo;
274 }
275 
276 
277 /**********************************************************************/
279 inline
280 double CEPlanet::XCoordinate_Rad(double new_date) const
281 {
282  UpdateCoordinates(new_date);
283  return XCoord().Rad();
284 }
285 
286 
287 /**********************************************************************/
289 inline
290 double CEPlanet::XCoordinate_Deg(double new_date) const
291 {
292  UpdateCoordinates(new_date);
293  return XCoord().Deg();
294 }
295 
296 
297 /**********************************************************************/
299 inline
300 double CEPlanet::YCoordinate_Rad(double new_date) const
301 {
302  UpdateCoordinates(new_date) ;
303  return YCoord().Rad();
304 }
305 
306 
307 /**********************************************************************/
309 inline
310 double CEPlanet::YCoordinate_Deg(double new_date) const
311 {
312  UpdateCoordinates(new_date);
313  return YCoord().Deg();
314 }
315 
316 
317 /**********************************************************************/
320 inline
321 double CEPlanet::GetXICRS()
322 {
323  return pos_icrs_[0] ;
324 }
325 
326 
327 /**********************************************************************/
330 inline
331 double CEPlanet::GetYICRS()
332 {
333  return pos_icrs_[1] ;
334 }
335 
336 
337 /**********************************************************************/
340 inline
341 double CEPlanet::GetZICRS()
342 {
343  return pos_icrs_[2] ;
344 }
345 
346 
347 /**********************************************************************/
350 inline
351 std::vector<double> CEPlanet::PositionICRS(void) const
352 {
353  return pos_icrs_;
354 }
355 
356 
357 /**********************************************************************/
360 inline
361 double CEPlanet::GetVxICRS()
362 {
363  return vel_icrs_[0];
364 }
365 
366 
367 /**********************************************************************/
370 inline
371 double CEPlanet::GetVyICRS()
372 {
373  return vel_icrs_[1];
374 }
375 
376 
377 /**********************************************************************/
380 inline
381 double CEPlanet::GetVzICRS()
382 {
383  return vel_icrs_[2];
384 }
385 
386 
387 /**********************************************************************/
390 inline
391 std::vector<double> CEPlanet::VelocityICRS(void) const
392 {
393  return vel_icrs_;
394 }
395 
396 /**********************************************************************/
398 inline
399 void CEPlanet::SetExtraTerms(double b, double c, double s, double f)
400 {
401  b_ = b ;
402  c_ = c ;
403  s_ = s ;
404  f_ = f ;
405 }
406 
407 
408 /**********************************************************************/
413 inline
414 void CEPlanet::SetTolerance(double tol)
415 {
416  E_tol = tol ;
417 }
418 
419 
420 /**********************************************************************/
425 inline
426 void CEPlanet::SetAlgorithm(const CEPlanetAlgo& new_algo)
427 {
428  algorithm_type_ = new_algo;
429  if (reference_ != nullptr) reference_->SetAlgorithm(new_algo) ;
430 }
431 
432 
433 /**********************************************************************/
440 inline
441 double CEPlanet::ComputeElement(double value, double value_derivative_, double time) const
442 {
443  return value + value_derivative_*time;
444 }
445 
446 #endif /* CEPlanet_h */
CEPlanet::Algorithm
CEPlanetAlgo Algorithm(void) const
Definition: CEPlanet.h:210
CEPlanet::SetSemiMajorAxis_AU
virtual void SetSemiMajorAxis_AU(double semi_major_axis_au, double semi_major_axis_au_per_cent=0.0)
Set the semi-major axis (in AU) and it's derivative.
Definition: CEPlanet.cpp:479
CEPlanet::s_
double s_
Definition: CEPlanet.h:194
CEPlanet::SetInclination
virtual void SetInclination(double inclination, double inclination_per_cent=0.0, CEAngleType angle_type=CEAngleType::DEGREES)
Set the inclination angle of the planets orbit.
Definition: CEPlanet.cpp:511
CEPlanet::PositionICRS_Obs
std::vector< double > PositionICRS_Obs(const CEDate &date) const
Get the observed position on a given date.
Definition: CEPlanet.cpp:616
CEPlanet::SetMeanRadius_m
void SetMeanRadius_m(double new_radius)
Definition: CEPlanet.h:250
CEPlanet::Uranus
static CEPlanet Uranus()
Returns an object representing Uranus.
Definition: CEPlanet.cpp:391
CEPlanet::E_tol
double E_tol
Definition: CEPlanet.h:189
CEPlanet::SetPerihelionLongitude
virtual void SetPerihelionLongitude(double perihelion_lon, double perihelion_lon_per_cent=0.0, CEAngleType angle_type=CEAngleType::DEGREES)
Set the longitude at perihelion.
Definition: CEPlanet.cpp:551
CESkyCoordType
CESkyCoordType
The following enum specifies what coordinates this object represents.
Definition: CESkyCoord.h:39
CESkyCoordType::CIRS
RA, Dec (referenced at the center of the Earth)
CEPlanet::copy_members
void copy_members(const CEPlanet &other)
Copy data members from another CEPlanet object.
Definition: CEPlanet.cpp:913
CEDate
Definition: CEDate.h:43
CEPlanet::operator=
CEPlanet & operator=(const CEPlanet &other)
Copy assignment operator.
Definition: CEPlanet.cpp:193
CEPlanet::Mercury
static CEPlanet Mercury()
Returns an object representing Mercury.
Definition: CEPlanet.cpp:211
CEPlanet::Pluto
static CEPlanet Pluto()
Returns an object representing Pluto.
Definition: CEPlanet.cpp:448
CEPlanet::Mars
static CEPlanet Mars()
Returns an object representing Mars.
Definition: CEPlanet.cpp:308
CEPlanet::EMBarycenter
static CEPlanet EMBarycenter()
Returns an object representing the Earth-Moon barycenter.
Definition: CEPlanet.cpp:287
CEPlanet::Neptune
static CEPlanet Neptune()
Returns an object representing Neptune.
Definition: CEPlanet.cpp:419
CppEphem::c
double c()
speed of light (meters/second)
Definition: CENamespace.h:68
CESkyCoord
Definition: CESkyCoord.h:49
CEPlanet::sofa_planet_id_
double sofa_planet_id_
Sofa planet id (note: 3.5 implies the earth-center which uses a different method than the other plane...
Definition: CEPlanet.h:161
CEObserver.h
CEPlanet::albedo_
double albedo_
Albedo (0 -> 1)
Definition: CEPlanet.h:151
CEAngleType
CEAngleType
Definition: CEAngle.h:30
CEPlanet::perihelion_lon_deg_
double perihelion_lon_deg_
w - Longitude of perihelion (radians)
Definition: CEPlanet.h:177
CEPlanet::SetAlgorithm
void SetAlgorithm(const CEPlanetAlgo &new_algo)
Set the desired planet computation algorithm.
Definition: CEPlanet.h:425
SOFA
Use methods included in sofa software.
Definition: CEPlanet.h:48
CEPlanet::f_
double f_
Definition: CEPlanet.h:195
CEPlanet::cached_jd_
double cached_jd_
Julian date of the current coordinates.
Definition: CEPlanet.h:165
CEPlanet::GetXICRS
double GetXICRS()
Return X distance from solar system barycenter (AU)
Definition: CEPlanet.h:320
CEPlanet::SetReference
virtual void SetReference(CEPlanet *reference)
Set the reference object for computing more accurate RA,Dec values.
Definition: CEPlanet.cpp:878
CEPlanet::vel_icrs_
std::vector< double > vel_icrs_
XYZ velocity (AU/day) relative to solar system barycenter.
Definition: CEPlanet.h:168
CEPlanet::~CEPlanet
virtual ~CEPlanet()
Destructor.
Definition: CEPlanet.cpp:181
CEPlanet::Mass_kg
double Mass_kg()
Definition: CEPlanet.h:230
CEPlanet::Earth
static CEPlanet Earth()
Returns an object representing Earth.
Definition: CEPlanet.cpp:261
CEPlanet::ObservedCoords
virtual CESkyCoord ObservedCoords(const CEDate &date, const CEObserver &observer) const
Get the observed coordinates for a given observer/date.
Definition: CEPlanet.cpp:639
CEPlanet::SetSofaID
void SetSofaID(const double &new_id)
Set the sofa planet id (note, only values from 1-8 are acceptable)
Definition: CEPlanet.cpp:898
CEPlanet::free_members
void free_members(void)
Free allocated memory.
Definition: CEPlanet.cpp:1030
CEPlanet::Radius_m
double Radius_m()
Definition: CEPlanet.h:220
CEPlanet::VelocityICRS
std::vector< double > VelocityICRS(void) const
Vector of velocities relative to solar system barycenter (AU/day)
Definition: CEPlanet.h:390
CEAngle
Definition: CEAngle.h:38
CEPlanet::ascending_node_lon_deg_per_cent_
double ascending_node_lon_deg_per_cent_
Definition: CEPlanet.h:186
CEPlanet::EccentricAnomoly
double EccentricAnomoly(double &M, double &e, double &En, double &del_E) const
Recursive method for computing the eccentric anomoly.
Definition: CEPlanet.cpp:850
CEPlanet::SetMeanLongitude
virtual void SetMeanLongitude(double mean_longitude, double mean_longitude_per_cent=0.0, CEAngleType angle_type=CEAngleType::DEGREES)
Set the mean longitude.
Definition: CEPlanet.cpp:531
JPL
Use Keplerian algorithm outlined by JPL.
Definition: CEPlanet.h:49
CEPlanet::ComputeElement
double ComputeElement(double value, double value_derivative_, double time) const
Compute current value of a given element.
Definition: CEPlanet.h:440
CEPlanet::YCoordinate_Rad
virtual double YCoordinate_Rad(double new_date=-1.0e30) const
Definition: CEPlanet.h:299
CEAngle::Rad
static CEAngle Rad(const double &angle)
Return angle constructed from a radians angle.
Definition: CEAngle.cpp:340
CEPlanet::UpdatePosition
void UpdatePosition(const double &jd) const
Recomputes the spatial position for a planet based on chosen algorithm.
Definition: CEPlanet.cpp:708
CEPlanet::UpdateCoordinates
virtual void UpdateCoordinates(double new_date=-1.0e30) const
Recomputes the coordinates of the planet if the date has changed from the last time the coordinates w...
Definition: CEPlanet.cpp:677
CEPlanet::inclination_deg_
double inclination_deg_
I - inclination in radians.
Definition: CEPlanet.h:175
CEAngleType::DEGREES
CEPlanet::Venus
static CEPlanet Venus()
Returns an object representing Venus.
Definition: CEPlanet.cpp:236
CEPlanet::semi_major_axis_au_per_cent_
double semi_major_axis_au_per_cent_
Definition: CEPlanet.h:181
CEPlanet::Albedo
double Albedo()
Definition: CEPlanet.h:240
CEPlanet::YCoordinate_Deg
virtual double YCoordinate_Deg(double new_date=-1.0e30) const
Definition: CEPlanet.h:309
CEPlanetAlgo
CEPlanetAlgo
Date enum.
Definition: CEPlanet.h:30
CEPlanet::radius_m_
double radius_m_
Radius (in meters)
Definition: CEPlanet.h:149
CEPlanet::perihelion_long_deg_per_cent_
double perihelion_long_deg_per_cent_
Definition: CEPlanet.h:185
CEPlanet
Definition: CEPlanet.h:35
CEPlanet::GetVxICRS
double GetVxICRS()
X velocity relative to solar system barycenter (AU/day)
Definition: CEPlanet.h:360
CEPlanet::GetYICRS
double GetYICRS()
Y distance from solar system barycenter (AU)
Definition: CEPlanet.h:330
CEPlanet::SetAlbedo
void SetAlbedo(double new_albedo)
Definition: CEPlanet.h:270
CEPlanet::semi_major_axis_au_
double semi_major_axis_au_
a - Semi major axis in Astronomical Units (AU)
Definition: CEPlanet.h:173
CEPlanet::eccentricity_
double eccentricity_
e - Eccentricity
Definition: CEPlanet.h:174
CEPlanet::Saturn
static CEPlanet Saturn()
Returns an object representing Saturn.
Definition: CEPlanet.cpp:363
CEPlanet::CEPlanet
CEPlanet()
Default constructor.
Definition: CEPlanet.cpp:141
CEPlanet::eccentricity_per_cent_
double eccentricity_per_cent_
Definition: CEPlanet.h:182
CEPlanet::SetMass_kg
void SetMass_kg(double new_mass)
Definition: CEPlanet.h:260
CEPlanet::mean_longitude_deg_per_cent_
double mean_longitude_deg_per_cent_
Definition: CEPlanet.h:184
CEPlanet::Update_JPL
virtual void Update_JPL(double new_date=-1.0e30) const
Recomputes the coordinates of the planet based on the date using the keplerian method outlined by JPL...
Definition: CEPlanet.cpp:773
CEPlanet::reference_
CEPlanet * reference_
Definition: CEPlanet.h:155
CEObserver
Definition: CEObserver.h:28
CEPlanet::Update_SOFA
virtual void Update_SOFA(double new_date=-1.0e30) const
Recomputes the coordinates of the planet based on the date using the methods included in the sofa pac...
Definition: CEPlanet.cpp:728
CEBody.h
CEPlanet::MeanAnomaly
double MeanAnomaly(double mean_longitude_deg, double perihelion_long_deg, double T=0.0) const
Computes the mean anomaly.
Definition: CEPlanet.cpp:829
CEPlanet::mass_kg_
double mass_kg_
Mass (kilograms)
Definition: CEPlanet.h:150
CEPlanet::init_members
void init_members(void)
Initialize data members.
Definition: CEPlanet.cpp:974
CEBody
Definition: CEBody.h:39
CEPlanet::PositionICRS
std::vector< double > PositionICRS(void) const
Z distance from solar system barycenter (AU)
Definition: CEPlanet.h:350
CEPlanet::algorithm_type_
CEPlanetAlgo algorithm_type_
Definition: CEPlanet.h:158
CEPlanet::SetTolerance
virtual void SetTolerance(double tol=1.0e-6)
Set the tolerance for the eccentric anomoly recursive formula.
Definition: CEPlanet.h:413
CEPlanet::XCoordinate_Rad
virtual double XCoordinate_Rad(double new_date=-1.0e30) const
Definition: CEPlanet.h:279
CEPlanet::GetVyICRS
double GetVyICRS()
Y velocity relative to solar system barycenter (AU/day)
Definition: CEPlanet.h:370
CEPlanet::EarthDist_AU
virtual double EarthDist_AU(const CEDate &date)
Return the distance to Earth for this planet at a given UTC date.
Definition: CEPlanet.cpp:591
CEPlanet::Jupiter
static CEPlanet Jupiter()
Returns an object representing Jupiter.
Definition: CEPlanet.cpp:335
CEPlanet::c_
double c_
Definition: CEPlanet.h:193
CEPlanet::XCoordinate_Deg
virtual double XCoordinate_Deg(double new_date=-1.0e30) const
Definition: CEPlanet.h:289
CEAngle::Deg
static CEAngle Deg(const double &angle)
Return angle (radians) constructed from a degree angle.
Definition: CEAngle.cpp:317
CEPlanet::SetAscendingNodeLongitude
virtual void SetAscendingNodeLongitude(double ascending_node_lon, double ascending_node_lon_per_cent=0.0, CEAngleType angle_type=CEAngleType::DEGREES)
Set the longitude of the ascending node.
Definition: CEPlanet.cpp:571
CEPlanet::ascending_node_lon_deg_
double ascending_node_lon_deg_
Omega - Longitude of ascending node (radians)
Definition: CEPlanet.h:178
CEPlanet::inclination_deg_per_cent_
double inclination_deg_per_cent_
Definition: CEPlanet.h:183
CEPlanet::GetVzICRS
double GetVzICRS()
Z velocity relative to solar system barycenter (AU/day)
Definition: CEPlanet.h:380
CEPlanet::b_
double b_
Definition: CEPlanet.h:192
CEPlanet::pos_icrs_
std::vector< double > pos_icrs_
XYZ position (AU) relative to solar system barycenter.
Definition: CEPlanet.h:166
CEPlanet::mean_longitude_deg_
double mean_longitude_deg_
L - Mean longitude (radians)
Definition: CEPlanet.h:176
CESkyCoord::XCoord
virtual CEAngle XCoord(const CEDate &jd=CppEphem::julian_date_J2000()) const
Return x coordinate at given Julian date.
Definition: CESkyCoord.h:227
CESkyCoord::YCoord
virtual CEAngle YCoord(const CEDate &jd=CppEphem::julian_date_J2000()) const
Return y coordinate at given Julian date.
Definition: CESkyCoord.h:240
CEPlanet::GetZICRS
double GetZICRS()
Z distance from solar system barycenter (AU)
Definition: CEPlanet.h:340
CEPlanet::SetExtraTerms
virtual void SetExtraTerms(double b, double c, double s, double f)
Definition: CEPlanet.h:398
CEPlanet::SetEccentricity
virtual void SetEccentricity(double eccentricity, double eccentricity_per_cent=0.0)
Set the eccentricity.
Definition: CEPlanet.cpp:497