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 import org.orekit.time.FieldTimeStamped;
22
23 /** Delaunay arguments used for nutation or tides.
24 * <p>This class is a simple placeholder,
25 * it does not provide any processing method.</p>
26 * @param <T> the type of the field elements
27 * @see DelaunayArguments
28 * @author Luc Maisonobe
29 * @since 6.1
30 */
31 public class FieldDelaunayArguments<T extends CalculusFieldElement<T>> implements FieldTimeStamped<T> {
32
33 /** Date. */
34 private final FieldAbsoluteDate<T> date;
35
36 /** Offset in Julian centuries. */
37 private final T tc;
38
39 /** Tide parameter γ = GMST + π. */
40 private final T gamma;
41
42 /** Tide parameter γ = GMST + π time derivative. */
43 private final T gammaDot;
44
45 /** Mean anomaly of the Moon. */
46 private final T l;
47
48 /** Mean anomaly of the Moon time derivative. */
49 private final T lDot;
50
51 /** Mean anomaly of the Sun. */
52 private final T lPrime;
53
54 /** Mean anomaly of the Sun time derivative. */
55 private final T lPrimeDot;
56
57 /** L - Ω where L is the mean longitude of the Moon. */
58 private final T f;
59
60 /** L - Ω where L is the mean longitude of the Moon time derivative. */
61 private final T fDot;
62
63 /** Mean elongation of the Moon from the Sun. */
64 private final T d;
65
66 /** Mean elongation of the Moon from the Sun time derivative. */
67 private final T dDot;
68
69 /** Mean longitude of the ascending node of the Moon. */
70 private final T omega;
71
72 /** Mean longitude of the ascending node of the Moon time derivative. */
73 private final T omegaDot;
74
75 /** Simple constructor.
76 * @param date current date
77 * @param tc offset in Julian centuries
78 * @param gamma tide parameter γ = GMST + π
79 * @param gammaDot tide parameter γ = GMST + π time derivative
80 * @param l mean anomaly of the Moon
81 * @param lDot mean anomaly of the Moon time derivative
82 * @param lPrime mean anomaly of the Sun
83 * @param lPrimeDot mean anomaly of the Sun time derivative
84 * @param f L - Ω where L is the mean longitude of the Moon
85 * @param fDot L - Ω where L is the mean longitude of the Moon time derivative
86 * @param d mean elongation of the Moon from the Sun
87 * @param dDot mean elongation of the Moon from the Sun time derivative
88 * @param omega mean longitude of the ascending node of the Moon
89 * @param omegaDot mean longitude of the ascending node of the Moon time derivative
90 */
91 public FieldDelaunayArguments(final FieldAbsoluteDate<T> date, final T tc, final T gamma, final T gammaDot,
92 final T l, final T lDot, final T lPrime, final T lPrimeDot,
93 final T f, final T fDot, final T d, final T dDot,
94 final T omega, final T omegaDot) {
95 this.date = date;
96 this.tc = tc;
97 this.gamma = gamma;
98 this.gammaDot = gammaDot;
99 this.l = l;
100 this.lDot = lDot;
101 this.lPrime = lPrime;
102 this.lPrimeDot = lPrimeDot;
103 this.f = f;
104 this.fDot = fDot;
105 this.d = d;
106 this.dDot = dDot;
107 this.omega = omega;
108 this.omegaDot = omegaDot;
109 }
110
111 /** {@inheritDoc} */
112 public FieldAbsoluteDate<T> getDate() {
113 return date;
114 }
115
116 /** Get the offset in Julian centuries.
117 * @return offset in Julian centuries
118 */
119 public T getTC() {
120 return tc;
121 }
122
123 /** Get the tide parameter γ = GMST + π.
124 * @return tide parameter γ = GMST + π
125 */
126 public T getGamma() {
127 return gamma;
128 }
129
130 /** Get the tide parameter γ = GMST + π time derivative.
131 * @return tide parameter γ = GMST + π time derivative
132 */
133 public T getGammaDot() {
134 return gammaDot;
135 }
136
137 /** Get the mean anomaly of the Moon.
138 * @return mean anomaly of the Moon
139 */
140 public T getL() {
141 return l;
142 }
143
144 /** Get the mean anomaly of the Moon time derivative.
145 * @return mean anomaly of the Moon time derivative
146 */
147 public T getLDot() {
148 return lDot;
149 }
150
151 /** Get the mean anomaly of the Sun.
152 * @return mean anomaly of the Sun.
153 */
154 public T getLPrime() {
155 return lPrime;
156 }
157
158 /** Get the mean anomaly of the Sun time derivative.
159 * @return mean anomaly of the Sun time derivative.
160 */
161 public T getLPrimeDot() {
162 return lPrimeDot;
163 }
164
165 /** Get L - Ω where L is the mean longitude of the Moon.
166 * @return L - Ω
167 */
168 public T getF() {
169 return f;
170 }
171
172 /** Get L - Ω where L is the mean longitude of the Moon time derivative.
173 * @return L - Ω time derivative
174 */
175 public T getFDot() {
176 return fDot;
177 }
178
179 /** Get the mean elongation of the Moon from the Sun.
180 * @return mean elongation of the Moon from the Sun.
181 */
182 public T getD() {
183 return d;
184 }
185
186 /** Get the mean elongation of the Moon from the Sun time derivative.
187 * @return mean elongation of the Moon from the Sun time derivative.
188 */
189 public T getDDot() {
190 return dDot;
191 }
192
193 /** Get the mean longitude of the ascending node of the Moon.
194 * @return mean longitude of the ascending node of the Moon.
195 */
196 public T getOmega() {
197 return omega;
198 }
199
200 /** Get the mean longitude of the ascending node of the Moon time derivative.
201 * @return mean longitude of the ascending node of the Moon time derivative.
202 */
203 public T getOmegaDot() {
204 return omegaDot;
205 }
206
207 }