FieldPressureTemperatureHumidity.java

  1. /* Copyright 2002-2024 Thales Alenia Space
  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.models.earth.weather;

  18. import org.hipparchus.CalculusFieldElement;
  19. import org.hipparchus.Field;

  20. /** Container for pressure, temperature, and humidity.
  21.  * @param <T> type of the field elements
  22.  * @author Luc Maisonobe
  23.  * @since 12.1
  24.  */
  25. public class FieldPressureTemperatureHumidity<T extends CalculusFieldElement<T>> extends FieldPressureTemperature<T> {

  26.     /** Humidity as water vapor pressure (Pa). */
  27.     private final T waterVaporPressure;

  28.     /** Mean temperature weighted with water vapor pressure. */
  29.     private final T tm;

  30.     /** Water vapor decrease factor. */
  31.     private final T lambda;

  32.     /** Simple constructor.
  33.      * @param altitude altitude at which weather parameters have been computed (m)
  34.      * @param pressure pressure (Pa)
  35.      * @param temperature temperature (Kelvin)
  36.      * @param waterVaporPressure humidity as water vapor pressure (Pa)
  37.      * @param tm mean temperature weighted with water vapor pressure
  38.      * @param lambda water vapor decrease factor
  39.      */
  40.     public FieldPressureTemperatureHumidity(final T altitude,
  41.                                             final T pressure,
  42.                                             final T temperature,
  43.                                             final T waterVaporPressure,
  44.                                             final T tm,
  45.                                             final T lambda) {
  46.         super(altitude, pressure, temperature);
  47.         this.waterVaporPressure = waterVaporPressure;
  48.         this.tm                 = tm;
  49.         this.lambda             = lambda;
  50.     }

  51.     /** Simple constructor.
  52.      * @param field field to which elements belong
  53.      * @param weather regular weather parameters
  54.      */
  55.     public FieldPressureTemperatureHumidity(final Field<T> field, final PressureTemperatureHumidity weather) {
  56.         super(field, weather);
  57.         this.waterVaporPressure = field.getZero().newInstance(weather.getWaterVaporPressure());
  58.         this.tm                 = field.getZero().newInstance(weather.getTm());
  59.         this.lambda             = field.getZero().newInstance(weather.getLambda());
  60.     }

  61.     /** Get humidity as water vapor pressure.
  62.      * @return humidity as water vapor pressure (Pa)
  63.      */
  64.     public T getWaterVaporPressure() {
  65.         return waterVaporPressure;
  66.     }

  67.     /** Get mean temperature weighted with water vapor pressure.
  68.      * @return mean temperature weighted with water vapor pressure
  69.      */
  70.     public T getTm() {
  71.         return tm;
  72.     }

  73.     /** Get water vapor decrease factor.
  74.      * @return water vapor decrease factor
  75.      */
  76.     public T getLambda() {
  77.         return lambda;
  78.     }

  79. }