1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.CGS_EMU;
4 import static org.djunits.unit.unitsystem.UnitSystem.CGS_ESU;
5 import static org.djunits.unit.unitsystem.UnitSystem.SI_DERIVED;
6
7 import org.djunits.unit.unitsystem.UnitSystem;
8
9
10
11
12
13
14
15
16
17
18
19 public class ElectricalPotentialUnit extends LinearUnit<ElectricalPotentialUnit>
20 {
21
22 private static final long serialVersionUID = 20140607L;
23
24
25 private final MassUnit massUnit;
26
27
28 private final LengthUnit lengthUnit;
29
30
31 private final ElectricalCurrentUnit electricalCurrentUnit;
32
33
34 private final DurationUnit durationUnit;
35
36
37 public static final ElectricalPotentialUnit SI;
38
39
40 public static final ElectricalPotentialUnit VOLT;
41
42
43 public static final ElectricalPotentialUnit NANOVOLT;
44
45
46 public static final ElectricalPotentialUnit MICROVOLT;
47
48
49 public static final ElectricalPotentialUnit MILLIVOLT;
50
51
52 public static final ElectricalPotentialUnit KILOVOLT;
53
54
55 public static final ElectricalPotentialUnit MEGAVOLT;
56
57
58 public static final ElectricalPotentialUnit GIGAVOLT;
59
60
61 public static final ElectricalPotentialUnit STATVOLT;
62
63
64 public static final ElectricalPotentialUnit ABVOLT;
65
66 static
67 {
68 SI = new ElectricalPotentialUnit(MassUnit.KILOGRAM, LengthUnit.METER, ElectricalCurrentUnit.AMPERE, DurationUnit.SECOND,
69 "ElectricalPotentialUnit.volt", "ElectricalPotentialUnit.V", SI_DERIVED, true);
70 VOLT = SI;
71 NANOVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.nanovolt", "ElectricalPotentialUnit.nV", SI_DERIVED,
72 VOLT, 1.0E-9, true);
73 MICROVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.microvolt", "ElectricalPotentialUnit.muV", SI_DERIVED,
74 VOLT, 1.0E-6, true);
75 MILLIVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.millivolt", "ElectricalPotentialUnit.mV", SI_DERIVED,
76 VOLT, 0.001, true);
77 KILOVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.kilovolt", "ElectricalPotentialUnit.kV", SI_DERIVED,
78 VOLT, 1000.0, true);
79 MEGAVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.megavolt", "ElectricalPotentialUnit.MV", SI_DERIVED,
80 VOLT, 1.0E6, true);
81 GIGAVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.gigavolt", "ElectricalPotentialUnit.GV", SI_DERIVED,
82 VOLT, 1.0E9, true);
83 STATVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.statvolt", "ElectricalPotentialUnit.statV", CGS_ESU,
84 VOLT, 299.792458, true);
85 ABVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.abvolt", "ElectricalPotentialUnit.abV", CGS_EMU, VOLT,
86 1.0E-8, true);
87 }
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 @SuppressWarnings("checkstyle:parameternumber")
105 private ElectricalPotentialUnit(final MassUnit massUnit, final LengthUnit lengthUnit,
106 final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit, final String nameOrNameKey,
107 final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem, final boolean standardUnit)
108 {
109 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, VOLT,
110 massUnit.getScaleFactor() * lengthUnit.getScaleFactor() * lengthUnit.getScaleFactor()
111 / (electricalCurrentUnit.getScaleFactor() * Math.pow(durationUnit.getScaleFactor(), 3.0)),
112 standardUnit);
113 this.massUnit = massUnit;
114 this.lengthUnit = lengthUnit;
115 this.electricalCurrentUnit = electricalCurrentUnit;
116 this.durationUnit = durationUnit;
117 }
118
119
120
121
122
123
124
125
126
127
128
129
130 public ElectricalPotentialUnit(final MassUnit massUnit, final LengthUnit lengthUnit,
131 final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit, final String name,
132 final String abbreviation, final UnitSystem unitSystem)
133 {
134 this(massUnit, lengthUnit, electricalCurrentUnit, durationUnit, name, abbreviation, unitSystem, false);
135 }
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150 private ElectricalPotentialUnit(final PowerUnit powerUnit, final ElectricalCurrentUnit electricalCurrentUnit,
151 final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
152 final boolean standardUnit)
153 {
154 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, VOLT,
155 powerUnit.getScaleFactor() / electricalCurrentUnit.getScaleFactor(), standardUnit);
156 this.massUnit = powerUnit.getMassUnit();
157 this.lengthUnit = powerUnit.getLengthUnit();
158 this.electricalCurrentUnit = electricalCurrentUnit;
159 this.durationUnit = powerUnit.getDurationUnit();
160 }
161
162
163
164
165
166
167
168
169
170
171 public ElectricalPotentialUnit(final PowerUnit powerUnit, final ElectricalCurrentUnit electricalCurrentUnit,
172 final String name, final String abbreviation, final UnitSystem unitSystem)
173 {
174 this(powerUnit, electricalCurrentUnit, name, abbreviation, unitSystem, false);
175 }
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190 private ElectricalPotentialUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey,
191 final UnitSystem unitSystem, final ElectricalPotentialUnit referenceUnit, final double scaleFactorToReferenceUnit,
192 final boolean standardUnit)
193 {
194 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
195 standardUnit);
196 this.massUnit = referenceUnit.getMassUnit();
197 this.lengthUnit = referenceUnit.getLengthUnit();
198 this.electricalCurrentUnit = referenceUnit.getElectricalCurrentUnit();
199 this.durationUnit = referenceUnit.getDurationUnit();
200 }
201
202
203
204
205
206
207
208
209
210
211 public ElectricalPotentialUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
212 final ElectricalPotentialUnit referenceUnit, final double scaleFactorToReferenceUnit)
213 {
214 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
215 }
216
217
218
219
220 public final MassUnit getMassUnit()
221 {
222 return this.massUnit;
223 }
224
225
226
227
228 public final LengthUnit getLengthUnit()
229 {
230 return this.lengthUnit;
231 }
232
233
234
235
236 public final ElectricalCurrentUnit getElectricalCurrentUnit()
237 {
238 return this.electricalCurrentUnit;
239 }
240
241
242
243
244 public final DurationUnit getDurationUnit()
245 {
246 return this.durationUnit;
247 }
248
249
250 @Override
251 public final ElectricalPotentialUnit getStandardUnit()
252 {
253 return VOLT;
254 }
255
256
257 @Override
258 public final String getSICoefficientsString()
259 {
260 return "kgm2/s3A";
261 }
262
263 }