1 /* Contributed in the public domain.
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.forces.gravity.potential;
18
19 import java.util.List;
20
21 /**
22 * Defines methods for obtaining gravity fields.
23 *
24 * @author Evan Ward
25 * @author Fabien Maussion
26 * @author Pascal Parraud
27 * @author Luc Maisonobe
28 * @see GravityFieldFactory
29 * @since 10.1
30 */
31 public interface GravityFields {
32
33 /** Get a constant gravity field normalized coefficients provider.
34 *
35 * @param degree maximal degree
36 * @param order maximal order
37 * @return a gravity field coefficients provider containing already loaded data
38 * @since 6.0
39 * @see #getNormalizedProvider(int, int)
40 */
41 NormalizedSphericalHarmonicsProvider getConstantNormalizedProvider(int degree,
42 int order);
43
44 /** Get a gravity field normalized coefficients provider.
45 *
46 * @param degree maximal degree
47 * @param order maximal order
48 * @return a gravity field coefficients provider containing already loaded data
49 * @since 6.0
50 * @see #getConstantNormalizedProvider(int, int)
51 */
52 NormalizedSphericalHarmonicsProvider getNormalizedProvider(int degree,
53 int order);
54
55 /** Get a constant gravity field unnormalized coefficients provider.
56 *
57 * @param degree maximal degree
58 * @param order maximal order
59 * @return a gravity field coefficients provider containing already loaded data
60 * @since 6.0
61 * @see #getUnnormalizedProvider(int, int)
62 */
63 UnnormalizedSphericalHarmonicsProvider getConstantUnnormalizedProvider(int degree,
64 int order);
65
66 /** Get a gravity field unnormalized coefficients provider.
67 *
68 * @param degree maximal degree
69 * @param order maximal order
70 * @return a gravity field coefficients provider containing already loaded data
71 * @since 6.0
72 * @see #getConstantUnnormalizedProvider(int, int)
73 */
74 UnnormalizedSphericalHarmonicsProvider getUnnormalizedProvider(int degree,
75 int order);
76
77 /** Get the ocean tides waves.
78 *
79 * <p><span style="color:red">
80 * WARNING: as of 2013-11-17, there seem to be an inconsistency when loading
81 * one or the other file, for wave Sa (Doodson number 56.554) and P1 (Doodson
82 * number 163.555). The sign of the coefficients are different. We think the
83 * problem lies in the input files from IERS and not in the conversion (which
84 * works for all other waves), but cannot be sure. For this reason, ocean
85 * tides are still considered experimental at this date.
86 * </span></p>
87 * @param degree maximal degree
88 * @param order maximal order
89 * @return list of tides waves containing already loaded data
90 * @since 6.1
91 */
92 List<OceanTidesWave> getOceanTidesWaves(int degree, int order);
93 }