SLIDE  3.0.0
A simulator for lithium-ion battery pack degradation
Loading...
Searching...
No Matches
units.hpp
Go to the documentation of this file.
1/*
2 * units.hpp
3 *
4 * Definition of different units
5 * Created on: 30 Jun 2022
6 * Author(s): Volkan Kumtepeli
7 */
8
9#pragma once
10
11#include "../settings/constants.hpp"
12#include <cstddef>
13
14namespace slide {
15
16// Current:
17constexpr inline auto operator""_kA(long double d) { return 1e3 * d; }
18constexpr inline auto operator""_A(long double d) { return d; }
19constexpr inline auto operator""_mA(long double d) { return d * 1e-3; }
20constexpr inline auto operator""_uA(long double d) { return d * 1e-6; }
21
22// Voltage:
23constexpr inline auto operator""_kV(long double d) { return 1e3 * d; }
24constexpr inline auto operator""_V(long double d) { return d; }
25constexpr inline auto operator""_mV(long double d) { return d * 1e-3; }
26constexpr inline auto operator""_uV(long double d) { return d * 1e-6; }
27
28
29// Temperature:
30constexpr inline double C_to_Kelvin(auto Celsius) { return static_cast<double>(PhyConst::Kelvin + Celsius); } // #TODO check if it better to have auto or double
31constexpr inline double K_to_Celsius(auto Kelvin) { return static_cast<double>(Kelvin - PhyConst::Kelvin); }
32
33constexpr inline double operator""_degC(long double d) { return C_to_Kelvin(d); }
34constexpr inline double operator""_K(long double d) { return static_cast<double>(d); }
35
36constexpr inline double operator""_degC(unsigned long long d) { return C_to_Kelvin(d); }
37constexpr inline double operator""_K(unsigned long long d) { return static_cast<double>(d); }
38
39
40} // namespace slide
constexpr double Kelvin
Definition: constants.hpp:20
Slide namespace contains all the types, classes, and functions for the simulation framework.
Definition: Cell.hpp:27
constexpr double C_to_Kelvin(auto Celsius)
Definition: units.hpp:30
constexpr double K_to_Celsius(auto Kelvin)
Definition: units.hpp:31