1   /* Copyright 2002-2025 CS GROUP
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.orekit.data;
18  
19  import org.orekit.time.AbsoluteDate;
20  
21  /** Elements of the bodies having an effect on nutation.
22   * <p>This class is a simple placeholder,
23   * it does not provide any processing method.</p>
24   * @author Luc Maisonobe
25   */
26  public final class BodiesElements extends DelaunayArguments {
27  
28      /** Mean Mercury longitude. */
29      private final double lMe;
30  
31      /** Mean Mercury longitude time derivative. */
32      private final double lMeDot;
33  
34      /** Mean Venus longitude. */
35      private final double lVe;
36  
37      /** Mean Venus longitude time derivative. */
38      private final double lVeDot;
39  
40      /** Mean Earth longitude. */
41      private final double lE;
42  
43      /** Mean Earth longitude time derivative. */
44      private final double lEDot;
45  
46      /** Mean Mars longitude. */
47      private final double lMa;
48  
49      /** Mean Mars longitude time derivative. */
50      private final double lMaDot;
51  
52      /** Mean Jupiter longitude. */
53      private final double lJu;
54  
55      /** Mean Jupiter longitude time derivative. */
56      private final double lJuDot;
57  
58      /** Mean Saturn longitude. */
59      private final double lSa;
60  
61      /** Mean Saturn longitude time derivative. */
62      private final double lSaDot;
63  
64      /** Mean Uranus longitude. */
65      private final double lUr;
66  
67      /** Mean Uranus longitude time derivative. */
68      private final double lUrDot;
69  
70      /** Mean Neptune longitude. */
71      private final double lNe;
72  
73      /** Mean Neptune longitude time derivative. */
74      private final double lNeDot;
75  
76      /** General accumulated precession in longitude. */
77      private final double pa;
78  
79      /** General accumulated precession in longitude time derivative. */
80      private final double paDot;
81  
82      /** Simple constructor.
83       * @param date current date
84       * @param tc offset in Julian centuries
85       * @param gamma tide parameter γ = GMST + π
86       * @param gammaDot tide parameter γ = GMST + π time derivative
87       * @param l mean anomaly of the Moon
88       * @param lDot mean anomaly of the Moon time derivative
89       * @param lPrime mean anomaly of the Sun
90       * @param lPrimeDot mean anomaly of the Sun time derivative
91       * @param f L - Ω where L is the mean longitude of the Moon
92       * @param fDot L - Ω where L is the mean longitude of the Moon time derivative
93       * @param d mean elongation of the Moon from the Sun
94       * @param dDot mean elongation of the Moon from the Sun time derivative
95       * @param omega mean longitude of the ascending node of the Moon
96       * @param omegaDot mean longitude of the ascending node of the Moon time derivative
97       * @param lMe mean Mercury longitude
98       * @param lMeDot mean Mercury longitude time derivative
99       * @param lVe mean Venus longitude
100      * @param lVeDot mean Venus longitude time derivative
101      * @param lE mean Earth longitude
102      * @param lEDot mean Earth longitude time derivative
103      * @param lMa mean Mars longitude
104      * @param lMaDot mean Mars longitude time derivative
105      * @param lJu mean Jupiter longitude
106      * @param lJuDot mean Jupiter longitude time derivative
107      * @param lSa mean Saturn longitude
108      * @param lSaDot mean Saturn longitude time derivative
109      * @param lUr mean Uranus longitude
110      * @param lUrDot mean Uranus longitude time derivative
111      * @param lNe mean Neptune longitude
112      * @param lNeDot mean Neptune longitude time derivative
113      * @param pa general accumulated precession in longitude
114      * @param paDot general accumulated precession in longitude time derivative
115      */
116     public BodiesElements(final AbsoluteDate date, final double tc, final double gamma, final double gammaDot,
117                           final double l, final double lDot, final double lPrime, final double lPrimeDot,
118                           final double f, final double fDot, final double d, final double dDot,
119                           final double omega, final double omegaDot,
120                           final double lMe, final double lMeDot, final double lVe, final double lVeDot,
121                           final double lE, final double lEDot, final double lMa, final double lMaDot,
122                           final double lJu, final double lJuDot, final double lSa, final double lSaDot,
123                           final double lUr, final double lUrDot, final double lNe, final double lNeDot,
124                           final double pa, final double paDot) {
125         super(date, tc, gamma, gammaDot, l, lDot, lPrime, lPrimeDot, f, fDot, d, dDot, omega, omegaDot);
126         this.lMe    = lMe;
127         this.lMeDot = lMeDot;
128         this.lVe    = lVe;
129         this.lVeDot = lVeDot;
130         this.lE     = lE;
131         this.lEDot  = lEDot;
132         this.lMa    = lMa;
133         this.lMaDot = lMaDot;
134         this.lJu    = lJu;
135         this.lJuDot = lJuDot;
136         this.lSa    = lSa;
137         this.lSaDot = lSaDot;
138         this.lUr    = lUr;
139         this.lUrDot = lUrDot;
140         this.lNe    = lNe;
141         this.lNeDot = lNeDot;
142         this.pa     = pa;
143         this.paDot  = paDot;
144     }
145 
146     /** Get the mean Mercury longitude.
147      * @return mean Mercury longitude.
148      */
149     public double getLMe() {
150         return lMe;
151     }
152 
153     /** Get the mean Mercury longitude time derivative.
154      * @return mean Mercury longitude time derivative.
155      */
156     public double getLMeDot() {
157         return lMeDot;
158     }
159 
160     /** Get the mean Venus longitude.
161      * @return mean Venus longitude. */
162     public double getLVe() {
163         return lVe;
164     }
165 
166     /** Get the mean Venus longitude time derivative.
167      * @return mean Venus longitude time derivative. */
168     public double getLVeDot() {
169         return lVeDot;
170     }
171 
172     /** Get the mean Earth longitude.
173      * @return mean Earth longitude. */
174     public double getLE() {
175         return lE;
176     }
177 
178     /** Get the mean Earth longitude time derivative.
179      * @return mean Earth longitude time derivative. */
180     public double getLEDot() {
181         return lEDot;
182     }
183 
184     /** Get the mean Mars longitude.
185      * @return mean Mars longitude. */
186     public double getLMa() {
187         return lMa;
188     }
189 
190     /** Get the mean Mars longitude time derivative.
191      * @return mean Mars longitude time derivative. */
192     public double getLMaDot() {
193         return lMaDot;
194     }
195 
196     /** Get the mean Jupiter longitude.
197      * @return mean Jupiter longitude. */
198     public double getLJu() {
199         return lJu;
200     }
201 
202     /** Get the mean Jupiter longitude time derivative.
203      * @return mean Jupiter longitude time derivative. */
204     public double getLJuDot() {
205         return lJuDot;
206     }
207 
208     /** Get the mean Saturn longitude.
209      * @return mean Saturn longitude. */
210     public double getLSa() {
211         return lSa;
212     }
213 
214     /** Get the mean Saturn longitude time derivative.
215      * @return mean Saturn longitude time derivative. */
216     public double getLSaDot() {
217         return lSaDot;
218     }
219 
220     /** Get the mean Uranus longitude.
221      * @return mean Uranus longitude. */
222     public double getLUr() {
223         return lUr;
224     }
225 
226     /** Get the mean Uranus longitude time derivative.
227      * @return mean Uranus longitude time derivative. */
228     public double getLUrDot() {
229         return lUrDot;
230     }
231 
232     /** Get the mean Neptune longitude.
233      * @return mean Neptune longitude. */
234     public double getLNe() {
235         return lNe;
236     }
237 
238     /** Get the mean Neptune longitude time derivative.
239      * @return mean Neptune longitude time derivative. */
240     public double getLNeDot() {
241         return lNeDot;
242     }
243 
244     /** Get the general accumulated precession in longitude.
245      * @return general accumulated precession in longitude. */
246     public double getPa() {
247         return pa;
248     }
249 
250     /** Get the general accumulated precession in longitude time derivative.
251      * @return general accumulated precession in longitude time derivative. */
252     public double getPaDot() {
253         return paDot;
254     }
255 
256 }