specfem::units::unit_symbols

namespace unit_symbols

Short aliases and tag-based constructors for unit types.

Provides convenient multiplication syntax for creating quantities. Use via using namespace in local scopes only to avoid polluting headers.

using namespace specfem::units::unit_symbols;
auto distance = 5.0 * km;  // Kilometers{5.0}
auto time = 2.0 * s;       // Seconds{2.0}
auto speed = 10.0 * mps;   // MetersPerSecond{10.0}

Functions

template<typename N>
constexpr Dimensionless operator*(N v, dimensionless_tag)
template<typename N>
constexpr Dimensionless operator*(dimensionless_tag, N v)
template<typename N>
constexpr Grams operator*(N v, gram_tag)
template<typename N>
constexpr Grams operator*(gram_tag, N v)
template<typename N>
constexpr Kilograms operator*(N v, kilogram_tag)
template<typename N>
constexpr Kilograms operator*(kilogram_tag, N v)
template<typename N>
constexpr Seconds operator*(N v, second_tag)
template<typename N>
constexpr Seconds operator*(second_tag, N v)
template<typename N>
constexpr Meters operator*(N v, meter_tag)
template<typename N>
constexpr Meters operator*(meter_tag, N v)
template<typename N>
constexpr Kilometers operator*(N v, kilometer_tag)
template<typename N>
constexpr Kilometers operator*(kilometer_tag, N v)
template<typename N>
constexpr Radians operator*(N v, radian_tag)
template<typename N>
constexpr Radians operator*(radian_tag, N v)
template<typename N>
constexpr GramPerCubicMeter operator*(N v, g_per_m3_tag)
template<typename N>
constexpr GramPerCubicMeter operator*(g_per_m3_tag, N v)
template<typename N>
constexpr KilogramPerCubicMeter operator*(N v, kg_per_m3_tag)
template<typename N>
constexpr KilogramPerCubicMeter operator*(kg_per_m3_tag, N v)
template<typename N>
constexpr MetersPerSecond operator*(N v, m_per_s_tag)
template<typename N>
constexpr MetersPerSecond operator*(m_per_s_tag, N v)
template<typename N>
constexpr KilometersPerSecond operator*(N v, km_per_s_tag)
template<typename N>
constexpr KilometersPerSecond operator*(km_per_s_tag, N v)
template<typename N>
constexpr Hertz operator*(N v, hertz_tag)
template<typename N>
constexpr Hertz operator*(hertz_tag, N v)
template<typename N>
constexpr Omega operator*(N v, omega_tag)
template<typename N>
constexpr Omega operator*(omega_tag, N v)
template<typename N>
constexpr Pascal operator*(N v, pascal_unit_tag)
template<typename N>
constexpr Pascal operator*(pascal_unit_tag, N v)
template<typename N>
constexpr Megapascal operator*(N v, megapascal_tag)
template<typename N>
constexpr Megapascal operator*(megapascal_tag, N v)
template<typename N>
constexpr DyneCentimeter operator*(N v, dyne_centimeter_tag)
template<typename N>
constexpr DyneCentimeter operator*(dyne_centimeter_tag, N v)
template<typename N>
constexpr NewtonMeter operator*(N v, newton_meter_tag)
template<typename N>
constexpr NewtonMeter operator*(newton_meter_tag, N v)

Variables

constexpr dimensionless_tag one = {}
constexpr gram_tag g = {}
constexpr kilogram_tag kg = {}
constexpr second_tag s = {}
constexpr meter_tag m = {}
constexpr kilometer_tag km = {}
constexpr radian_tag rad = {}
constexpr g_per_m3_tag gpm3 = {}
constexpr kg_per_m3_tag kgpm3 = {}
constexpr m_per_s_tag mps = {}
constexpr km_per_s_tag kmps = {}
constexpr hertz_tag Hz = {}
constexpr omega_tag w = {}
constexpr pascal_unit_tag Pa = {}
constexpr megapascal_tag MPa = {}
constexpr dyne_centimeter_tag dyn_cm = {}
constexpr newton_meter_tag Nm = {}
struct dimensionless_tag
#include <units.hpp>
struct gram_tag
#include <units.hpp>
struct kilogram_tag
#include <units.hpp>
struct second_tag
#include <units.hpp>
struct meter_tag
#include <units.hpp>
struct kilometer_tag
#include <units.hpp>
struct radian_tag
#include <units.hpp>
struct g_per_m3_tag
#include <units.hpp>
struct kg_per_m3_tag
#include <units.hpp>
struct m_per_s_tag
#include <units.hpp>
struct km_per_s_tag
#include <units.hpp>
struct hertz_tag
#include <units.hpp>
struct omega_tag
#include <units.hpp>
struct pascal_unit_tag
#include <units.hpp>
struct megapascal_tag
#include <units.hpp>
struct dyne_centimeter_tag
#include <units.hpp>
struct newton_meter_tag
#include <units.hpp>