FieldDelaunayArguments.java

  1. /* Copyright 2002-2016 CS Systèmes d'Information
  2.  * Licensed to CS Systèmes d'Information (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 java.io.Serializable;

  19. import org.hipparchus.RealFieldElement;
  20. import org.orekit.time.AbsoluteDate;
  21. import org.orekit.time.TimeStamped;

  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.  * @param <T> the type of the field elements
  26.  * @see DelaunayArguments
  27.  * @author Luc Maisonobe
  28.  * @since 6.1
  29.  */
  30. public class FieldDelaunayArguments<T extends RealFieldElement<T>> implements TimeStamped, Serializable {

  31.     /** Serializable UID. */
  32.     private static final long serialVersionUID = 20131097L;

  33.     /** Date. */
  34.     private final AbsoluteDate date;

  35.     /** Offset in Julian centuries. */
  36.     private final T tc;

  37.     /** Tide parameter γ = GMST + π. */
  38.     private final T gamma;

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

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

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

  45.     /** Mean elongation of the Moon from the Sun. */
  46.     private final T d;

  47.     /** Mean longitude of the ascending node of the Moon. */
  48.     private final T omega;

  49.     /** Simple constructor.
  50.      * @param date current date
  51.      * @param tc offset in Julian centuries
  52.      * @param gamma tide parameter γ = GMST + π
  53.      * @param l mean anomaly of the Moon
  54.      * @param lPrime mean anomaly of the Sun
  55.      * @param f L - Ω where L is the mean longitude of the Moon
  56.      * @param d mean elongation of the Moon from the Sun
  57.      * @param omega mean longitude of the ascending node of the Moon
  58.      */
  59.     public FieldDelaunayArguments(final AbsoluteDate date, final T tc, final T gamma,
  60.                                   final T l, final T lPrime,
  61.                                   final T f, final T d, final T omega) {
  62.         this.date   = date;
  63.         this.tc     = tc;
  64.         this.gamma  = gamma;
  65.         this.l      = l;
  66.         this.lPrime = lPrime;
  67.         this.f      = f;
  68.         this.d      = d;
  69.         this.omega  = omega;
  70.     }

  71.     /** {@inheritDoc} */
  72.     public AbsoluteDate getDate() {
  73.         return date;
  74.     }

  75.     /** Get the offset in Julian centuries.
  76.      * @return offset in Julian centuries
  77.      */
  78.     public T getTC() {
  79.         return tc;
  80.     }

  81.     /** Get the tide parameter γ = GMST + π.
  82.      * @return tide parameter γ = GMST + π
  83.      */
  84.     public T getGamma() {
  85.         return gamma;
  86.     }

  87.     /** Get the mean anomaly of the Moon.
  88.      * @return mean anomaly of the Moon
  89.      */
  90.     public T getL() {
  91.         return l;
  92.     }

  93.     /** Get the mean anomaly of the Sun.
  94.      * @return mean anomaly of the Sun.
  95.      */
  96.     public T getLPrime() {
  97.         return lPrime;
  98.     }

  99.     /** Get L - Ω where L is the mean longitude of the Moon.
  100.      * @return L - Ω
  101.      */
  102.     public T getF() {
  103.         return f;
  104.     }

  105.     /** Get the mean elongation of the Moon from the Sun.
  106.      * @return mean elongation of the Moon from the Sun.
  107.      */
  108.     public T getD() {
  109.         return d;
  110.     }

  111.     /** Get the mean longitude of the ascending node of the Moon.
  112.      * @return mean longitude of the ascending node of the Moon.
  113.      */
  114.     public T getOmega() {
  115.         return omega;
  116.     }

  117. }