Cantera 2.6.0
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Units Class Reference

A representation of the units associated with a dimensional quantity. More...

#include <Units.h>

Public Member Functions

 Units (double factor=1.0, double mass=0, double length=0, double time=0, double temperature=0, double current=0, double quantity=0)
 Create a Units object with the specified dimensions. More...
 
 Units (const std::string &units, bool force_unity=false)
 Create an object with the specified dimensions. More...
 
bool convertible (const Units &other) const
 Returns true if the specified Units are dimensionally consistent. More...
 
double factor () const
 Return the factor for converting from this unit to Cantera's base units. More...
 
Unitsoperator*= (const Units &other)
 Multiply two Units objects, combining their conversion factors and dimensions. More...
 
std::string str (bool skip_unity=true) const
 Provide a string representation of these Units. More...
 
Units pow (double exponent) const
 Raise these Units to a power, changing both the conversion factor and the dimensions of these Units. More...
 
bool operator== (const Units &other) const
 
double dimension (const std::string &primary) const
 Return dimension of primary unit component ("mass", "length", "time", "temperature", "current" or "quantity") More...
 

Private Member Functions

void scale (double k)
 Scale the unit by the factor k More...
 

Private Attributes

double m_factor
 conversion factor to Cantera base units More...
 
double m_mass_dim
 
double m_length_dim
 
double m_time_dim
 
double m_temperature_dim
 
double m_current_dim
 
double m_quantity_dim
 
double m_pressure_dim
 pseudo-dimension to track explicit pressure units More...
 
double m_energy_dim
 pseudo-dimension to track explicit energy units More...
 

Friends

class UnitSystem
 

Detailed Description

A representation of the units associated with a dimensional quantity.

Used for converting quantities between unit systems and checking for dimensional consistency. Units objects are mainly used within UnitSystem class to convert values from a user-specified Unit system to Cantera's base units (SI + kmol).

Definition at line 29 of file Units.h.

Constructor & Destructor Documentation

◆ Units() [1/2]

Units ( double  factor = 1.0,
double  mass = 0,
double  length = 0,
double  time = 0,
double  temperature = 0,
double  current = 0,
double  quantity = 0 
)
explicit

Create a Units object with the specified dimensions.

Definition at line 109 of file Units.cpp.

References Units::m_energy_dim, and Units::m_pressure_dim.

Referenced by Units::pow().

◆ Units() [2/2]

Units ( const std::string &  units,
bool  force_unity = false 
)
explicit

Create an object with the specified dimensions.

Parameters
unitsA string representation of the units. See UnitSystem for a description of the formatting options.
force_unityensure that conversion factor is equal to one

Definition at line 133 of file Units.cpp.

References Units::factor(), Cantera::fpValueCheck(), Units::m_factor, Cantera::npos, Units::pow(), Units::scale(), Cantera::SmallNumber, Units::str(), and Cantera::trimCopy().

Member Function Documentation

◆ convertible()

bool convertible ( const Units other) const

Returns true if the specified Units are dimensionally consistent.

Definition at line 210 of file Units.cpp.

Referenced by UnitSystem::convertActivationEnergy(), UnitSystem::convertActivationEnergyFrom(), UnitSystem::setDefaultActivationEnergy(), and UnitSystem::setDefaults().

◆ factor()

double factor ( ) const
inline

◆ operator*=()

Units & operator*= ( const Units other)

Multiply two Units objects, combining their conversion factors and dimensions.

Definition at line 220 of file Units.cpp.

References Units::m_energy_dim, Units::m_factor, and Units::m_pressure_dim.

◆ str()

std::string str ( bool  skip_unity = true) const

Provide a string representation of these Units.

Parameters
skip_unitydo not print '1' if conversion factor is equal to one

Definition at line 245 of file Units.cpp.

References Units::factor(), Units::m_factor, and Cantera::SmallNumber.

Referenced by UnitSystem::setDefaults(), and Units::Units().

◆ pow()

Units pow ( double  exponent) const

Raise these Units to a power, changing both the conversion factor and the dimensions of these Units.

Definition at line 234 of file Units.cpp.

References Units::m_factor, and Units::Units().

Referenced by Reaction::calculateRateCoeffUnits(), ThreeBodyReaction2::calculateRateCoeffUnits(), FalloffReaction2::calculateRateCoeffUnits(), UnitStack::product(), and Units::Units().

◆ operator==()

bool operator== ( const Units other) const

Definition at line 301 of file Units.cpp.

◆ dimension()

double dimension ( const std::string &  primary) const

Return dimension of primary unit component ("mass", "length", "time", "temperature", "current" or "quantity")

Definition at line 314 of file Units.cpp.

Referenced by ArrheniusBase::setRateUnits().

◆ scale()

void scale ( double  k)
inlineprivate

Scale the unit by the factor k

Definition at line 70 of file Units.h.

References Units::m_factor.

Referenced by Units::Units().

Friends And Related Function Documentation

◆ UnitSystem

friend class UnitSystem
friend

Definition at line 82 of file Units.h.

Member Data Documentation

◆ m_factor

double m_factor
private

conversion factor to Cantera base units

Definition at line 72 of file Units.h.

Referenced by Units::factor(), Units::operator*=(), Units::pow(), Units::scale(), Units::str(), and Units::Units().

◆ m_mass_dim

double m_mass_dim
private

Definition at line 73 of file Units.h.

◆ m_length_dim

double m_length_dim
private

Definition at line 74 of file Units.h.

◆ m_time_dim

double m_time_dim
private

Definition at line 75 of file Units.h.

◆ m_temperature_dim

double m_temperature_dim
private

Definition at line 76 of file Units.h.

◆ m_current_dim

double m_current_dim
private

Definition at line 77 of file Units.h.

◆ m_quantity_dim

double m_quantity_dim
private

Definition at line 78 of file Units.h.

◆ m_pressure_dim

double m_pressure_dim
private

pseudo-dimension to track explicit pressure units

Definition at line 79 of file Units.h.

Referenced by Units::operator*=(), and Units::Units().

◆ m_energy_dim

double m_energy_dim
private

pseudo-dimension to track explicit energy units

Definition at line 80 of file Units.h.

Referenced by Units::operator*=(), and Units::Units().


The documentation for this class was generated from the following files: