Multiscale Universal Interface  2.0
A Concurrent Framework for Coupling Heterogeneous Solvers
dim.h File Reference

File providing data specialisms at different dimensionalities. More...

#include "util.h"
Include dependency graph for dim.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mui::dim::dim< MLTTAELI >
 

Namespaces

 mui
 
 mui::dim
 
 mui::dim::mechanical
 
 mui::dim::electrical
 
 mui::dim::magnetic
 
 mui::dim::optical
 
 mui::dim::radioactive
 
 mui::dim::chemical
 

Macros

#define make_unit(dimension, suffix, conversion)
 

Typedefs

using mui::dim::mass = dim< 1, 0, 0, 0, 0, 0, 0, 0 >
 
using mui::dim::length = dim< 0, 1, 0, 0, 0, 0, 0, 0 >
 
using mui::dim::time = dim< 0, 0, 1, 0, 0, 0, 0, 0 >
 
using mui::dim::temperature = dim< 0, 0, 0, 1, 0, 0, 0, 0 >
 
using mui::dim::amount = dim< 0, 0, 0, 0, 1, 0, 0, 0 >
 
using mui::dim::current = dim< 0, 0, 0, 0, 0, 1, 0, 0 >
 
using mui::dim::luminos = dim< 0, 0, 0, 0, 0, 0, 1, 0 >
 
using mui::dim::information = dim< 0, 0, 0, 0, 0, 0, 0, 1 >
 
using mui::dim::angle = decltype(length()/length())
 
using mui::dim::area = decltype(length() *length())
 
using mui::dim::frequency = decltype(1.0/time())
 
using mui::dim::velocity = decltype(length()/time())
 
using mui::dim::acceleration = decltype(velocity()/time())
 
using mui::dim::force = decltype(mass() *acceleration())
 
using mui::dim::pressure = decltype(force()/area())
 
using mui::dim::energy = decltype(force() *length())
 
using mui::dim::solid_angle = decltype(area()/area())
 
using mui::dim::power = decltype(energy()/time())
 
using mui::dim::electrical::charge = decltype(current() *time())
 
using mui::dim::electrical::voltage = decltype(power()/current())
 
using mui::dim::electrical::capacitance = decltype(charge()/voltage())
 
using mui::dim::electrical::resistance = decltype(voltage()/current())
 
using mui::dim::electrical::conductance = decltype(current()/voltage())
 
using mui::dim::magnetic::flux = decltype(voltage() *time())
 
using mui::dim::magnetic::strength = decltype(flux()/area())
 
using mui::dim::magnetic::inductance = decltype(flux()/current())
 
using mui::dim::optical::flux = decltype(luminos() *solid_angle())
 
using mui::dim::optical::illuminance = decltype(flux()/area())
 
using mui::dim::radioactive::activity = decltype(1.0/time())
 
using mui::dim::radioactive::dose = decltype(energy()/mass())
 
using mui::dim::chemical::catativity = decltype(amount()/time())
 

Functions

template<int... MLTTAELI1, int... MLTTAELI2>
class Cannot_Add_Values_With_Mismatching_Dimensionality mui::dim::operator+ (const dim< MLTTAELI1... > &d1, const dim< MLTTAELI2... > &d2)
 
template<int... MLTTAELI>
dim< MLTTAELI... > mui::dim::operator+ (const dim< MLTTAELI... > &d1, const dim< MLTTAELI... > &d2)
 
template<int... MLTTAELI>
dim< MLTTAELI... > mui::dim::operator- (const dim< MLTTAELI... > &d)
 
template<int... MLTTAELI1, int... MLTTAELI2>
class Cannot_Subtract_Values_With_Mismatching_Dimensionality mui::dim::operator- (const dim< MLTTAELI1... > &d1, const dim< MLTTAELI2... > &d2)
 
template<int... MLTTAELI>
dim< MLTTAELI... > mui::dim::operator- (const dim< MLTTAELI... > &d1, const dim< MLTTAELI... > &d2)
 
template<int... MLTTAELI>
double mui::dim::operator* (const dim< MLTTAELI... > &u1, const dim<-MLTTAELI... > &u2)
 
template<int... MLTTAELI1, int... MLTTAELI2>
dim<(MLTTAELI1+MLTTAELI2)... > mui::dim::operator* (const dim< MLTTAELI1... > &u1, const dim< MLTTAELI2... > &u2)
 
template<int... MLTTAELI>
dim< MLTTAELI... > mui::dim::operator* (const dim< MLTTAELI... > &u, const double f)
 
template<int... MLTTAELI>
dim< MLTTAELI... > mui::dim::operator* (const double f, const dim< MLTTAELI... > &u)
 
template<int... MLTTAELI>
double mui::dim::operator/ (const dim< MLTTAELI... > &u1, const dim< MLTTAELI... > &u2)
 
template<int... MLTTAELI1, int... MLTTAELI2>
dim<(MLTTAELI1-MLTTAELI2)... > mui::dim::operator/ (const dim< MLTTAELI1... > &u1, const dim< MLTTAELI2... > &u2)
 
template<int... MLTTAELI>
dim< MLTTAELI... > mui::dim::operator/ (const dim< MLTTAELI... > &u, const double f)
 
template<int... MLTTAELI>
dim<-MLTTAELI... > mui::dim::operator/ (const double f, const dim< MLTTAELI... > &u)
 
angle mui::dim::operator""_deg (long double u)
 
angle mui::dim::operator""_deg (unsigned long long u)
 
 mui::dim::make_unit (mass, ton, u *1e3) make_unit(mass
 
mui::dim::make_unit (mass, g, u *1e-3) make_unit(mass
 
u u * mui::dim::make_unit (length, km, u *1e3) make_unit(length
 
u u u mui::dim::make_unit (length, cm, u *1e-2) make_unit(length
 
u u u u * mui::dim::make_unit (length, um, u *1e-6) make_unit(length
 
u u u u u * mui::dim::make_unit (length, Angstrom, u *1e-10) make_unit(time
 
u u u u u u * mui::dim::make_unit (time, hr, u *3600.0) make_unit(time
 
u u u u u u u * mui::dim::make_unit (time, s, u) make_unit(time
 
u u u u u u u u * mui::dim::make_unit (time, us, u *1e-6) make_unit(time
 
u u u u u u u u u * mui::dim::make_unit (time, ps, u *1e-12) make_unit(time
 
u u u u u u u u u u * mui::dim::make_unit (temperature, K, u) make_unit(temperature
 
u u u u u u u u u u u mui::dim::make_unit (amount, mol, u *6.02214178999999989284864e23) make_unit(current
 
u u u u u u u u u u u u mui::dim::make_unit (current, mAmp, u *1e-3) make_unit(luminos
 
u u u u u u u u u u u u u mui::dim::make_unit (information, bit, u *0.125) make_unit(information
 
u u u u u u u u u u u u u u * mui::dim::make_unit (information, byte, u) make_unit(information
 
u u u u u u u u u u u u u u u * mui::dim::make_unit (information, MB, u *1e6) make_unit(information
 
u u u u u u u u u u u u u u u u * mui::dim::make_unit (information, TB, u *1e12) make_unit(information
 
u u u u u u u u u u u u u u u u u * mui::dim::make_unit (angle, rad, u) make_unit(frequency
 
u u u u u u u u u u u u u u u u u u mui::dim::make_unit (velocity, kmph, u *(1000.0/3600.0)) make_unit(acceleration
 
u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (force, kN, u *1e3) make_unit(force
 
u u u u u u u u u u u u u u u u u u u u mui::dim::make_unit (force, mN, u *1e-3) make_unit(force
 
u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (force, nN, u *1e-9) make_unit(force
 
u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (pressure, GPa, u *1e9) make_unit(pressure
 
u u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (pressure, kPa, u *1e3) make_unit(pressure
 
u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::make_unit (energy, GJ, u *1e9) make_unit(energy
 
u u u u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (energy, kJ, u *1e3) make_unit(energy
 
u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::make_unit (energy, mJ, u *1e-3) make_unit(energy
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (energy, nJ, u *1e-9) make_unit(energy
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (energy, eV, u *1.602176565e-19) make_unit(solid_angle
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::make_unit (power, MW, u *1e6) make_unit(power
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (power, W, u) make_unit(power
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u * mui::dim::make_unit (power, uW, u *1e-6) namespace mechanical
 
 mui::dim::electrical::make_unit (charge, C, u) make_unit(charge
 
u * mui::dim::electrical::make_unit (voltage, kV, u *1e3) make_unit(voltage
 
u u mui::dim::electrical::make_unit (voltage, mV, u *1e-3) make_unit(capacitance
 
u u u mui::dim::electrical::make_unit (capacitance, mF, u *1e-3) make_unit(capacitance
 
u u u u * mui::dim::electrical::make_unit (capacitance, nF, u *1e-9) make_unit(capacitance
 
u u u u u * mui::dim::electrical::make_unit (resistance, Mohm, u *1e6) make_unit(resistance
 
u u u u u u * mui::dim::electrical::make_unit (resistance, ohm, u) make_unit(conductance
 
 mui::dim::magnetic::make_unit (flux, Wb, u) make_unit(strength
 
 mui::dim::optical::make_unit (flux, lm, u) make_unit(illuminance
 
 mui::dim::radioactive::make_unit (activity, Bq, u) make_unit(dose
 

Variables

 mui::dim::kg
 
mui::dim::mg
 
u u mui::dim::m
 
u u u mui::dim::mm
 
u u u u mui::dim::nm
 
u u u u u mui::dim::day
 
u u u u u u mui::dim::min
 
u u u u u u u mui::dim::ms
 
u u u u u u u u mui::dim::ns
 
u u u u u u u u u mui::dim::fs
 
u u u u u u u u u u mui::dim::C
 
u u u u u u u u u u u mui::dim::Amp
 
u u u u u u u u u u u u mui::dim::cd
 
u u u u u u u u u u u u u mui::dim::nibble
 
u u u u u u u u u u u u u u mui::dim::KB
 
u u u u u u u u u u u u u u u mui::dim::GB
 
u u u u u u u u u u u u u u u u mui::dim::PB
 
u u u u u u u u u u u u u u u u u mui::dim::Hz
 
u u u u u u u u u u u u u u u u u u mui::dim::G
 
u u u u u u u u u u u u u u u u u u u mui::dim::N
 
u u u u u u u u u u u u u u u u u u u u mui::dim::uN
 
u u u u u u u u u u u u u u u u u u u u u mui::dim::pN
 
u u u u u u u u u u u u u u u u u u u u u u mui::dim::MPa
 
u u u u u u u u u u u u u u u u u u u u u u u mui::dim::Pa
 
u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::MJ
 
u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::J
 
u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::uJ
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::pJ
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::sr
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::kW
 
u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u mui::dim::mW
 
 mui::dim::electrical::e
 
mui::dim::electrical::V
 
u u mui::dim::electrical::F
 
u u u mui::dim::electrical::uF
 
u u u u mui::dim::electrical::pF
 
u u u u u mui::dim::electrical::kohm
 
u u u u u u mui::dim::electrical::S
 
 mui::dim::magnetic::T
 
 mui::dim::optical::lux
 
 mui::dim::radioactive::Gy
 

Detailed Description

File providing data specialisms at different dimensionalities.

Author
Y. H. Tang
Date
20 March 2014

Macro Definition Documentation

◆ make_unit

#define make_unit (   dimension,
  suffix,
  conversion 
)
Value:
inline dimension operator "" _##suffix ( long double u ) { \
return dimension( conversion ); \
} \
inline dimension operator "" _##suffix ( unsigned long long u ) { \
return dimension( conversion ); \
}