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 }