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