View Javadoc
1   package org.djunits.unit;
2   
3   import org.djunits.quantity.Quantity;
4   import org.djunits.unit.scale.IdentityScale;
5   import org.djunits.unit.si.SIPrefixes;
6   import org.djunits.unit.unitsystem.UnitSystem;
7   
8   /**
9    * Standard angular velocity unit. See
10   * <a href="https://en.wikipedia.org/wiki/Angular_velocity">https://en.wikipedia.org/wiki/Angular_velocity</a>.
11   * <p>
12   * Copyright (c) 2015-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
13   * BSD-style license. See <a href="https://djunits.org/docs/license.html">DJUNITS License</a>
14   * </p>
15   * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
16   */
17  public class AngularVelocityUnit extends Unit<AngularVelocityUnit>
18  {
19      /** */
20      private static final long serialVersionUID = 20200117L;
21  
22      /** The base, with "rad/s" as the SI signature. */
23      public static final Quantity<AngularVelocityUnit> BASE = new Quantity<>("AngularVelocity", "rad/s");
24  
25      /** The SI unit for angular velocity is radian per second. */
26      public static final AngularVelocityUnit SI = new AngularVelocityUnit().build(new Unit.Builder<AngularVelocityUnit>()
27              .setQuantity(BASE).setId("rad/s").setName("radians per second").setUnitSystem(UnitSystem.SI_DERIVED)
28              .setSiPrefixes(SIPrefixes.NONE, 1.0).setScale(IdentityScale.SCALE).setAdditionalAbbreviations("rad/sec"));
29  
30      /** radian per second. */
31      public static final AngularVelocityUnit RADIAN_PER_SECOND = SI;
32  
33      /** degree per second. */
34      public static final AngularVelocityUnit DEGREE_PER_SECOND = RADIAN_PER_SECOND.deriveLinear(Math.PI / 180.0, "deg/s",
35              "degree per second", UnitSystem.SI_ACCEPTED, "\u00b0/s", "deg/s", "dg/s", "dg/sec", "deg/sec");
36  
37      /** arcminute per second. */
38      public static final AngularVelocityUnit ARCMINUTE_PER_SECOND = DEGREE_PER_SECOND.deriveLinear(1.0 / 60.0, "arcmin/s",
39              "arcminute per second", UnitSystem.SI_ACCEPTED, "'/s", "'/sec", "arcmin/sec");
40  
41      /** arcsecond per second. */
42      public static final AngularVelocityUnit ARCSECOND_PER_SECOND = DEGREE_PER_SECOND.deriveLinear(1.0 / 3600.0, "arcsec/s",
43              "arcsecond per second", UnitSystem.SI_ACCEPTED, "\"/s", "\"/sec", new String[] {"arcsec/sec"});
44  
45      /** grad per second. */
46      public static final AngularVelocityUnit GRAD_PER_SECOND =
47              RADIAN_PER_SECOND.deriveLinear(2.0 * Math.PI / 400.0, "grad/s", "gradian per second", UnitSystem.OTHER);
48  
49      /** centesimal arcminute per second. */
50      public static final AngularVelocityUnit CENTESIMAL_ARCMINUTE_PER_SECOND = GRAD_PER_SECOND.deriveLinear(1.0 / 100.0, "cdm/s",
51              "centesimal arcminute per second", UnitSystem.OTHER, "c'/s", "c'/sec");
52  
53      /** centesimal arcsecond per second. */
54      public static final AngularVelocityUnit CENTESIMAL_ARCSECOND_PER_SECOND = GRAD_PER_SECOND.deriveLinear(1.0 / 10000.0,
55              "cds/s", "centesimal arcsecond per second", UnitSystem.OTHER, "c\"/s", "c\"/sec");
56  
57  }