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