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.hipparchus.CalculusFieldElement;
20 import org.orekit.time.FieldAbsoluteDate;
21
22 /** Elements of the bodies having an effect on nutation.
23 * <p>This class is a simple placeholder,
24 * it does not provide any processing method.</p>
25 * @param <T> the type of the field elements
26 * @see BodiesElements
27 * @author Luc Maisonobe
28 * @since 6.1
29 */
30 public final class FieldBodiesElements<T extends CalculusFieldElement<T>> extends FieldDelaunayArguments<T> {
31
32 /** Mean Mercury longitude. */
33 private final T lMe;
34
35 /** Mean Mercury longitude time derivative. */
36 private final T lMeDot;
37
38 /** Mean Venus longitude. */
39 private final T lVe;
40
41 /** Mean Venus longitude time derivative. */
42 private final T lVeDot;
43
44 /** Mean Earth longitude. */
45 private final T lE;
46
47 /** Mean Earth longitude time derivative. */
48 private final T lEDot;
49
50 /** Mean Mars longitude. */
51 private final T lMa;
52
53 /** Mean Mars longitude time derivative. */
54 private final T lMaDot;
55
56 /** Mean Jupiter longitude. */
57 private final T lJu;
58
59 /** Mean Jupiter longitude time derivative. */
60 private final T lJuDot;
61
62 /** Mean Saturn longitude. */
63 private final T lSa;
64
65 /** Mean Saturn longitude time derivative. */
66 private final T lSaDot;
67
68 /** Mean Uranus longitude. */
69 private final T lUr;
70
71 /** Mean Uranus longitude time derivative. */
72 private final T lUrDot;
73
74 /** Mean Neptune longitude. */
75 private final T lNe;
76
77 /** Mean Neptune longitude time derivative. */
78 private final T lNeDot;
79
80 /** General accumulated precession in longitude. */
81 private final T pa;
82
83 /** General accumulated precession in longitude time derivative. */
84 private final T paDot;
85
86 /** Simple constructor.
87 * @param date current date
88 * @param tc offset in Julian centuries
89 * @param gamma tide parameter γ = GMST + π
90 * @param gammaDot tide parameter γ = GMST + π time derivative
91 * @param l mean anomaly of the Moon
92 * @param lDot mean anomaly of the Moon time derivative
93 * @param lPrime mean anomaly of the Sun
94 * @param lPrimeDot mean anomaly of the Sun time derivative
95 * @param f L - Ω where L is the mean longitude of the Moon
96 * @param fDot L - Ω where L is the mean longitude of the Moon time derivative
97 * @param d mean elongation of the Moon from the Sun
98 * @param dDot mean elongation of the Moon from the Sun time derivative
99 * @param omega mean longitude of the ascending node of the Moon
100 * @param omegaDot mean longitude of the ascending node of the Moon time derivative
101 * @param lMe mean Mercury longitude
102 * @param lMeDot mean Mercury longitude time derivative
103 * @param lVe mean Venus longitude
104 * @param lVeDot mean Venus longitude time derivative
105 * @param lE mean Earth longitude
106 * @param lEDot mean Earth longitude time derivative
107 * @param lMa mean Mars longitude
108 * @param lMaDot mean Mars longitude time derivative
109 * @param lJu mean Jupiter longitude
110 * @param lJuDot mean Jupiter longitude time derivative
111 * @param lSa mean Saturn longitude
112 * @param lSaDot mean Saturn longitude time derivative
113 * @param lUr mean Uranus longitude
114 * @param lUrDot mean Uranus longitude time derivative
115 * @param lNe mean Neptune longitude
116 * @param lNeDot mean Neptune longitude time derivative
117 * @param pa general accumulated precession in longitude
118 * @param paDot general accumulated precession in longitude time derivative
119 */
120 public FieldBodiesElements(final FieldAbsoluteDate<T> date, final T tc, final T gamma, final T gammaDot,
121 final T l, final T lDot, final T lPrime, final T lPrimeDot,
122 final T f, final T fDot, final T d, final T dDot,
123 final T omega, final T omegaDot,
124 final T lMe, final T lMeDot, final T lVe, final T lVeDot,
125 final T lE, final T lEDot, final T lMa, final T lMaDot,
126 final T lJu, final T lJuDot, final T lSa, final T lSaDot,
127 final T lUr, final T lUrDot, final T lNe, final T lNeDot,
128 final T pa, final T paDot) {
129 super(date, tc, gamma, gammaDot, l, lDot, lPrime, lPrimeDot, f, fDot, d, dDot, omega, omegaDot);
130 this.lMe = lMe;
131 this.lMeDot = lMeDot;
132 this.lVe = lVe;
133 this.lVeDot = lVeDot;
134 this.lE = lE;
135 this.lEDot = lEDot;
136 this.lMa = lMa;
137 this.lMaDot = lMaDot;
138 this.lJu = lJu;
139 this.lJuDot = lJuDot;
140 this.lSa = lSa;
141 this.lSaDot = lSaDot;
142 this.lUr = lUr;
143 this.lUrDot = lUrDot;
144 this.lNe = lNe;
145 this.lNeDot = lNeDot;
146 this.pa = pa;
147 this.paDot = paDot;
148 }
149
150 /** Get the mean Mercury longitude.
151 * @return mean Mercury longitude.
152 */
153 public T getLMe() {
154 return lMe;
155 }
156
157 /** Get the mean Mercury longitude time derivative.
158 * @return mean Mercury longitude time derivative.
159 */
160 public T getLMeDot() {
161 return lMeDot;
162 }
163
164 /** Get the mean Venus longitude.
165 * @return mean Venus longitude. */
166 public T getLVe() {
167 return lVe;
168 }
169
170 /** Get the mean Venus longitude time derivative.
171 * @return mean Venus longitude time derivative. */
172 public T getLVeDot() {
173 return lVeDot;
174 }
175
176 /** Get the mean Earth longitude.
177 * @return mean Earth longitude. */
178 public T getLE() {
179 return lE;
180 }
181
182 /** Get the mean Earth longitude time derivative.
183 * @return mean Earth longitude time derivative. */
184 public T getLEDot() {
185 return lEDot;
186 }
187
188 /** Get the mean Mars longitude.
189 * @return mean Mars longitude. */
190 public T getLMa() {
191 return lMa;
192 }
193
194 /** Get the mean Mars longitude time derivative.
195 * @return mean Mars longitude time derivative. */
196 public T getLMaDot() {
197 return lMaDot;
198 }
199
200 /** Get the mean Jupiter longitude.
201 * @return mean Jupiter longitude. */
202 public T getLJu() {
203 return lJu;
204 }
205
206 /** Get the mean Jupiter longitude time derivative.
207 * @return mean Jupiter longitude time derivative. */
208 public T getLJuDot() {
209 return lJuDot;
210 }
211
212 /** Get the mean Saturn longitude.
213 * @return mean Saturn longitude. */
214 public T getLSa() {
215 return lSa;
216 }
217
218 /** Get the mean Saturn longitude time derivative.
219 * @return mean Saturn longitude time derivative. */
220 public T getLSaDot() {
221 return lSaDot;
222 }
223
224 /** Get the mean Uranus longitude.
225 * @return mean Uranus longitude. */
226 public T getLUr() {
227 return lUr;
228 }
229
230 /** Get the mean Uranus longitude time derivative.
231 * @return mean Uranus longitude time derivative. */
232 public T getLUrDot() {
233 return lUrDot;
234 }
235
236 /** Get the mean Neptune longitude.
237 * @return mean Neptune longitude. */
238 public T getLNe() {
239 return lNe;
240 }
241
242 /** Get the mean Neptune longitude time derivative.
243 * @return mean Neptune longitude time derivative. */
244 public T getLNeDot() {
245 return lNeDot;
246 }
247
248 /** Get the general accumulated precession in longitude.
249 * @return general accumulated precession in longitude. */
250 public T getPa() {
251 return pa;
252 }
253
254 /** Get the general accumulated precession in longitude time derivative.
255 * @return general accumulated precession in longitude time derivative. */
256 public T getPaDot() {
257 return paDot;
258 }
259
260 }