FieldDelaunayArguments.java

  1. /* Copyright 2002-2020 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. import org.hipparchus.RealFieldElement;
  19. import org.orekit.time.FieldAbsoluteDate;
  20. import org.orekit.time.FieldTimeStamped;

  21. /** Delaunay arguments used for nutation or tides.
  22.  * <p>This class is a simple placeholder,
  23.  * it does not provide any processing method.</p>
  24.  * @param <T> the type of the field elements
  25.  * @see DelaunayArguments
  26.  * @author Luc Maisonobe
  27.  * @since 6.1
  28.  */
  29. public class FieldDelaunayArguments<T extends RealFieldElement<T>> implements FieldTimeStamped<T> {

  30.     /** Date. */
  31.     private final FieldAbsoluteDate<T> date;

  32.     /** Offset in Julian centuries. */
  33.     private final T tc;

  34.     /** Tide parameter γ = GMST + π. */
  35.     private final T gamma;

  36.     /** Tide parameter γ = GMST + π time derivative. */
  37.     private final T gammaDot;

  38.     /** Mean anomaly of the Moon. */
  39.     private final T l;

  40.     /** Mean anomaly of the Moon time derivative. */
  41.     private final T lDot;

  42.     /** Mean anomaly of the Sun. */
  43.     private final T lPrime;

  44.     /** Mean anomaly of the Sun time derivative. */
  45.     private final T lPrimeDot;

  46.     /** L - Ω where L is the mean longitude of the Moon. */
  47.     private final T f;

  48.     /** L - Ω where L is the mean longitude of the Moon time derivative. */
  49.     private final T fDot;

  50.     /** Mean elongation of the Moon from the Sun. */
  51.     private final T d;

  52.     /** Mean elongation of the Moon from the Sun time derivative. */
  53.     private final T dDot;

  54.     /** Mean longitude of the ascending node of the Moon. */
  55.     private final T omega;

  56.     /** Mean longitude of the ascending node of the Moon time derivative. */
  57.     private final T omegaDot;

  58.     /** Simple constructor.
  59.      * @param date current date
  60.      * @param tc offset in Julian centuries
  61.      * @param gamma tide parameter γ = GMST + π
  62.      * @param gammaDot tide parameter γ = GMST + π time derivative
  63.      * @param l mean anomaly of the Moon
  64.      * @param lDot mean anomaly of the Moon time derivative
  65.      * @param lPrime mean anomaly of the Sun
  66.      * @param lPrimeDot mean anomaly of the Sun time derivative
  67.      * @param f L - Ω where L is the mean longitude of the Moon
  68.      * @param fDot L - Ω where L is the mean longitude of the Moon time derivative
  69.      * @param d mean elongation of the Moon from the Sun
  70.      * @param dDot mean elongation of the Moon from the Sun time derivative
  71.      * @param omega mean longitude of the ascending node of the Moon
  72.      * @param omegaDot mean longitude of the ascending node of the Moon time derivative
  73.      */
  74.     public FieldDelaunayArguments(final FieldAbsoluteDate<T> date, final T tc, final T gamma, final T gammaDot,
  75.                                   final T l, final T lDot, final T lPrime, final T lPrimeDot,
  76.                                   final T f, final T fDot, final T d, final T dDot,
  77.                                   final T omega, final T omegaDot) {
  78.         this.date      = date;
  79.         this.tc        = tc;
  80.         this.gamma     = gamma;
  81.         this.gammaDot  = gammaDot;
  82.         this.l         = l;
  83.         this.lDot      = lDot;
  84.         this.lPrime    = lPrime;
  85.         this.lPrimeDot = lPrimeDot;
  86.         this.f         = f;
  87.         this.fDot      = fDot;
  88.         this.d         = d;
  89.         this.dDot      = dDot;
  90.         this.omega     = omega;
  91.         this.omegaDot  = omegaDot;
  92.     }

  93.     /** {@inheritDoc} */
  94.     public FieldAbsoluteDate<T> getDate() {
  95.         return date;
  96.     }

  97.     /** Get the offset in Julian centuries.
  98.      * @return offset in Julian centuries
  99.      */
  100.     public T getTC() {
  101.         return tc;
  102.     }

  103.     /** Get the tide parameter γ = GMST + π.
  104.      * @return tide parameter γ = GMST + π
  105.      */
  106.     public T getGamma() {
  107.         return gamma;
  108.     }

  109.     /** Get the tide parameter γ = GMST + π time derivative.
  110.      * @return tide parameter γ = GMST + π time derivative
  111.      */
  112.     public T getGammaDot() {
  113.         return gammaDot;
  114.     }

  115.     /** Get the mean anomaly of the Moon.
  116.      * @return mean anomaly of the Moon
  117.      */
  118.     public T getL() {
  119.         return l;
  120.     }

  121.     /** Get the mean anomaly of the Moon time derivative.
  122.      * @return mean anomaly of the Moon time derivative
  123.      */
  124.     public T getLDot() {
  125.         return lDot;
  126.     }

  127.     /** Get the mean anomaly of the Sun.
  128.      * @return mean anomaly of the Sun.
  129.      */
  130.     public T getLPrime() {
  131.         return lPrime;
  132.     }

  133.     /** Get the mean anomaly of the Sun time derivative.
  134.      * @return mean anomaly of the Sun time derivative.
  135.      */
  136.     public T getLPrimeDot() {
  137.         return lPrimeDot;
  138.     }

  139.     /** Get L - Ω where L is the mean longitude of the Moon.
  140.      * @return L - Ω
  141.      */
  142.     public T getF() {
  143.         return f;
  144.     }

  145.     /** Get L - Ω where L is the mean longitude of the Moon time derivative.
  146.      * @return L - Ω time derivative
  147.      */
  148.     public T getFDot() {
  149.         return fDot;
  150.     }

  151.     /** Get the mean elongation of the Moon from the Sun.
  152.      * @return mean elongation of the Moon from the Sun.
  153.      */
  154.     public T getD() {
  155.         return d;
  156.     }

  157.     /** Get the mean elongation of the Moon from the Sun time derivative.
  158.      * @return mean elongation of the Moon from the Sun time derivative.
  159.      */
  160.     public T getDDot() {
  161.         return dDot;
  162.     }

  163.     /** Get the mean longitude of the ascending node of the Moon.
  164.      * @return mean longitude of the ascending node of the Moon.
  165.      */
  166.     public T getOmega() {
  167.         return omega;
  168.     }

  169.     /** Get the mean longitude of the ascending node of the Moon time derivative.
  170.      * @return mean longitude of the ascending node of the Moon time derivative.
  171.      */
  172.     public T getOmegaDot() {
  173.         return omegaDot;
  174.     }

  175. }