Physical Quantities  v1.0.0
C++ library of physical quantities, physical models, and units of measure for scientific computing. https://github.com/acodcha/phq
ElectricCharge.hpp
Go to the documentation of this file.
1 // Copyright © 2020-2024 Alexandre Coderre-Chabot
2 //
3 // This file is part of Physical Quantities (PhQ), a C++ library of physical quantities, physical
4 // models, and units of measure for scientific computing.
5 //
6 // Physical Quantities is hosted at:
7 // https://github.com/acodcha/phq
8 //
9 // Physical Quantities is licensed under the MIT License:
10 // https://mit-license.org
11 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
13 // associated documentation files (the "Software"), to deal in the Software without restriction,
14 // including without limitation the rights to use, copy, modify, merge, publish, distribute,
15 // sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
16 // furnished to do so, subject to the following conditions:
17 // - The above copyright notice and this permission notice shall be included in all copies or
18 // substantial portions of the Software.
19 // - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
20 // BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM
23 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 
25 #ifndef PHQ_UNIT_ELECTRIC_CHARGE_HPP
26 #define PHQ_UNIT_ELECTRIC_CHARGE_HPP
27 
28 #include <cstddef>
29 #include <cstdint>
30 #include <functional>
31 #include <map>
32 #include <ostream>
33 #include <string_view>
34 #include <unordered_map>
35 
36 #include "../Base.hpp"
37 #include "../Dimension/ElectricCurrent.hpp"
38 #include "../Dimension/Length.hpp"
39 #include "../Dimension/LuminousIntensity.hpp"
40 #include "../Dimension/Mass.hpp"
41 #include "../Dimension/SubstanceAmount.hpp"
42 #include "../Dimension/Temperature.hpp"
43 #include "../Dimension/Time.hpp"
44 #include "../Dimensions.hpp"
45 #include "../Unit.hpp"
46 #include "../UnitSystem.hpp"
47 
48 namespace PhQ {
49 
50 namespace Unit {
51 
52 /// \brief Electric charge units.
53 enum class ElectricCharge : int8_t {
54  /// \brief Coulomb (C) electric charge unit.
55  Coulomb,
56 
57  /// \brief Kilocoulomb (kC) electric charge unit.
59 
60  /// \brief Megacoulomb (MC) electric charge unit.
62 
63  /// \brief Gigacoulomb (GC) electric charge unit.
65 
66  /// \brief Teracoulomb (TC) electric charge unit.
68 
69  /// \brief Millicoulomb (mC) electric charge unit.
71 
72  /// \brief Microcoulomb (μC) electric charge unit.
74 
75  /// \brief Nanocoulomb (nC) electric charge unit.
77 
78  /// \brief Elementary charge (e) electric charge unit.
80 
81  /// \brief Ampere-minute (A·min) electric charge unit.
83 
84  /// \brief Ampere-hour (A·hr) electric charge unit.
85  AmpereHour,
86 
87  /// \brief Kiloampere-minute (kA·min) electric charge unit.
89 
90  /// \brief Kiloampere-hour (kA·hr) electric charge unit.
92 
93  /// \brief Megaampere-minute (MA·min) electric charge unit.
95 
96  /// \brief Megaampere-hour (MA·hr) electric charge unit.
98 
99  /// \brief Gigaampere-minute (GA·min) electric charge unit.
101 
102  /// \brief Gigaampere-hour (GA·hr) electric charge unit.
104 
105  /// \brief Teraampere-minute (TA·min) electric charge unit.
107 
108  /// \brief Teraampere-hour (TA·hr) electric charge unit.
110 
111  /// \brief Milliampere-minute (mA·min) electric charge unit.
113 
114  /// \brief Milliampere-hour (mA·hr) electric charge unit.
116 
117  /// \brief Microampere-minute (μA·min) electric charge unit.
119 
120  /// \brief Microampere-hour (μA·hr) electric charge unit.
122 
123  /// \brief Nanoampere-minute (μA·min) electric charge unit.
125 
126  /// \brief Nanoampere-hour (μA·hr) electric charge unit.
128 };
129 
130 } // namespace Unit
131 
132 /// \brief Standard electric charge unit: coulomb (C).
133 template <>
134 inline constexpr const Unit::ElectricCharge Standard<Unit::ElectricCharge>{
136 
137 /// \brief Physical dimension set of electric charge units.
138 template <>
139 inline constexpr const Dimensions RelatedDimensions<Unit::ElectricCharge>{
140  Dimensions{Dimension::Time{1}, Dimension::Length{0}, Dimension::Mass{0},
142  Dimension::SubstanceAmount{0}, Dimension::LuminousIntensity{0}}
143 };
144 
145 inline std::ostream& operator<<(std::ostream& stream, const Unit::ElectricCharge unit) {
146  stream << Abbreviation(unit);
147  return stream;
148 }
149 
150 namespace Internal {
151 
152 template <>
153 inline const std::map<UnitSystem, Unit::ElectricCharge> ConsistentUnits<Unit::ElectricCharge>{
158 };
159 
160 template <>
161 inline const std::map<Unit::ElectricCharge, UnitSystem> RelatedUnitSystems<Unit::ElectricCharge>{};
162 
163 // clang-format off
164 
165 template <>
166 inline const std::map<Unit::ElectricCharge, std::string_view> Abbreviations<Unit::ElectricCharge>{
192 };
193 
194 template <>
195 inline const std::unordered_map<std::string_view, Unit::ElectricCharge> Spellings<
243 };
244 
245 // clang-format on
246 
247 template <>
248 template <typename NumericType>
249 inline constexpr void Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Coulomb>::FromStandard(
250  NumericType& /*value*/) noexcept {}
251 
252 template <>
253 template <typename NumericType>
254 inline constexpr void Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Coulomb>::ToStandard(
255  NumericType& /*value*/) noexcept {}
256 
257 template <>
258 template <typename NumericType>
259 inline constexpr void
260 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Kilocoulomb>::FromStandard(
261  NumericType& value) noexcept {
262  value *= static_cast<NumericType>(0.001L);
263 }
264 
265 template <>
266 template <typename NumericType>
267 inline constexpr void
268 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Kilocoulomb>::ToStandard(
269  NumericType& value) noexcept {
270  value *= static_cast<NumericType>(1000.0L);
271 }
272 
273 template <>
274 template <typename NumericType>
275 inline constexpr void
276 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Megacoulomb>::FromStandard(
277  NumericType& value) noexcept {
278  value *= static_cast<NumericType>(1.0E-6L);
279 }
280 
281 template <>
282 template <typename NumericType>
283 inline constexpr void
284 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Megacoulomb>::ToStandard(
285  NumericType& value) noexcept {
286  value *= static_cast<NumericType>(1.0E6L);
287 }
288 
289 template <>
290 template <typename NumericType>
291 inline constexpr void
292 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Gigacoulomb>::FromStandard(
293  NumericType& value) noexcept {
294  value *= static_cast<NumericType>(1.0E-9L);
295 }
296 
297 template <>
298 template <typename NumericType>
299 inline constexpr void
300 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Gigacoulomb>::ToStandard(
301  NumericType& value) noexcept {
302  value *= static_cast<NumericType>(1.0E9L);
303 }
304 
305 template <>
306 template <typename NumericType>
307 inline constexpr void
308 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Teracoulomb>::FromStandard(
309  NumericType& value) noexcept {
310  value *= static_cast<NumericType>(1.0E-12L);
311 }
312 
313 template <>
314 template <typename NumericType>
315 inline constexpr void
316 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Teracoulomb>::ToStandard(
317  NumericType& value) noexcept {
318  value *= static_cast<NumericType>(1.0E12L);
319 }
320 
321 template <>
322 template <typename NumericType>
323 inline constexpr void
324 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Millicoulomb>::FromStandard(
325  NumericType& value) noexcept {
326  value *= static_cast<NumericType>(1000.0L);
327 }
328 
329 template <>
330 template <typename NumericType>
331 inline constexpr void
332 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Millicoulomb>::ToStandard(
333  NumericType& value) noexcept {
334  value *= static_cast<NumericType>(0.001L);
335 }
336 
337 template <>
338 template <typename NumericType>
339 inline constexpr void
340 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Microcoulomb>::FromStandard(
341  NumericType& value) noexcept {
342  value *= static_cast<NumericType>(1.0E6L);
343 }
344 
345 template <>
346 template <typename NumericType>
347 inline constexpr void
348 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Microcoulomb>::ToStandard(
349  NumericType& value) noexcept {
350  value *= static_cast<NumericType>(1.0E-6L);
351 }
352 
353 template <>
354 template <typename NumericType>
355 inline constexpr void
356 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Nanocoulomb>::FromStandard(
357  NumericType& value) noexcept {
358  value *= static_cast<NumericType>(1.0E9L);
359 }
360 
361 template <>
362 template <typename NumericType>
363 inline constexpr void
364 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::Nanocoulomb>::ToStandard(
365  NumericType& value) noexcept {
366  value *= static_cast<NumericType>(1.0E-9L);
367 }
368 
369 template <>
370 template <typename NumericType>
371 inline constexpr void
372 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::ElementaryCharge>::FromStandard(
373  NumericType& value) noexcept {
374  value /= static_cast<NumericType>(1.602176634E-19L);
375 }
376 
377 template <>
378 template <typename NumericType>
379 inline constexpr void
380 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::ElementaryCharge>::ToStandard(
381  NumericType& value) noexcept {
382  value *= static_cast<NumericType>(1.602176634E-19L);
383 }
384 
385 template <>
386 template <typename NumericType>
387 inline constexpr void
388 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::AmpereMinute>::FromStandard(
389  NumericType& value) noexcept {
390  value /= static_cast<NumericType>(60.0L);
391 }
392 
393 template <>
394 template <typename NumericType>
395 inline constexpr void
396 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::AmpereMinute>::ToStandard(
397  NumericType& value) noexcept {
398  value *= static_cast<NumericType>(60.0L);
399 }
400 
401 template <>
402 template <typename NumericType>
403 inline constexpr void
404 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::AmpereHour>::FromStandard(
405  NumericType& value) noexcept {
406  value /= static_cast<NumericType>(3600.0L);
407 }
408 
409 template <>
410 template <typename NumericType>
411 inline constexpr void
412 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::AmpereHour>::ToStandard(
413  NumericType& value) noexcept {
414  value *= static_cast<NumericType>(3600.0L);
415 }
416 
417 template <>
418 template <typename NumericType>
419 inline constexpr void
420 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::KiloampereMinute>::FromStandard(
421  NumericType& value) noexcept {
422  value /= static_cast<NumericType>(60000.0L);
423 }
424 
425 template <>
426 template <typename NumericType>
427 inline constexpr void
428 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::KiloampereMinute>::ToStandard(
429  NumericType& value) noexcept {
430  value *= static_cast<NumericType>(60000.0L);
431 }
432 
433 template <>
434 template <typename NumericType>
435 inline constexpr void
436 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::KiloampereHour>::FromStandard(
437  NumericType& value) noexcept {
438  value /= static_cast<NumericType>(3600000.0L);
439 }
440 
441 template <>
442 template <typename NumericType>
443 inline constexpr void
444 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::KiloampereHour>::ToStandard(
445  NumericType& value) noexcept {
446  value *= static_cast<NumericType>(3600000.0L);
447 }
448 
449 template <>
450 template <typename NumericType>
451 inline constexpr void
452 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MegaampereMinute>::FromStandard(
453  NumericType& value) noexcept {
454  value /= static_cast<NumericType>(60000000.0L);
455 }
456 
457 template <>
458 template <typename NumericType>
459 inline constexpr void
460 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MegaampereMinute>::ToStandard(
461  NumericType& value) noexcept {
462  value *= static_cast<NumericType>(60000000.0L);
463 }
464 
465 template <>
466 template <typename NumericType>
467 inline constexpr void
468 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MegaampereHour>::FromStandard(
469  NumericType& value) noexcept {
470  value /= static_cast<NumericType>(3600000000.0L);
471 }
472 
473 template <>
474 template <typename NumericType>
475 inline constexpr void
476 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MegaampereHour>::ToStandard(
477  NumericType& value) noexcept {
478  value *= static_cast<NumericType>(3600000000.0L);
479 }
480 
481 template <>
482 template <typename NumericType>
483 inline constexpr void
484 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::GigaampereMinute>::FromStandard(
485  NumericType& value) noexcept {
486  value /= static_cast<NumericType>(60000000000.0L);
487 }
488 
489 template <>
490 template <typename NumericType>
491 inline constexpr void
492 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::GigaampereMinute>::ToStandard(
493  NumericType& value) noexcept {
494  value *= static_cast<NumericType>(60000000000.0L);
495 }
496 
497 template <>
498 template <typename NumericType>
499 inline constexpr void
500 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::GigaampereHour>::FromStandard(
501  NumericType& value) noexcept {
502  value /= static_cast<NumericType>(3600000000000.0L);
503 }
504 
505 template <>
506 template <typename NumericType>
507 inline constexpr void
508 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::GigaampereHour>::ToStandard(
509  NumericType& value) noexcept {
510  value *= static_cast<NumericType>(3600000000000.0L);
511 }
512 
513 template <>
514 template <typename NumericType>
515 inline constexpr void
516 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::TeraampereMinute>::FromStandard(
517  NumericType& value) noexcept {
518  value /= static_cast<NumericType>(60000000000000.0L);
519 }
520 
521 template <>
522 template <typename NumericType>
523 inline constexpr void
524 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::TeraampereMinute>::ToStandard(
525  NumericType& value) noexcept {
526  value *= static_cast<NumericType>(60000000000000.0L);
527 }
528 
529 template <>
530 template <typename NumericType>
531 inline constexpr void
532 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::TeraampereHour>::FromStandard(
533  NumericType& value) noexcept {
534  value /= static_cast<NumericType>(3600000000000000.0L);
535 }
536 
537 template <>
538 template <typename NumericType>
539 inline constexpr void
540 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::TeraampereHour>::ToStandard(
541  NumericType& value) noexcept {
542  value *= static_cast<NumericType>(3600000000000000.0L);
543 }
544 
545 template <>
546 template <typename NumericType>
547 inline constexpr void
548 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MilliampereMinute>::FromStandard(
549  NumericType& value) noexcept {
550  value /= static_cast<NumericType>(0.06L);
551 }
552 
553 template <>
554 template <typename NumericType>
555 inline constexpr void
556 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MilliampereMinute>::ToStandard(
557  NumericType& value) noexcept {
558  value *= static_cast<NumericType>(0.06L);
559 }
560 
561 template <>
562 template <typename NumericType>
563 inline constexpr void
564 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MilliampereHour>::FromStandard(
565  NumericType& value) noexcept {
566  value /= static_cast<NumericType>(3.6L);
567 }
568 
569 template <>
570 template <typename NumericType>
571 inline constexpr void
572 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MilliampereHour>::ToStandard(
573  NumericType& value) noexcept {
574  value *= static_cast<NumericType>(3.6L);
575 }
576 
577 template <>
578 template <typename NumericType>
579 inline constexpr void
580 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MicroampereMinute>::FromStandard(
581  NumericType& value) noexcept {
582  value /= static_cast<NumericType>(6.0E-5L);
583 }
584 
585 template <>
586 template <typename NumericType>
587 inline constexpr void
588 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MicroampereMinute>::ToStandard(
589  NumericType& value) noexcept {
590  value *= static_cast<NumericType>(6.0E-5L);
591 }
592 
593 template <>
594 template <typename NumericType>
595 inline constexpr void
596 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MicroampereHour>::FromStandard(
597  NumericType& value) noexcept {
598  value /= static_cast<NumericType>(3.6E-3L);
599 }
600 
601 template <>
602 template <typename NumericType>
603 inline constexpr void
604 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::MicroampereHour>::ToStandard(
605  NumericType& value) noexcept {
606  value *= static_cast<NumericType>(3.6E-3L);
607 }
608 
609 template <>
610 template <typename NumericType>
611 inline constexpr void
612 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::NanoampereMinute>::FromStandard(
613  NumericType& value) noexcept {
614  value /= static_cast<NumericType>(6.0E-8L);
615 }
616 
617 template <>
618 template <typename NumericType>
619 inline constexpr void
620 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::NanoampereMinute>::ToStandard(
621  NumericType& value) noexcept {
622  value *= static_cast<NumericType>(6.0E-8L);
623 }
624 
625 template <>
626 template <typename NumericType>
627 inline constexpr void
628 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::NanoampereHour>::FromStandard(
629  NumericType& value) noexcept {
630  value /= static_cast<NumericType>(3.6E-6L);
631 }
632 
633 template <>
634 template <typename NumericType>
635 inline constexpr void
636 Conversion<Unit::ElectricCharge, Unit::ElectricCharge::NanoampereHour>::ToStandard(
637  NumericType& value) noexcept {
638  value *= static_cast<NumericType>(3.6E-6L);
639 }
640 
641 template <typename NumericType>
642 inline const std::map<Unit::ElectricCharge,
643  std::function<void(NumericType* values, const std::size_t size)>>
644  MapOfConversionsFromStandard<Unit::ElectricCharge, NumericType>{
646  Conversions<Unit::ElectricCharge,
647  Unit::ElectricCharge::Coulomb>::FromStandard<NumericType> },
649  Conversions<Unit::ElectricCharge,
650  Unit::ElectricCharge::Kilocoulomb>::FromStandard<NumericType> },
652  Conversions<Unit::ElectricCharge,
653  Unit::ElectricCharge::Megacoulomb>::FromStandard<NumericType> },
655  Conversions<Unit::ElectricCharge,
656  Unit::ElectricCharge::Gigacoulomb>::FromStandard<NumericType> },
658  Conversions<Unit::ElectricCharge,
659  Unit::ElectricCharge::Teracoulomb>::FromStandard<NumericType> },
661  Conversions<Unit::ElectricCharge,
662  Unit::ElectricCharge::Millicoulomb>::FromStandard<NumericType> },
664  Conversions<Unit::ElectricCharge,
665  Unit::ElectricCharge::Microcoulomb>::FromStandard<NumericType> },
667  Conversions<Unit::ElectricCharge,
668  Unit::ElectricCharge::Nanocoulomb>::FromStandard<NumericType> },
670  Conversions<Unit::ElectricCharge,
671  Unit::ElectricCharge::ElementaryCharge>::FromStandard<NumericType> },
673  Conversions<Unit::ElectricCharge,
674  Unit::ElectricCharge::AmpereMinute>::FromStandard<NumericType> },
676  Conversions<Unit::ElectricCharge,
677  Unit::ElectricCharge::AmpereHour>::FromStandard<NumericType> },
679  Conversions<Unit::ElectricCharge,
680  Unit::ElectricCharge::KiloampereMinute>::FromStandard<NumericType> },
682  Conversions<Unit::ElectricCharge,
683  Unit::ElectricCharge::KiloampereHour>::FromStandard<NumericType> },
685  Conversions<Unit::ElectricCharge,
686  Unit::ElectricCharge::MegaampereMinute>::FromStandard<NumericType> },
688  Conversions<Unit::ElectricCharge,
689  Unit::ElectricCharge::MegaampereHour>::FromStandard<NumericType> },
691  Conversions<Unit::ElectricCharge,
692  Unit::ElectricCharge::GigaampereMinute>::FromStandard<NumericType> },
694  Conversions<Unit::ElectricCharge,
695  Unit::ElectricCharge::GigaampereHour>::FromStandard<NumericType> },
697  Conversions<Unit::ElectricCharge,
698  Unit::ElectricCharge::TeraampereMinute>::FromStandard<NumericType> },
700  Conversions<Unit::ElectricCharge,
701  Unit::ElectricCharge::TeraampereHour>::FromStandard<NumericType> },
703  Conversions<Unit::ElectricCharge,
704  Unit::ElectricCharge::MilliampereMinute>::FromStandard<NumericType>},
706  Conversions<Unit::ElectricCharge,
707  Unit::ElectricCharge::MilliampereHour>::FromStandard<NumericType> },
709  Conversions<Unit::ElectricCharge,
710  Unit::ElectricCharge::MicroampereMinute>::FromStandard<NumericType>},
712  Conversions<Unit::ElectricCharge,
713  Unit::ElectricCharge::MicroampereHour>::FromStandard<NumericType> },
715  Conversions<Unit::ElectricCharge,
716  Unit::ElectricCharge::NanoampereMinute>::FromStandard<NumericType> },
718  Conversions<Unit::ElectricCharge,
719  Unit::ElectricCharge::NanoampereHour>::FromStandard<NumericType> },
720 };
721 
722 template <typename NumericType>
723 inline const std::map<Unit::ElectricCharge,
724  std::function<void(NumericType* const values, const std::size_t size)>>
725  MapOfConversionsToStandard<Unit::ElectricCharge, NumericType>{
727  Conversions<Unit::ElectricCharge, Unit::ElectricCharge::Coulomb>::ToStandard<NumericType>},
729  Conversions<Unit::ElectricCharge,
730  Unit::ElectricCharge::Kilocoulomb>::ToStandard<NumericType> },
732  Conversions<Unit::ElectricCharge,
733  Unit::ElectricCharge::Megacoulomb>::ToStandard<NumericType> },
735  Conversions<Unit::ElectricCharge,
736  Unit::ElectricCharge::Gigacoulomb>::ToStandard<NumericType> },
738  Conversions<Unit::ElectricCharge,
739  Unit::ElectricCharge::Teracoulomb>::ToStandard<NumericType> },
741  Conversions<Unit::ElectricCharge,
742  Unit::ElectricCharge::Millicoulomb>::ToStandard<NumericType> },
744  Conversions<Unit::ElectricCharge,
745  Unit::ElectricCharge::Microcoulomb>::ToStandard<NumericType> },
747  Conversions<Unit::ElectricCharge,
748  Unit::ElectricCharge::Nanocoulomb>::ToStandard<NumericType> },
750  Conversions<Unit::ElectricCharge,
751  Unit::ElectricCharge::ElementaryCharge>::ToStandard<NumericType> },
753  Conversions<Unit::ElectricCharge,
754  Unit::ElectricCharge::AmpereMinute>::ToStandard<NumericType> },
756  Conversions<Unit::ElectricCharge,
757  Unit::ElectricCharge::AmpereHour>::ToStandard<NumericType> },
759  Conversions<Unit::ElectricCharge,
760  Unit::ElectricCharge::KiloampereMinute>::ToStandard<NumericType> },
762  Conversions<Unit::ElectricCharge,
763  Unit::ElectricCharge::KiloampereHour>::ToStandard<NumericType> },
765  Conversions<Unit::ElectricCharge,
766  Unit::ElectricCharge::MegaampereMinute>::ToStandard<NumericType> },
768  Conversions<Unit::ElectricCharge,
769  Unit::ElectricCharge::MegaampereHour>::ToStandard<NumericType> },
771  Conversions<Unit::ElectricCharge,
772  Unit::ElectricCharge::GigaampereMinute>::ToStandard<NumericType> },
774  Conversions<Unit::ElectricCharge,
775  Unit::ElectricCharge::GigaampereHour>::ToStandard<NumericType> },
777  Conversions<Unit::ElectricCharge,
778  Unit::ElectricCharge::TeraampereMinute>::ToStandard<NumericType> },
780  Conversions<Unit::ElectricCharge,
781  Unit::ElectricCharge::TeraampereHour>::ToStandard<NumericType> },
783  Conversions<Unit::ElectricCharge,
784  Unit::ElectricCharge::MilliampereMinute>::ToStandard<NumericType> },
786  Conversions<Unit::ElectricCharge,
787  Unit::ElectricCharge::MilliampereHour>::ToStandard<NumericType> },
789  Conversions<Unit::ElectricCharge,
790  Unit::ElectricCharge::MicroampereMinute>::ToStandard<NumericType> },
792  Conversions<Unit::ElectricCharge,
793  Unit::ElectricCharge::MicroampereHour>::ToStandard<NumericType> },
795  Conversions<Unit::ElectricCharge,
796  Unit::ElectricCharge::NanoampereMinute>::ToStandard<NumericType> },
798  Conversions<Unit::ElectricCharge,
799  Unit::ElectricCharge::NanoampereHour>::ToStandard<NumericType> },
800 };
801 
802 } // namespace Internal
803 
804 } // namespace PhQ
805 
806 #endif // PHQ_UNIT_ELECTRIC_CHARGE_HPP
ElectricCurrent
Electric current units.
Mass
Mass units.
Definition: Mass.hpp:53
Length
Length units.
Definition: Length.hpp:53
SubstanceAmount
Amount of substance units.
ElectricCharge
Electric charge units.
@ Millicoulomb
Millicoulomb (mC) electric charge unit.
@ Microcoulomb
Microcoulomb (μC) electric charge unit.
@ Kilocoulomb
Kilocoulomb (kC) electric charge unit.
@ AmpereHour
Ampere-hour (A·hr) electric charge unit.
@ Coulomb
Coulomb (C) electric charge unit.
@ ElementaryCharge
Elementary charge (e) electric charge unit.
@ GigaampereMinute
Gigaampere-minute (GA·min) electric charge unit.
@ NanoampereHour
Nanoampere-hour (μA·hr) electric charge unit.
@ KiloampereMinute
Kiloampere-minute (kA·min) electric charge unit.
@ MilliampereHour
Milliampere-hour (mA·hr) electric charge unit.
@ GigaampereHour
Gigaampere-hour (GA·hr) electric charge unit.
@ MegaampereHour
Megaampere-hour (MA·hr) electric charge unit.
@ TeraampereMinute
Teraampere-minute (TA·min) electric charge unit.
@ Megacoulomb
Megacoulomb (MC) electric charge unit.
@ MilliampereMinute
Milliampere-minute (mA·min) electric charge unit.
@ TeraampereHour
Teraampere-hour (TA·hr) electric charge unit.
@ MegaampereMinute
Megaampere-minute (MA·min) electric charge unit.
@ AmpereMinute
Ampere-minute (A·min) electric charge unit.
@ Nanocoulomb
Nanocoulomb (nC) electric charge unit.
@ KiloampereHour
Kiloampere-hour (kA·hr) electric charge unit.
@ Teracoulomb
Teracoulomb (TC) electric charge unit.
@ NanoampereMinute
Nanoampere-minute (μA·min) electric charge unit.
@ MicroampereHour
Microampere-hour (μA·hr) electric charge unit.
@ Gigacoulomb
Gigacoulomb (GC) electric charge unit.
@ MicroampereMinute
Microampere-minute (μA·min) electric charge unit.
Temperature
Temperature units. Not to be confused with temperature difference units. For example,...
Definition: Temperature.hpp:55
Time
Time units.
Definition: Time.hpp:53
Namespace that encompasses all of the Physical Quantities library's content.
@ FootPoundSecondRankine
Foot-pound-second-rankine (ft·lbf·s·°R) system.
@ MillimetreGramSecondKelvin
Millimetre-gram-second-kelvin (mm·g·s·K) system.
@ MetreKilogramSecondKelvin
Metre-kilogram-second-kelvin (m·kg·s·K) system.
@ InchPoundSecondRankine
Inch-pound-second-rankine (in·lbf·s·°R) system.
std::string_view Abbreviation(const Enumeration enumeration)
Returns the abbreviation of a given enumeration value. For example, PhQ::Abbreviation(PhQ::Unit::Time...
Definition: Base.hpp:89
std::ostream & operator<<(std::ostream &stream, const Acceleration< NumericType > &acceleration)