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 acceleration unit. See
10   * <a href="https://en.wikipedia.org/wiki/Angular_acceleration">https://en.wikipedia.org/wiki/Angular_acceleration</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 AngularAccelerationUnit extends Unit<AngularAccelerationUnit>
18  {
19      /** */
20      private static final long serialVersionUID = 20200117L;
21  
22      /** The base, with "rad/s2" as the SI signature. */
23      public static final Quantity<AngularAccelerationUnit> BASE = new Quantity<>("AngularAcceleration", "rad/s2");
24  
25      /** The SI unit for angular velocity is radian per second squared. */
26      public static final AngularAccelerationUnit SI =
27              new AngularAccelerationUnit().build(new Unit.Builder<AngularAccelerationUnit>().setQuantity(BASE).setId("rad/s2")
28                      .setName("radians per second squared").setUnitSystem(UnitSystem.SI_DERIVED)
29                      .setSiPrefixes(SIPrefixes.NONE, 1.0).setScale(IdentityScale.SCALE).setAdditionalAbbreviations("rad/sec2"));
30  
31      /** radian per second squared. */
32      public static final AngularAccelerationUnit RADIAN_PER_SECOND_SQUARED = SI;
33  
34      /** degree per second squared. */
35      public static final AngularAccelerationUnit DEGREE_PER_SECOND_SQUARED =
36              RADIAN_PER_SECOND_SQUARED.deriveLinear(Math.PI / 180.0, "deg/s2", "degree per second", UnitSystem.SI_ACCEPTED,
37                      "\u00b0/s2", "deg/s2", "dg/s2", "dg/sec2", "deg/sec2");
38  
39      /** arcminute per second squared. */
40      public static final AngularAccelerationUnit ARCMINUTE_PER_SECOND_SQUARED = DEGREE_PER_SECOND_SQUARED.deriveLinear(
41              1.0 / 60.0, "arcmin/s2", "arcminute per second squared", UnitSystem.SI_ACCEPTED, "'/s2", "'/sec2", "arcmin/sec2");
42  
43      /** arcsecond per second squared. */
44      public static final AngularAccelerationUnit ARCSECOND_PER_SECOND_SQUARED =
45              DEGREE_PER_SECOND_SQUARED.deriveLinear(1.0 / 3600.0, "arcsec/s2", "arcsecond per second squared",
46                      UnitSystem.SI_ACCEPTED, "\"/s2", "\"/sec2", new String[] {"arcsec/sec2"});
47  
48      /** grad per second squared. */
49      public static final AngularAccelerationUnit GRAD_PER_SECOND_SQUARED = RADIAN_PER_SECOND_SQUARED
50              .deriveLinear(2.0 * Math.PI / 400.0, "grad/s2", "gradian per second squared", UnitSystem.OTHER);
51  
52      /** centesimal arcminute per second squared. */
53      public static final AngularAccelerationUnit CENTESIMAL_ARCMINUTE_SQUARED = GRAD_PER_SECOND_SQUARED.deriveLinear(1.0 / 100.0,
54              "cdm/s2", "centesimal arcminute per second squared", UnitSystem.OTHER, "c'/s2", "c'/sec2");
55  
56      /** centesimal arcsecond per second squared. */
57      public static final AngularAccelerationUnit CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED = GRAD_PER_SECOND_SQUARED.deriveLinear(
58              1.0 / 10000.0, "cds/s2", "centesimal arcsecond per second squared", UnitSystem.OTHER, "c\"/s2", "c\"/sec2");
59  
60  }