KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
phys.h File Reference
#include <array>
#include <cmath>
#include <complex>
#include <cstdlib>
#include <iomanip>
#include <iostream>
#include <map>
Include dependency graph for phys.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  phys::unit_error
 
struct  phys::seq<... >
 compile-time array operations realized in c++11 standard More...
 
struct  phys::gens< N, S >
 
struct  phys::gens< 0, S... >
 
class  phys::dimensions< T, N >
 
class  phys::uval
 
struct  phys::inner::matrix< T, M, N >
 
class  phys::unitsys
 

Namespaces

namespace  phys
 
namespace  phys::math
 
namespace  phys::inner
 

Macros

#define CONSTTYPE   const
 make this header is compatible to c++11 standard
 
#define CONSTEXPR_DECOR
 
#define PHYS_DEFINE_UNITSYS_NAMESPACE(USNAME, _0, _1, _2, _3, _4, _5, _6)
 

Typedefs

using real_precision = double
 
typedef dimensions< real_precision, dimension7_sizephys::dimension7
 
typedef unitsys phys::us
 < generalized hatree is same to hatree when out of statistics (k_Boltzman & N_Avagadro)
 

Enumerations

enum  phys::dimension7_type {
  phys::_L , phys::_T , phys::_M , phys::_I ,
  phys::_Q , phys::_N , phys::_J
}
 

Functions

constexpr std::complex< real_precisionphys::math::im (0.0L, 1.0L)
 Imaginary Unit.
 
constexpr std::complex< real_precisionphys::math::iu (1.0L, 0.0L)
 
constexpr std::complex< real_precisionphys::math::iz (0.0L, 0.0L)
 
template<typename T , std::size_t N>
constexpr T phys::array_add_n (const std::array< T, N > a, const std::array< T, N > b, int n)
 
template<typename T , std::size_t N, int... S>
constexpr std::array< T, N > phys::array_add_impl (const std::array< T, N > a, const std::array< T, N > b, seq< S... >)
 
template<typename T , std::size_t N>
constexpr std::array< T, N > phys::array_add (const std::array< T, N > a, const std::array< T, N > b)
 
template<typename T , std::size_t N>
constexpr T phys::array_minus_n (const std::array< T, N > a, const std::array< T, N > b, int n)
 
template<typename T , std::size_t N, int... S>
constexpr std::array< T, N > phys::array_minus_impl (const std::array< T, N > a, const std::array< T, N > b, seq< S... >)
 
template<typename T , std::size_t N>
constexpr std::array< T, N > phys::array_minus (const std::array< T, N > a, const std::array< T, N > b)
 
template<typename T , std::size_t N>
constexpr T phys::array_scale_n (const std::array< T, N > a, T b_val, int n)
 
template<typename T , std::size_t N, int... S>
constexpr std::array< T, N > phys::array_scale_impl (const std::array< T, N > a, const T b, seq< S... >)
 
template<typename T , std::size_t N>
constexpr std::array< T, N > phys::array_scale (const std::array< T, N > a, T b)
 
constexpr real_precision phys::reduce_l_nonzero (const dimension7 dim)
 
constexpr real_precision phys::reduce_l_energy (const dimension7 dim)
 
constexpr uval phys::operator* (const uval &lhs, const uval &rhs)
 
constexpr uval phys::operator* (const real_precision &lhs, const uval &rhs)
 
constexpr uval phys::operator* (const uval &lhs, const real_precision &rhs)
 
constexpr uval phys::operator/ (const uval &lhs, const uval &rhs)
 
constexpr uval phys::operator/ (const real_precision &lhs, const uval &rhs)
 
constexpr uval phys::operator/ (const uval &lhs, const real_precision &rhs)
 
const uval phys::operator+ (const uval &lhs, const uval &rhs)
 
const uval phys::operator- (const uval &lhs, const uval &rhs)
 
uval phys::power (const uval &lhs, const real_precision &index)
 
bool phys::is_same_dimension7 (const uval &lhs, const uval &rhs)
 
std::string phys::to_string (const uval &u)
 
universal physical constant
constexpr uval phys::G_gravitional_constant (dimension7{{3, -2, -1}}, 6.6740831E-11L)
 
constexpr uval phys::c_lightspeed (speed_d, 2.997924580E+8L)
 
constexpr uval phys::ep0_permittivity (permittivity_d, 8.854187817E-12L)
 1/(4*pi*ke)
 
constexpr uval phys::mu0_permeability (magnetic_permeability_d, 1.256637061E-6L)
 4*pi*ke/c^2
 
constexpr uval phys::ke_Comloub (dimensionless_d/permittivity_d, 8.9875517873681764E+9L)
 
constexpr uval phys::R_gas_constant (molar_entropy_d, 8.314459848L)
 k * N
 
constexpr uval phys::Rydberg_constant (wave_number_d, 10973731.56850865L)
 me* e ^ 4 / (8 * ep0 ^ 2 * h ^ 3 * c)
 
constexpr uval phys::Faraday_constant (electric_charge_d/amount_of_substance_d, 96485.3328959L)
 e*N
 
constexpr uval phys::Stefan_constant (dimension7{{0, -3, 1, -4}}, 5.67036713E-8L)
 pi^2 kB^4/(60*hb^3*c^2)
 
constexpr uval phys::muB_magnetic_moment (magnetic_moment_d, 9.27400999457E-24L)
 e*hb / (2*me)
 
constexpr uval phys::muN_magnetic_moment (magnetic_moment_d, 5.05078369931E-27L)
 e*hb / (2*mn)
 
constexpr uval phys::Bohr_length (length_d, 5.291772106712E-11L)
 hb^2/(ke*me*e^2)
 
constexpr uval phys::h_Planck (action_d, 6.62607004081E-34L)
 
constexpr uval phys::hb_Planck (action_d, 1.05457180013E-34L)
 h/(2*pi)
 
constexpr uval phys::me_mass (mass_d, 9.1093835611E-31L)
 
constexpr uval phys::mp_mass (mass_d, 1.67262189821E-27L)
 
constexpr uval phys::mn_mass (mass_d, 1.67492749804e-27L)
 
constexpr uval phys::amu_mass (mass_d, 1.66053886E-27L)
 
constexpr uval phys::e_charge (electric_charge_d, 1.602176620898E-19L)
 
constexpr uval phys::k_Boltzman (entropy_d, 1.3806490351E-23L)
 
constexpr uval phys::N_Avagadro (dimensionless_d/amount_of_substance_d, 6.02214085774E+23L)
 
minimal constexpr functions
template<typename T >
CONSTEXPR_DECORphys::inner::exp_int (int n)
 
template<typename T >
CONSTEXPR_DECOR long double phys::inner::exp (T num)
 
template<typename T >
CONSTEXPR_DECOR long double phys::inner::log (T num)
 
template<typename T >
CONSTEXPR_DECOR long double phys::inner::pow (T a, T b)
 
minimal linalg utils for solving unit systems at a compile-time cost
template<typename T , std::size_t M, std::size_t N>
CONSTTYPE std::tuple< matrix< T, M, N >, std::size_t, T > phys::inner::gauss_jordan_impl (matrix< T, M, N > m, T tolerance)
 
template<typename T , std::size_t M>
CONSTTYPE matrix< T, M, M > phys::inner::inverse (matrix< T, M, M > m)
 
template<typename T , std::size_t M, std::size_t N, std::size_t P>
CONSTTYPE matrix< T, M, P > phys::inner::matmul (matrix< T, M, N > a, matrix< T, N, P > b)
 
template<typename T , std::size_t M, std::size_t N>
std::ostream & phys::inner::operator<< (std::ostream &os, matrix< T, M, N > m)
 
universal namespace definitions for useful uval systems
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (si, _base_1m, _base_1s, _base_1kg, _base_1A, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (planck, c_lightspeed, hb_Planck, G_gravitional_constant, k_Boltzman, _base_1A, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (god_given, c_lightspeed, hb_Planck, G_gravitional_constant, _base_1A, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (stoney, c_lightspeed, G_gravitional_constant, ke_Comloub, e_charge, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (natural, c_lightspeed, hb_Planck, me_mass, ep0_permittivity, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (gauss, 0.01L *_base_1m, _base_1s, 0.001L *_base_1kg, ke_Comloub, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (rydberg, hb_Planck, 2 *me_mass, e_charge *e_charge/2, ke_Comloub, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (hartree, hb_Planck, me_mass, e_charge, ke_Comloub, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (ghartree, hb_Planck, me_mass, e_charge, ke_Comloub, k_Boltzman, N_Avagadro, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (quantum_chromo_dynamics, c_lightspeed, hb_Planck, mp_mass, e_charge, _base_1K, _base_1mol, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (au_test, hb_Planck, me_mass, e_charge, ke_Comloub, k_Boltzman, N_Avagadro, _base_1cd)
 
 phys::PHYS_DEFINE_UNITSYS_NAMESPACE (amu, hb_Planck, me_mass, e_charge, ke_Comloub, _base_1K, _base_1mol, _base_1cd)
 

Variables

constexpr real_precision phys::math::eu = 2.718281828459045235360287
 Euler'Constant.
 
constexpr real_precision phys::math::pi = 3.141592653589793238462643L
 pi
 
constexpr real_precision phys::math::twopi = 6.283185307179586476925287L
 
constexpr real_precision phys::math::halfpi = 1.570796326794896619231321L
 
constexpr real_precision phys::math::eps8 = 1.0E-8L
 
constexpr real_precision phys::math::eps16 = 1.0E-16L
 
constexpr real_precision phys::math::eps32 = 1.0E-32L
 
constexpr real_precision phys::math::sqrttwo = 1.414213562373095048801689L
 
constexpr real_precision phys::math::sqrthalf = 0.707106781186547524400844L
 
const int phys::dimension7_size = 7
 dimension7 is provided as compile-time dimensional tools
 
const std::map< const dimension7, const std::string > phys::description
 
static const std::map< std::string, real_precisionphys::uval_prefix
 
static const std::map< std::string, uvalphys::uval_names
 
static CONSTTYPE real_precision phys::au_2_amu = unitsys::conv(au::unit, amu_mass)
 1mea means we measure a quantity at 1*N level.
 
static CONSTTYPE real_precision phys::au_2_ang = unitsys::conv(au::unit, 1e-10L * _base_1m)
 
static CONSTTYPE real_precision phys::au_2_ev = unitsys::conv(au::unit, e_charge* _base_1V)
 
static CONSTTYPE real_precision phys::au_2_J_1mea = unitsys::conv(au::unit, _base_1J / _base_1mol) * au::N
 
static CONSTTYPE real_precision phys::au_2_kcal_1mea = unitsys::conv(au::unit, 1e+3L * _nostd_1cal / _base_1mol) * au::N
 
static CONSTTYPE real_precision phys::au_2_g_1mea = unitsys::conv(au::unit, 1e-3L * _base_1kg / _base_1mol) * au::N
 
static CONSTTYPE real_precision phys::au_2_wn = unitsys::conv(au::unit, h_Planck* c_lightspeed / (0.01L * _base_1m))
 
static CONSTTYPE real_precision phys::au_2_fs = unitsys::conv(au::unit, 1e-15L * _base_1s)
 
static CONSTTYPE real_precision phys::au_2_ps = unitsys::conv(au::unit, 1e-12L * _base_1s)
 
static CONSTTYPE real_precision phys::au_2_K = unitsys::conv(au::unit, _base_1K)
 
static CONSTTYPE real_precision phys::au_2_angoverps = au_2_ang / au_2_ps
 
base dimension7
constexpr dimension7 phys::dimensionless_d {{}}
 [1]
 
constexpr dimension7 phys::length_d {{1, 0, 0, 0, 0, 0, 0}}
 [L]
 
constexpr dimension7 phys::time_d {{0, 1, 0, 0, 0, 0, 0}}
 [T]
 
constexpr dimension7 phys::mass_d {{0, 0, 1, 0, 0, 0, 0}}
 [M]
 
constexpr dimension7 phys::electric_current_d {{0, 0, 0, 1, 0, 0, 0}}
 [I]
 
constexpr dimension7 phys::thermodynamic_temperature_d {{0, 0, 0, 0, 1, 0, 0}}
 [Q]
 
constexpr dimension7 phys::amount_of_substance_d {{0, 0, 0, 0, 0, 1, 0}}
 [N]
 
constexpr dimension7 phys::luminous_intensity_d {{0, 0, 0, 0, 0, 0, 1}}
 [J]
 
constexpr dimension7 phys::current_d = electric_current_d
 
constexpr dimension7 phys::temperature_d = thermodynamic_temperature_d
 
constexpr dimension7 phys::amount_d = amount_of_substance_d
 
constexpr dimension7 phys::none_d = dimensionless_d
 
derived (L) dimension7
constexpr dimension7 phys::distance_d = length_d
 
constexpr dimension7 phys::wavelength_d = length_d
 
constexpr dimension7 phys::wave_number_d {{-1, 0, 0}}
 [L^-1]
 
constexpr dimension7 phys::area_d {{2, 0, 0}}
 [L^2]
 
constexpr dimension7 phys::volume_d {{3, 0, 0}}
 [L^3]
 
derived (T) dimension7
constexpr dimension7 phys::frequency_d {{0, -1, 0}}
 [T^-1]
 
constexpr dimension7 phys::angular_velocity_d {{0, -1, 0}}
 [T^-1]
 
constexpr dimension7 phys::angular_acceleration_d {{0, -2, 0}}
 [T^-2]
 
constexpr dimension7 phys::activity_of_a_nuclide_d = frequency_d
 
derived (L, T) dimension7
constexpr dimension7 phys::speed_d {{1, -1, 0}}
 [L*T^-1]
 
constexpr dimension7 phys::acceleration_d {{1, -2, 0}}
 [L*T^-2]
 
constexpr dimension7 phys::jerk_d {{1, -3, 0}}
 [L*T^-3]
 
constexpr dimension7 phys::jounce_d {{1, -4, 0}}
 [L*T^-4]
 
constexpr dimension7 phys::crackle_d {{1, -5, 0}}
 [L*T^-5]
 
constexpr dimension7 phys::pop_d {{1, -6, 0}}
 [L*T^-6]
 
constexpr dimension7 phys::absement_d {{1, 1, 0}}
 [L*T]
 
constexpr dimension7 phys::area_flow_rate_d {{2, -1, 0}}
 [L^2*T^-1]
 
constexpr dimension7 phys::volume_flow_rate_d {{3, -1, 0}}
 [L^3*T^-1]
 
constexpr dimension7 phys::kinematic_viscosity_d = area_flow_rate_d
 [L^2*T^-1] = viscosity / density
 
constexpr dimension7 phys::thermal_diffusivity_d
 [L^2*T^-1] = thermal_conductivity / (specific_heat_capacity * density)
 
constexpr dimension7 phys::specific_energy_d {{2, -2, 0}}
 [L^2/T^2] (count) energy per mass
 
constexpr dimension7 phys::dose_equivalent_d = specific_energy_d
 [L^2/T^2] (radiation) energy per mass
 
constexpr dimension7 phys::absorbed_dose_d = specific_energy_d
 [L^2/T^2] (radiation) energy per mass
 
constexpr dimension7 phys::absorbed_dose_rate_d {{2, -3, 0}}
 [L^2/T^3] (radiation) power per mass
 
constexpr dimension7 phys::substance_permeability_d {{-1, 1, 0}}
 [L^-1*T]
 
derived (L, T, M) dimension7
constexpr dimension7 phys::inertia_d {{2, 0, 1}}
 [M*L^2]
 
constexpr dimension7 phys::mass_line_density_d {{-1, 0, 1}}
 [M/L] mass per line
 
constexpr dimension7 phys::mass_area_density_d {{-2, 0, 1}}
 [M/L^2] mass per area
 
constexpr dimension7 phys::mass_density_d {{-3, 0, 1}}
 [M/L^3] mass per volume
 
constexpr dimension7 phys::specific_volume_d {{3, 0, -1}}
 [L^3/M] volume per mass
 
constexpr dimension7 phys::mass_flow_rate_d {{0, -1, 1}}
 [M/T] mass per time
 
constexpr dimension7 phys::mass_flow_acceleration_d {{0, -2, 1}}
 [M/T^2] mass per per time
 
constexpr dimension7 phys::mass_flow_jerk_d {{0, -3, 1}}
 [M/T^3] mass per per per time
 
constexpr dimension7 phys::force_d {{1, -2, 1}}
 [M*L/T^2] mass times acceleration
 
constexpr dimension7 phys::momentum_d {{1, -1, 1}}
 [M*L/T] force integrate time
 
constexpr dimension7 phys::energy_d {{2, -2, 1}}
 [M*L^2/T^2] force integrate length
 
constexpr dimension7 phys::moment_of_force_d = energy_d
 [M*L^2/T^2] force cross length
 
constexpr dimension7 phys::torque_d = moment_of_force_d
 
constexpr dimension7 phys::angular_momentum_d {{2, -1, 1}}
 [M*L^2/T] torque integrate time
 
constexpr dimension7 phys::action_d = angular_momentum_d
 [M*L^2/T] energy integrate time
 
constexpr dimension7 phys::inv_ener_d {{-2, 2, -1}}
 [M^-1*L^-2*T^2], inversed energy, such as 1/(kB * T)
 
constexpr dimension7 phys::power_d {{2, -3, 1}}
 [M*L^2/T^3] energy per time
 
constexpr dimension7 phys::energy_density_d {{-1, -2, 1}}
 [M/L/T^2] energy per volume
 
constexpr dimension7 phys::pressure_d = energy_density_d
 [M/L/T^2] energy per volume = force per area
 
constexpr dimension7 phys::surface_tension_d = mass_flow_acceleration_d
 [M/T^2] energy per area
 
constexpr dimension7 phys::energy_line_density_d {{1, -2, 1}}
 [M/L/T^2] energy per line
 
constexpr dimension7 phys::power_density_d {{-1, -3, 1}}
 [M/L/T^3] power per volume
 
constexpr dimension7 phys::power_area_density_d = mass_flow_jerk_d
 [M/T^3] power per area
 
constexpr dimension7 phys::dynamic_viscosity_d {{-1, -1, 1}}
 [M/L/T] force / (area * gradient(velocity))
 
constexpr dimension7 phys::heat_flow_rate_d = power_d
 [M/L/T^3] (heat) energy per time
 
constexpr dimension7 phys::heat_density_d = mass_flow_acceleration_d
 [M/T^2] (heat flow) energy per area
 
constexpr dimension7 phys::heat_density_flow_rate_d = power_area_density_d
 [M/T^3] (heat flow) energy per area per time
 
constexpr dimension7 phys::heat_flux_density_d = power_area_density_d
 [M/T^3] (heat) energy per time per area
 
constexpr dimension7 phys::radiant_intensity_d = power_d
 [M/L/T^3] (radiation) energy per time
 
constexpr dimension7 phys::radiance_d = power_area_density_d
 [M/T^3] (radiation) power per area
 
constexpr dimension7 phys::irradiance_d = power_area_density_d
 [M/T^3] (radiation) power per area
 
derived (L, T, M, I) dimension7
constexpr dimension7 phys::current_density_d {{-2, 0, 0, 1}}
 [I/L^2] current per area
 
constexpr dimension7 phys::electric_charge_d {{0, 1, 0, 1}}
 [I*T] current integrate time
 
constexpr dimension7 phys::electric_charge_density_d {{-3, 1, 0, 1}}
 [I/L^3*T] charge per volume
 
constexpr dimension7 phys::electric_area_charge_density_d {{-2, 1, 0, 1}}
 [I/L^2*T] charge per area
 
constexpr dimension7 phys::electric_line_charge_density_d {{-1, 1, 0, 1}}
 [I/L*T] charge per line
 
constexpr dimension7 phys::electric_dipole_moment_d {{1, 1, 0, 1}}
 [I*L*T] charge times length
 
constexpr dimension7 phys::electric_flux_density_d = electric_area_charge_density_d
 [I/L^2*T]
 
constexpr dimension7 phys::electric_displacement_field_d = electric_area_charge_density_d
 [I/L^2*T], D
 
constexpr dimension7 phys::electric_polarization_field_d
 [I/L^2*T], P = dipole moment pe volume
 
constexpr dimension7 phys::magnetic_moment_d {{2, 0, 0, 1}}
 [I*L^2] current integrate area
 
constexpr dimension7 phys::magnetic_field_strength_d {{-1, 0, 0, 1}}
 [I/L] magnetic moment per volume
 
constexpr dimension7 phys::magnetization_d = magnetic_field_strength_d
 [I/L] magnetic moment per volume
 
constexpr dimension7 phys::electric_potential_d {{2, -3, 1, -1}}
 [M*L^2/T^3/I] energy per charge
 
constexpr dimension7 phys::electric_field_strenth_d {{1, -3, 1, -1}}
 [M*L/T^3/I] electric potential per length
 
constexpr dimension7 phys::electric_resistance_d {{2, -3, 1, -2}}
 [M*L^2/T^3/I^2] electric potential versus current
 
constexpr dimension7 phys::electric_conductance_d {{-2, 3, -1, 2}}
 [M^-1*L^-2*T^3*I^2] = 1 / electric_resistance
 
constexpr dimension7 phys::electric_resistivity_d {{3, -3, 1, -2}}
 [M*L^3/T^3/I^2] electric_resistance time length
 
constexpr dimension7 phys::electric_conductivity_d {{-3, 3, -1, 2}}
 [M^-1*L^-3*T^3*I^2] 1 / electric_resistivity
 
constexpr dimension7 phys::electric_capacitance_d {{-2, 4, -1, 2}}
 [M^-1*L^-2*T^4*I^2] charge versus electric potential
 
constexpr dimension7 phys::magnetic_flux_d {{2, -2, 1, -1}}
 [M*L^2/T^2/I] energy per current = E/I = B*S
 
constexpr dimension7 phys::magnetic_flux_density_d
 [M*T^-2/I] B = electric_field_strenth_d versus velocity
 
constexpr dimension7 phys::inductance_d {{2, -2, 1, -2}}
 [M*L^2/T^2/I^2] magnetic flux versus current, L
 
constexpr dimension7 phys::electric_chargme_mass_ratio_d {{0, 1, -1, 1}}
 [M^-1*T*I]
 
constexpr dimension7 phys::magnetic_permeability_d {{1, -2, 1, -2}}
 [M*L/T^2/I^2], mu
 
constexpr dimension7 phys::permittivity_d {{-3, 4, -1, 2}}
 [M^-1*L^-2*T^4*I^2], epsilon
 
derived (L, T, M, I, Q) dimension7
constexpr dimension7 phys::inv_temp_d {{0, 0, 0, 0, -1}}
 
constexpr dimension7 phys::heat_capacity_d {{2, -2, 1, 0, -1}}
 [M*L^2/T^2/Q] energy per temperature
 
constexpr dimension7 phys::entropy_d = heat_capacity_d
 [M*L^2/T^2/Q] energy per temperature
 
constexpr dimension7 phys::heat_transfer_coefficient_d
 [M/T^3/Q] heat_flux_density versus temperature
 
constexpr dimension7 phys::specific_heat_capacity_d {{2, -2, 0, 0, -1}}
 [L^2/T^2/Q] capacity per mass
 
constexpr dimension7 phys::thermal_conductivity_d {{1, -3, 1, 0, -1}}
 [M*L/T^3/Q]
 
constexpr dimension7 phys::thermal_insulance_d {{0, 3, -1, 0, 1}}
 [M^-1*T^3*Q] = 1 / heat_transfer_coefficient
 
constexpr dimension7 phys::thermal_resistance_d {{-2, 3, -1, 0, 1}}
 [M^-1*L^-2*T^3*Q]
 
constexpr dimension7 phys::thermal_resistivity_d {{-1, 3, -1, 0, 1}}
 [M^-1*L^-1*T^3*Q]
 
derived (L, T, M, I, Q, N) dimension7
constexpr dimension7 phys::concentration_d {{-3, 0, 0, 0, 0, 1}}
 [N/L^3] amount per volume
 
constexpr dimension7 phys::molar_energy_d {{2, -2, 1, 0, 0, -1}}
 [M*L^2/T^2/N] energy per amount
 
constexpr dimension7 phys::molar_entropy_d {{2, -2, 1, 0, -1, -1}}
 [M*L^2/T^2/Q/N] entropy per amount
 
derived (L, T, M, I, Q, N, J) dimension7
constexpr dimension7 phys::luminous_flux_d = luminous_intensity_d
 [J]
 
constexpr dimension7 phys::illuminance_d {{-2, 0, 0, 0, 0, 0, 1}}
 [J/L^2] luminous_intensity per area
 
constexpr dimension7 phys::luminance_d = illuminance_d
 [J/L^2] luminous_intensity per area
 

SI base

constexpr uval phys::_nostd_1cal = 4.184L * _base_1J
 1 cal (non-standard)
 
constexpr uval phys::_base_1 (dimensionless_d)
 1
 
constexpr uval phys::_base_1m (length_d)
 1 meter
 
constexpr uval phys::_base_1s (time_d)
 1 second
 
constexpr uval phys::_base_1kg (mass_d)
 1 kilogram
 
constexpr uval phys::_base_1A (electric_current_d)
 1 ampere
 
constexpr uval phys::_base_1K (thermodynamic_temperature_d)
 1 kelvins
 
constexpr uval phys::_base_1mol (amount_of_substance_d)
 1 mole
 
constexpr uval phys::_base_1cd (luminous_intensity_d)
 1 candela
 
constexpr uval phys::_base_1Hz (frequency_d)
 1 hertz
 
constexpr uval phys::_base_1N (force_d)
 1 newton
 
constexpr uval phys::_base_1Pa (pressure_d)
 1 pascal
 
constexpr uval phys::_base_1J (energy_d)
 1 joule
 
constexpr uval phys::_base_1W (power_d)
 1 watt
 
constexpr uval phys::_base_1C (electric_charge_d)
 1 comloub
 
constexpr uval phys::_base_1V (electric_potential_d)
 1 volt
 
constexpr uval phys::_base_1F (electric_capacitance_d)
 1 faraday
 
constexpr uval phys::_base_1S (electric_conductance_d)
 1 siemens
 
constexpr uval phys::_base_1Om (electric_resistance_d)
 1 ohm
 
constexpr uval phys::_base_1Wb (magnetic_flux_d)
 1 weber
 
constexpr uval phys::_base_1T (magnetic_flux_density_d)
 1 tesla
 
constexpr uval phys::_base_1H (inductance_d)
 1 henry
 

Macro Definition Documentation

◆ CONSTEXPR_DECOR

#define CONSTEXPR_DECOR

Definition at line 15 of file phys.h.

◆ CONSTTYPE

#define CONSTTYPE   const

make this header is compatible to c++11 standard

Definition at line 14 of file phys.h.

◆ PHYS_DEFINE_UNITSYS_NAMESPACE

#define PHYS_DEFINE_UNITSYS_NAMESPACE ( USNAME,
_0,
_1,
_2,
_3,
_4,
_5,
_6 )
Value:
\
namespace USNAME { \
using value_type = real_precision; \
CONSTTYPE unitsys unit(_0, _1, _2, _3, _4, _5, _6); \
CONSTTYPE value_type c = unitsys::conv(phys::c_lightspeed, unit); \
CONSTTYPE value_type h = unitsys::conv(phys::h_Planck, unit); \
CONSTTYPE value_type hb = unitsys::conv(phys::hb_Planck, unit); \
CONSTTYPE value_type ke = unitsys::conv(phys::ke_Comloub, unit); \
CONSTTYPE value_type me = unitsys::conv(phys::me_mass, unit); \
CONSTTYPE value_type e = unitsys::conv(phys::e_charge, unit); \
CONSTTYPE value_type k = unitsys::conv(phys::k_Boltzman, unit); \
CONSTTYPE value_type N = unitsys::conv(phys::N_Avagadro, unit); \
CONSTTYPE value_type G = unitsys::conv(phys::G_gravitional_constant, unit); \
inline value_type as(const dimension7 dim, const uval& u) { return unitsys::as(dim, u, unit); } \
inline value_type as(const dimension7 dim, const std::string& str) { return unitsys::as(dim, str, unit); } \
};
constexpr uval e_charge(electric_charge_d, 1.602176620898E-19L)
constexpr uval N_Avagadro(dimensionless_d/amount_of_substance_d, 6.02214085774E+23L)
constexpr uval k_Boltzman(entropy_d, 1.3806490351E-23L)
constexpr uval G_gravitional_constant(dimension7{{3, -2, -1}}, 6.6740831E-11L)
constexpr uval hb_Planck(action_d, 1.05457180013E-34L)
h/(2*pi)
constexpr uval h_Planck(action_d, 6.62607004081E-34L)
constexpr uval me_mass(mass_d, 9.1093835611E-31L)
constexpr uval ke_Comloub(dimensionless_d/permittivity_d, 8.9875517873681764E+9L)
constexpr uval c_lightspeed(speed_d, 2.997924580E+8L)
double real_precision
Definition phys.h:23
#define CONSTTYPE
make this header is compatible to c++11 standard
Definition phys.h:14

Definition at line 870 of file phys.h.

Typedef Documentation

◆ real_precision

using real_precision = double

Definition at line 23 of file phys.h.