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.V", SI_DERIVED);
70 VOLT = SI;
71 NANOVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.nV", SI_DERIVED, VOLT, 1.0E-9);
72 MICROVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.muV", SI_DERIVED, VOLT, 1.0E-6);
73 MILLIVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.mV", SI_DERIVED, VOLT, 0.001);
74 KILOVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.kV", SI_DERIVED, VOLT, 1000.0);
75 MEGAVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.MV", SI_DERIVED, VOLT, 1.0E6);
76 GIGAVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.GV", SI_DERIVED, VOLT, 1.0E9);
77 STATVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.statV", CGS_ESU, VOLT, 299.792458);
78 ABVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.abV", CGS_EMU, VOLT, 1.0E-8);
79 }
80
81
82
83
84
85
86
87
88
89
90
91 @SuppressWarnings("checkstyle:parameternumber")
92 private ElectricalPotentialUnit(final MassUnit massUnit, final LengthUnit lengthUnit,
93 final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit, final String abbreviationKey,
94 final UnitSystem unitSystem)
95 {
96 super(abbreviationKey, unitSystem, VOLT,
97 massUnit.getScaleFactor() * lengthUnit.getScaleFactor() * lengthUnit.getScaleFactor()
98 / (electricalCurrentUnit.getScaleFactor() * Math.pow(durationUnit.getScaleFactor(), 3.0)));
99 this.massUnit = massUnit;
100 this.lengthUnit = lengthUnit;
101 this.electricalCurrentUnit = electricalCurrentUnit;
102 this.durationUnit = durationUnit;
103 }
104
105
106
107
108
109
110
111
112
113
114
115
116 public ElectricalPotentialUnit(final MassUnit massUnit, final LengthUnit lengthUnit,
117 final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit, final String name,
118 final String abbreviation, final UnitSystem unitSystem)
119 {
120 super(name, abbreviation, unitSystem, VOLT,
121 massUnit.getScaleFactor() * lengthUnit.getScaleFactor() * lengthUnit.getScaleFactor()
122 / (electricalCurrentUnit.getScaleFactor() * Math.pow(durationUnit.getScaleFactor(), 3.0)));
123 this.massUnit = massUnit;
124 this.lengthUnit = lengthUnit;
125 this.electricalCurrentUnit = electricalCurrentUnit;
126 this.durationUnit = durationUnit;
127 }
128
129
130
131
132
133
134
135
136
137 private ElectricalPotentialUnit(final PowerUnit powerUnit, final ElectricalCurrentUnit electricalCurrentUnit,
138 final String abbreviationKey, final UnitSystem unitSystem)
139 {
140 super(abbreviationKey, unitSystem, VOLT, powerUnit.getScaleFactor() / electricalCurrentUnit.getScaleFactor());
141 this.massUnit = powerUnit.getMassUnit();
142 this.lengthUnit = powerUnit.getLengthUnit();
143 this.electricalCurrentUnit = electricalCurrentUnit;
144 this.durationUnit = powerUnit.getDurationUnit();
145 }
146
147
148
149
150
151
152
153
154
155
156 public ElectricalPotentialUnit(final PowerUnit powerUnit, final ElectricalCurrentUnit electricalCurrentUnit,
157 final String name, final String abbreviation, final UnitSystem unitSystem)
158 {
159 super(name, abbreviation, unitSystem, VOLT, powerUnit.getScaleFactor() / electricalCurrentUnit.getScaleFactor());
160 this.massUnit = powerUnit.getMassUnit();
161 this.lengthUnit = powerUnit.getLengthUnit();
162 this.electricalCurrentUnit = electricalCurrentUnit;
163 this.durationUnit = powerUnit.getDurationUnit();
164 }
165
166
167
168
169
170
171
172
173
174 private ElectricalPotentialUnit(final String abbreviationKey, final UnitSystem unitSystem,
175 final ElectricalPotentialUnit referenceUnit, final double scaleFactorToReferenceUnit)
176 {
177 super(abbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
178 this.massUnit = referenceUnit.getMassUnit();
179 this.lengthUnit = referenceUnit.getLengthUnit();
180 this.electricalCurrentUnit = referenceUnit.getElectricalCurrentUnit();
181 this.durationUnit = referenceUnit.getDurationUnit();
182 }
183
184
185
186
187
188
189
190
191
192
193 public ElectricalPotentialUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
194 final ElectricalPotentialUnit referenceUnit, final double scaleFactorToReferenceUnit)
195 {
196 super(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
197 this.massUnit = referenceUnit.getMassUnit();
198 this.lengthUnit = referenceUnit.getLengthUnit();
199 this.electricalCurrentUnit = referenceUnit.getElectricalCurrentUnit();
200 this.durationUnit = referenceUnit.getDurationUnit();
201 }
202
203
204
205
206 public final MassUnit getMassUnit()
207 {
208 return this.massUnit;
209 }
210
211
212
213
214 public final LengthUnit getLengthUnit()
215 {
216 return this.lengthUnit;
217 }
218
219
220
221
222 public final ElectricalCurrentUnit getElectricalCurrentUnit()
223 {
224 return this.electricalCurrentUnit;
225 }
226
227
228
229
230 public final DurationUnit getDurationUnit()
231 {
232 return this.durationUnit;
233 }
234
235
236 @Override
237 public final ElectricalPotentialUnit getStandardUnit()
238 {
239 return VOLT;
240 }
241
242
243 @Override
244 public final String getSICoefficientsString()
245 {
246 return "kgm2/s3A";
247 }
248
249 }