1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.CGS;
4 import static org.djunits.unit.unitsystem.UnitSystem.IMPERIAL;
5 import static org.djunits.unit.unitsystem.UnitSystem.MTS;
6 import static org.djunits.unit.unitsystem.UnitSystem.OTHER;
7 import static org.djunits.unit.unitsystem.UnitSystem.SI_DERIVED;
8
9 import org.djunits.unit.unitsystem.UnitSystem;
10
11
12
13
14
15
16
17
18
19
20
21 public class PressureUnit extends LinearUnit<PressureUnit>
22 {
23
24 private static final long serialVersionUID = 20140607L;
25
26
27 private final MassUnit massUnit;
28
29
30 private final LengthUnit lengthUnit;
31
32
33 private final DurationUnit durationUnit;
34
35
36 public static final PressureUnit SI;
37
38
39 public static final PressureUnit PASCAL;
40
41
42 public static final PressureUnit HECTOPASCAL;
43
44
45 public static final PressureUnit KILOPASCAL;
46
47
48 public static final PressureUnit ATMOSPHERE_STANDARD;
49
50
51 public static final PressureUnit TORR;
52
53
54 public static final PressureUnit ATMOSPHERE_TECHNICAL;
55
56
57 public static final PressureUnit BARYE;
58
59
60 public static final PressureUnit BAR;
61
62
63 public static final PressureUnit MILLIBAR;
64
65
66 public static final PressureUnit CENTIMETER_MERCURY;
67
68
69 public static final PressureUnit MILLIMETER_MERCURY;
70
71
72 public static final PressureUnit FOOT_MERCURY;
73
74
75 public static final PressureUnit INCH_MERCURY;
76
77
78 public static final PressureUnit KGF_PER_SQUARE_MM;
79
80
81 public static final PressureUnit POUND_PER_SQUARE_FOOT;
82
83
84 public static final PressureUnit POUND_PER_SQUARE_INCH;
85
86
87 public static final PressureUnit PIEZE;
88
89 static
90 {
91 SI = new PressureUnit(MassUnit.KILOGRAM, LengthUnit.METER, DurationUnit.SECOND, "PressureUnit.Pa", SI_DERIVED);
92 PASCAL = SI;
93 HECTOPASCAL = new PressureUnit("PressureUnit.hPa", SI_DERIVED, PASCAL, 100.0);
94 KILOPASCAL = new PressureUnit("PressureUnit.kPa", SI_DERIVED, PASCAL, 1000.0);
95 ATMOSPHERE_STANDARD = new PressureUnit("PressureUnit.atm", OTHER, PASCAL, 101325.0);
96 TORR = new PressureUnit("PressureUnit.Torr", OTHER, ATMOSPHERE_STANDARD, 1.0 / 760.0);
97 ATMOSPHERE_TECHNICAL = new PressureUnit(ForceUnit.KILOGRAM_FORCE, AreaUnit.SQUARE_CENTIMETER, "PressureUnit.at", OTHER);
98 BARYE = new PressureUnit(ForceUnit.DYNE, AreaUnit.SQUARE_CENTIMETER, "PressureUnit.Ba", CGS);
99 BAR = new PressureUnit("PressureUnit.bar", OTHER, PASCAL, 1E5);
100 MILLIBAR = new PressureUnit("PressureUnit.mbar", OTHER, PressureUnit.BAR, 0.001);
101 CENTIMETER_MERCURY = new PressureUnit("PressureUnit.cmHg", OTHER, PASCAL, 1333.224);
102 MILLIMETER_MERCURY = new PressureUnit("PressureUnit.mmHg", OTHER, PASCAL, 133.3224);
103 FOOT_MERCURY = new PressureUnit("PressureUnit.ftHg", IMPERIAL, PASCAL, 40.63666E3);
104 INCH_MERCURY = new PressureUnit("PressureUnit.inHg", IMPERIAL, PASCAL, 3.386389E3);
105 KGF_PER_SQUARE_MM =
106 new PressureUnit(ForceUnit.KILOGRAM_FORCE, AreaUnit.SQUARE_MILLIMETER, "PressureUnit.kgf/mm^2", OTHER);
107 POUND_PER_SQUARE_FOOT =
108 new PressureUnit(ForceUnit.POUND_FORCE, AreaUnit.SQUARE_FOOT, "PressureUnit.lbf/ft^2", IMPERIAL);
109 POUND_PER_SQUARE_INCH =
110 new PressureUnit(ForceUnit.POUND_FORCE, AreaUnit.SQUARE_INCH, "PressureUnit.lbf/in^2", IMPERIAL);
111 PIEZE = new PressureUnit(MassUnit.TONNE, LengthUnit.METER, DurationUnit.SECOND, "PressureUnit.pz", MTS);
112 }
113
114
115
116
117
118
119
120
121
122 private PressureUnit(final MassUnit massUnit, final LengthUnit lengthUnit, final DurationUnit durationUnit,
123 final String abbreviationKey, final UnitSystem unitSystem)
124 {
125 super(abbreviationKey, unitSystem, PASCAL, massUnit.getScaleFactor()
126 / (lengthUnit.getScaleFactor() * durationUnit.getScaleFactor() * durationUnit.getScaleFactor()));
127 this.massUnit = massUnit;
128 this.lengthUnit = lengthUnit;
129 this.durationUnit = durationUnit;
130 }
131
132
133
134
135
136
137
138
139
140
141 public PressureUnit(final MassUnit massUnit, final LengthUnit lengthUnit, final DurationUnit durationUnit,
142 final String name, final String abbreviation, final UnitSystem unitSystem)
143 {
144 super(name, abbreviation, unitSystem, PASCAL, massUnit.getScaleFactor()
145 / (lengthUnit.getScaleFactor() * durationUnit.getScaleFactor() * durationUnit.getScaleFactor()));
146 this.massUnit = massUnit;
147 this.lengthUnit = lengthUnit;
148 this.durationUnit = durationUnit;
149 }
150
151
152
153
154
155
156
157
158 private PressureUnit(final ForceUnit forceUnit, final AreaUnit areaUnit, final String abbreviationKey,
159 final UnitSystem unitSystem)
160 {
161 super(abbreviationKey, unitSystem, PASCAL, forceUnit.getScaleFactor() / areaUnit.getScaleFactor());
162 this.massUnit = forceUnit.getMassUnit();
163 this.lengthUnit = areaUnit.getLengthUnit();
164 this.durationUnit = forceUnit.getDurationUnit();
165 }
166
167
168
169
170
171
172
173
174
175 public PressureUnit(final ForceUnit forceUnit, final AreaUnit areaUnit, final String name, final String abbreviation,
176 final UnitSystem unitSystem)
177 {
178 super(name, abbreviation, unitSystem, PASCAL, forceUnit.getScaleFactor() / areaUnit.getScaleFactor());
179 this.massUnit = forceUnit.getMassUnit();
180 this.lengthUnit = areaUnit.getLengthUnit();
181 this.durationUnit = forceUnit.getDurationUnit();
182 }
183
184
185
186
187
188
189
190
191
192 private PressureUnit(final String abbreviationKey, final UnitSystem unitSystem, final PressureUnit referenceUnit,
193 final double scaleFactorToReferenceUnit)
194 {
195 super(abbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
196 this.massUnit = referenceUnit.getMassUnit();
197 this.lengthUnit = referenceUnit.getLengthUnit();
198 this.durationUnit = referenceUnit.getDurationUnit();
199 }
200
201
202
203
204
205
206
207
208
209
210 public PressureUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
211 final PressureUnit referenceUnit, final double scaleFactorToReferenceUnit)
212 {
213 super(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
214 this.massUnit = referenceUnit.getMassUnit();
215 this.lengthUnit = referenceUnit.getLengthUnit();
216 this.durationUnit = referenceUnit.getDurationUnit();
217 }
218
219
220
221
222 public final MassUnit getMassUnit()
223 {
224 return this.massUnit;
225 }
226
227
228
229
230 public final LengthUnit getLengthUnit()
231 {
232 return this.lengthUnit;
233 }
234
235
236
237
238 public final DurationUnit getDurationUnit()
239 {
240 return this.durationUnit;
241 }
242
243
244 @Override
245 public final PressureUnit getStandardUnit()
246 {
247 return PASCAL;
248 }
249
250
251 @Override
252 public final String getSICoefficientsString()
253 {
254 return "kg/ms2";
255 }
256
257 }