Alamo
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends
Unit Struct Reference

#include <Unit.H>

Inheritance diagram for Unit:

Public Types

enum class  Type {
  Length =0 , Time =1 , Mass =2 , Temperature =3 ,
  Current =4 , Amount =5 , LuminousIntensity =6
}
 

Public Member Functions

 Unit (const std::pair< double, std::array< int, 7 > > &p)
 
bool isType (const Unit &test) const
 
Unit operator* (const Unit &rhs)
 
Unit operator/ (const Unit &rhs)
 
Unit operator^ (const int &rhs)
 
double normalized_value () const
 
std::string normalized_unitstring () const
 

Static Public Member Functions

static Unit Less ()
 
static Unit Length ()
 
static Unit Time ()
 
static Unit Mass ()
 
static Unit Temperature ()
 
static Unit Current ()
 
static Unit Amount ()
 
static Unit LuminousIntensity ()
 
static Unit Area ()
 
static Unit Volume ()
 
static Unit Velocity ()
 
static Unit Acceleration ()
 
static Unit Force ()
 
static Unit Momentum ()
 
static Unit Impulse ()
 
static Unit Pressure ()
 
static Unit Energy ()
 
static Unit Power ()
 
static Unit Density ()
 
static Unit SpecificWeight ()
 
static Unit Work ()
 
static Unit SpecificHeatCapacity ()
 
static Unit ThermalConductivity ()
 
static Unit ThermalDiffusivity ()
 
static Unit HeatFlux ()
 
static Unit HeatTransferCoefficient ()
 
static Unit Charge ()
 
static Unit Voltage ()
 
static Unit Resistance ()
 
static Unit Capacitance ()
 
static Unit Conductance ()
 
static Unit MagneticFlux ()
 
static Unit MagneticField ()
 
static Unit Inductance ()
 
static Unit MolarMass ()
 
static Unit Concentration ()
 
static Unit MolarEnergy ()
 
static Unit LuminousFlux ()
 
static Unit Illuminance ()
 
static std::map< std::string, int > ParseUnitString (const std::string &input)
 
static Unit Parse (double val, std::string unitstring)
 
static Unit Parse (std::string unit)
 
static Unit StringParse (std::string unitstring)
 
static void setLengthUnit (std::string unit)
 
static void setTimeUnit (std::string unit)
 

Static Public Attributes

static const std::map< std::string, std::pair< double, std::array< int, 7 > > > base_units
 
static const std::map< std::string, std::pair< double, std::string > > compound
 
static std::array< std::pair< std::string, double >, 7 > normalization
 

Friends

Unit operator* (double lhs, const Unit &rhs)
 
Unit operator/ (double lhs, const Unit &rhs)
 
std::ostream & operator<< (std::ostream &out, const Unit &a)
 

Detailed Description

Definition at line 19 of file Unit.H.

Member Enumeration Documentation

◆ Type

enum class Unit::Type
strong
Enumerator
Length 
Time 
Mass 
Temperature 
Current 
Amount 
LuminousIntensity 

Definition at line 25 of file Unit.H.

Constructor & Destructor Documentation

◆ Unit()

Unit::Unit ( const std::pair< double, std::array< int, 7 > > &  p)
inline

Definition at line 253 of file Unit.H.

Member Function Documentation

◆ Acceleration()

static Unit Unit::Acceleration ( )
inlinestatic

Definition at line 200 of file Unit.H.

◆ Amount()

static Unit Unit::Amount ( )
inlinestatic

Definition at line 193 of file Unit.H.

◆ Area()

static Unit Unit::Area ( )
inlinestatic

Definition at line 197 of file Unit.H.

◆ Capacitance()

static Unit Unit::Capacitance ( )
inlinestatic

Definition at line 222 of file Unit.H.

◆ Charge()

static Unit Unit::Charge ( )
inlinestatic

Definition at line 219 of file Unit.H.

◆ Concentration()

static Unit Unit::Concentration ( )
inlinestatic

Definition at line 229 of file Unit.H.

◆ Conductance()

static Unit Unit::Conductance ( )
inlinestatic

Definition at line 223 of file Unit.H.

◆ Current()

static Unit Unit::Current ( )
inlinestatic

Definition at line 192 of file Unit.H.

◆ Density()

static Unit Unit::Density ( )
inlinestatic

Definition at line 208 of file Unit.H.

◆ Energy()

static Unit Unit::Energy ( )
inlinestatic

Definition at line 206 of file Unit.H.

◆ Force()

static Unit Unit::Force ( )
inlinestatic

Definition at line 202 of file Unit.H.

◆ HeatFlux()

static Unit Unit::HeatFlux ( )
inlinestatic

Definition at line 215 of file Unit.H.

◆ HeatTransferCoefficient()

static Unit Unit::HeatTransferCoefficient ( )
inlinestatic

Definition at line 216 of file Unit.H.

◆ Illuminance()

static Unit Unit::Illuminance ( )
inlinestatic

Definition at line 233 of file Unit.H.

◆ Impulse()

static Unit Unit::Impulse ( )
inlinestatic

Definition at line 204 of file Unit.H.

◆ Inductance()

static Unit Unit::Inductance ( )
inlinestatic

Definition at line 226 of file Unit.H.

◆ isType()

bool Unit::isType ( const Unit test) const
inline

Definition at line 353 of file Unit.H.

◆ Length()

static Unit Unit::Length ( )
inlinestatic

Definition at line 188 of file Unit.H.

◆ Less()

static Unit Unit::Less ( )
inlinestatic

Definition at line 187 of file Unit.H.

◆ LuminousFlux()

static Unit Unit::LuminousFlux ( )
inlinestatic

Definition at line 232 of file Unit.H.

◆ LuminousIntensity()

static Unit Unit::LuminousIntensity ( )
inlinestatic

Definition at line 194 of file Unit.H.

◆ MagneticField()

static Unit Unit::MagneticField ( )
inlinestatic

Definition at line 225 of file Unit.H.

◆ MagneticFlux()

static Unit Unit::MagneticFlux ( )
inlinestatic

Definition at line 224 of file Unit.H.

◆ Mass()

static Unit Unit::Mass ( )
inlinestatic

Definition at line 190 of file Unit.H.

◆ MolarEnergy()

static Unit Unit::MolarEnergy ( )
inlinestatic

Definition at line 230 of file Unit.H.

◆ MolarMass()

static Unit Unit::MolarMass ( )
inlinestatic

Definition at line 228 of file Unit.H.

◆ Momentum()

static Unit Unit::Momentum ( )
inlinestatic

Definition at line 203 of file Unit.H.

◆ normalized_unitstring()

std::string Unit::normalized_unitstring ( ) const
inline

Definition at line 410 of file Unit.H.

◆ normalized_value()

double Unit::normalized_value ( ) const
inline

Definition at line 401 of file Unit.H.

◆ operator*()

Unit Unit::operator* ( const Unit rhs)
inline

Definition at line 358 of file Unit.H.

◆ operator/()

Unit Unit::operator/ ( const Unit rhs)
inline

Definition at line 376 of file Unit.H.

◆ operator^()

Unit Unit::operator^ ( const int &  rhs)
inline

Definition at line 383 of file Unit.H.

◆ Parse() [1/2]

static Unit Unit::Parse ( double  val,
std::string  unitstring 
)
inlinestatic

Definition at line 257 of file Unit.H.

◆ Parse() [2/2]

static Unit Unit::Parse ( std::string  unit)
inlinestatic

Definition at line 263 of file Unit.H.

◆ ParseUnitString()

std::map< std::string, int > Unit::ParseUnitString ( const std::string &  input)
inlinestatic

Definition at line 454 of file Unit.H.

◆ Power()

static Unit Unit::Power ( )
inlinestatic

Definition at line 207 of file Unit.H.

◆ Pressure()

static Unit Unit::Pressure ( )
inlinestatic

Definition at line 205 of file Unit.H.

◆ Resistance()

static Unit Unit::Resistance ( )
inlinestatic

Definition at line 221 of file Unit.H.

◆ setLengthUnit()

static void Unit::setLengthUnit ( std::string  unit)
inlinestatic

Definition at line 338 of file Unit.H.

◆ setTimeUnit()

static void Unit::setTimeUnit ( std::string  unit)
inlinestatic

Definition at line 345 of file Unit.H.

◆ SpecificHeatCapacity()

static Unit Unit::SpecificHeatCapacity ( )
inlinestatic

Definition at line 212 of file Unit.H.

◆ SpecificWeight()

static Unit Unit::SpecificWeight ( )
inlinestatic

Definition at line 209 of file Unit.H.

◆ StringParse()

static Unit Unit::StringParse ( std::string  unitstring)
inlinestatic

Definition at line 309 of file Unit.H.

◆ Temperature()

static Unit Unit::Temperature ( )
inlinestatic

Definition at line 191 of file Unit.H.

◆ ThermalConductivity()

static Unit Unit::ThermalConductivity ( )
inlinestatic

Definition at line 213 of file Unit.H.

◆ ThermalDiffusivity()

static Unit Unit::ThermalDiffusivity ( )
inlinestatic

Definition at line 214 of file Unit.H.

◆ Time()

static Unit Unit::Time ( )
inlinestatic

Definition at line 189 of file Unit.H.

◆ Velocity()

static Unit Unit::Velocity ( )
inlinestatic

Definition at line 199 of file Unit.H.

◆ Voltage()

static Unit Unit::Voltage ( )
inlinestatic

Definition at line 220 of file Unit.H.

◆ Volume()

static Unit Unit::Volume ( )
inlinestatic

Definition at line 198 of file Unit.H.

◆ Work()

static Unit Unit::Work ( )
inlinestatic

Definition at line 210 of file Unit.H.

Friends And Related Symbol Documentation

◆ operator*

Unit operator* ( double  lhs,
const Unit rhs 
)
friend

Definition at line 365 of file Unit.H.

◆ operator/

Unit operator/ ( double  lhs,
const Unit rhs 
)
friend

Definition at line 371 of file Unit.H.

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
const Unit a 
)
friend

Definition at line 394 of file Unit.H.

Field Documentation

◆ base_units

const std::map<std::string, std::pair<double,std::array<int,7> > > Unit::base_units
inlinestatic
Initial value:
=
{
{"1", {1.0, {0,0,0,0,0,0,0}}},
{"m", {1.0, {1,0,0,0,0,0,0}}},
{"s", {1.0, {0,1,0,0,0,0,0}}},
{"kg", {1.0, {0,0,1,0,0,0,0}}},
{"K", {1.0, {0,0,0,1,0,0,0}}},
{"A", {1.0, {0,0,0,0,1,0,0}}},
{"mol",{1.0, {0,0,0,0,0,1,0}}},
{"cd", {1.0, {0,0,0,0,0,0,1}}}
}

Definition at line 29 of file Unit.H.

◆ compound

const std::map<std::string, std::pair<double,std::string> > Unit::compound
inlinestatic

Definition at line 46 of file Unit.H.

◆ normalization

std::array<std::pair<std::string,double>, 7> Unit::normalization
inlinestatic
Initial value:
= {
std::pair{"m", 1.0},
std::pair{"s", 1.0},
std::pair{"kg", 1.0},
std::pair{"K", 1.0},
std::pair{"A", 1.0},
std::pair{"mol",1.0},
std::pair{"cd", 1.0}
}

Definition at line 242 of file Unit.H.


The documentation for this struct was generated from the following file: