specfem::units::unit_cast¶
-
template<typename To, typename From>
constexpr To specfem::units::unit_cast(From q)¶ Convert a quantity from one unit to another.
Performs compile-time checked unit conversion. Supports:
Identity conversions (no-op)
Same-dimension scale changes (m → km)
Cross-dimension spectral conversions (s → Hz → \( \omega \))
Unsupported conversions produce a compile-time error.
auto km = unit_cast<Kilometers>(Meters(1500.0)); // 1.5 km auto freq = unit_cast<Hertz>(Seconds(0.5)); // 2.0 Hz
- Template Parameters:
To – Target quantity type
From – Source quantity type
- Parameters:
q – Quantity to convert
- Returns:
constexpr To Converted quantity