Physical Quantities  v1.0.0
C++ library of physical quantities, physical models, and units of measure for scientific computing. https://github.com/acodcha/phq
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | List of all members
PhQ::GasConstant< NumericType > Class Template Reference

Gas constant of a gas. For the mass-specific gas constant, see PhQ::SpecificGasConstant. More...

#include "GasConstant.hpp"

Public Member Functions

 GasConstant ()=default
 Default constructor. Constructs a gas constant with an uninitialized value. More...
 
 GasConstant (const NumericType value, const Unit::HeatCapacity unit)
 Constructor. Constructs a gas constant with a given value expressed in a given heat capacity unit. More...
 
constexpr GasConstant (const IsobaricHeatCapacity< NumericType > &isobaric_heat_capacity, const IsochoricHeatCapacity< NumericType > &isochoric_heat_capacity)
 Constructor. Constructs a gas constant from a given isobaric heat capacity and isochoric heat capacity using Mayer's relation. More...
 
constexpr GasConstant (const HeatCapacityRatio< NumericType > &heat_capacity_ratio, const IsobaricHeatCapacity< NumericType > &isobaric_heat_capacity)
 Constructor. Constructs a gas constant from a given isobaric heat capacity and heat capacity ratio using the definition of the heat capacity ratio and Mayer's relation. More...
 
constexpr GasConstant (const HeatCapacityRatio< NumericType > &heat_capacity_ratio, const IsochoricHeatCapacity< NumericType > &isochoric_heat_capacity)
 Constructor. Constructs a gas constant from a given isochoric heat capacity and heat capacity ratio using the definition of the heat capacity ratio and Mayer's relation. More...
 
constexpr GasConstant (const SpecificGasConstant< NumericType > &specific_gas_constant, const Mass< NumericType > &mass)
 Constructor. Constructs a gas constant from a given specific gas constant and mass using the definition of the specific gas constant. More...
 
 ~GasConstant () noexcept=default
 Destructor. Destroys this gas constant. More...
 
constexpr GasConstant (const GasConstant< NumericType > &other)=default
 Copy constructor. Constructs a gas constant by copying another one. More...
 
template<typename OtherNumericType >
constexpr GasConstant (const GasConstant< OtherNumericType > &other)
 Copy constructor. Constructs a gas constant by copying another one. More...
 
constexpr GasConstant (GasConstant< NumericType > &&other) noexcept=default
 Move constructor. Constructs a gas constant by moving another one. More...
 
constexpr GasConstant< NumericType > & operator= (const GasConstant< NumericType > &other)=default
 Copy assignment operator. Assigns this gas constant by copying another one. More...
 
template<typename OtherNumericType >
constexpr GasConstant< NumericType > & operator= (const GasConstant< OtherNumericType > &other)
 Copy assignment operator. Assigns this gas constant by copying another one. More...
 
constexpr GasConstant< NumericType > & operator= (GasConstant< NumericType > &&other) noexcept=default
 Move assignment operator. Assigns this gas constant by moving another one. More...
 
constexpr GasConstant< NumericType > operator+ (const GasConstant< NumericType > &gas_constant) const
 
constexpr IsobaricHeatCapacity< NumericType > operator+ (const IsochoricHeatCapacity< NumericType > &isochoric_heat_capacity) const
 
constexpr GasConstant< NumericType > operator- (const GasConstant< NumericType > &gas_constant) const
 
constexpr GasConstant< NumericType > operator* (const NumericType number) const
 
constexpr GasConstant< NumericType > operator/ (const NumericType number) const
 
constexpr SpecificGasConstant< NumericType > operator/ (const Mass< NumericType > &mass) const
 
constexpr Mass< NumericType > operator/ (const SpecificGasConstant< NumericType > &specific_gas_constant) const
 
constexpr NumericType operator/ (const GasConstant< NumericType > &gas_constant) const noexcept
 
constexpr void operator+= (const GasConstant< NumericType > &gas_constant) noexcept
 
constexpr void operator-= (const GasConstant< NumericType > &gas_constant) noexcept
 
constexpr void operator*= (const NumericType number) noexcept
 
constexpr void operator/= (const NumericType number) noexcept
 
constexpr double Value () const noexcept
 Value of this physical quantity expressed in its standard unit of measure. More...
 
double Value (const Unit::HeatCapacity unit) const
 Value of this physical quantity expressed in a given unit of measure. More...
 
constexpr double StaticValue () const
 Value of this physical quantity expressed in a given unit of measure. This method can be evaluated statically at compile-time. More...
 
constexpr double & MutableValue () noexcept
 Returns the value of this physical quantity expressed in its standard unit of measure as a mutable value. More...
 
constexpr void SetValue (const double value) noexcept
 Sets the value of this physical quantity expressed in its standard unit of measure to the given value. More...
 
std::string Print () const
 Prints this physical quantity as a string. This physical quantity's value is expressed in its standard unit of measure. More...
 
std::string Print (const Unit::HeatCapacity unit) const
 Prints this physical quantity as a string. This physical quantity's value is expressed in the given unit of measure. More...
 
std::string JSON () const
 Serializes this physical quantity as a JSON message. This physical quantity's value is expressed in its standard unit of measure. More...
 
std::string JSON (const Unit::HeatCapacity unit) const
 Serializes this physical quantity as a JSON message. This physical quantity's value is expressed in the given unit of measure. More...
 
std::string XML () const
 Serializes this physical quantity as an XML message. This physical quantity's value is expressed in its standard unit of measure. More...
 
std::string XML (const Unit::HeatCapacity unit) const
 Serializes this physical quantity as an XML message. This physical quantity's value is expressed in the given unit of measure. More...
 
std::string YAML () const
 Serializes this physical quantity as a YAML message. This physical quantity's value is expressed in its standard unit of measure. More...
 
std::string YAML (const Unit::HeatCapacity unit) const
 Serializes this physical quantity as a YAML message. This physical quantity's value is expressed in the given unit of measure. More...
 

Static Public Member Functions

static constexpr GasConstant< NumericType > Zero ()
 Statically creates a gas constant of zero. More...
 
template<Unit::HeatCapacity Unit>
static constexpr GasConstant< NumericType > Create (const NumericType value)
 Statically creates a gas constant with a given value expressed in a given heat capacity unit. More...
 
static constexpr const PhQ::DimensionsDimensions ()
 Physical dimension set of this physical quantity. More...
 
static constexpr Unit::HeatCapacity Unit ()
 Standard unit of measure for this physical quantity. This physical quantity's value is stored internally in this unit of measure. More...
 

Protected Attributes

double value
 Value of this physical quantity expressed in its standard unit of measure. More...
 

Private Member Functions

constexpr GasConstant (const NumericType value)
 Constructor. Constructs a gas constant with a given value expressed in the standard heat capacity unit. More...
 

Detailed Description

template<typename NumericType = double>
class PhQ::GasConstant< NumericType >

Gas constant of a gas. For the mass-specific gas constant, see PhQ::SpecificGasConstant.

Definition at line 46 of file GasConstant.hpp.

Constructor & Destructor Documentation

◆ GasConstant() [1/10]

template<typename NumericType = double>
PhQ::GasConstant< NumericType >::GasConstant ( )
default

Default constructor. Constructs a gas constant with an uninitialized value.

◆ GasConstant() [2/10]

template<typename NumericType = double>
PhQ::GasConstant< NumericType >::GasConstant ( const NumericType  value,
const Unit::HeatCapacity  unit 
)
inline

Constructor. Constructs a gas constant with a given value expressed in a given heat capacity unit.

Definition at line 53 of file GasConstant.hpp.

◆ GasConstant() [3/10]

template<typename NumericType = double>
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const IsobaricHeatCapacity< NumericType > &  isobaric_heat_capacity,
const IsochoricHeatCapacity< NumericType > &  isochoric_heat_capacity 
)
inlineconstexpr

Constructor. Constructs a gas constant from a given isobaric heat capacity and isochoric heat capacity using Mayer's relation.

Definition at line 58 of file GasConstant.hpp.

◆ GasConstant() [4/10]

template<typename NumericType = double>
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const HeatCapacityRatio< NumericType > &  heat_capacity_ratio,
const IsobaricHeatCapacity< NumericType > &  isobaric_heat_capacity 
)
inlineconstexpr

Constructor. Constructs a gas constant from a given isobaric heat capacity and heat capacity ratio using the definition of the heat capacity ratio and Mayer's relation.

Definition at line 64 of file GasConstant.hpp.

◆ GasConstant() [5/10]

template<typename NumericType = double>
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const HeatCapacityRatio< NumericType > &  heat_capacity_ratio,
const IsochoricHeatCapacity< NumericType > &  isochoric_heat_capacity 
)
inlineconstexpr

Constructor. Constructs a gas constant from a given isochoric heat capacity and heat capacity ratio using the definition of the heat capacity ratio and Mayer's relation.

Definition at line 71 of file GasConstant.hpp.

◆ GasConstant() [6/10]

template<typename NumericType >
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const SpecificGasConstant< NumericType > &  specific_gas_constant,
const Mass< NumericType > &  mass 
)
inlineconstexpr

Constructor. Constructs a gas constant from a given specific gas constant and mass using the definition of the specific gas constant.

Definition at line 259 of file SpecificGasConstant.hpp.

◆ ~GasConstant()

template<typename NumericType = double>
PhQ::GasConstant< NumericType >::~GasConstant ( )
defaultnoexcept

Destructor. Destroys this gas constant.

◆ GasConstant() [7/10]

template<typename NumericType = double>
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const GasConstant< NumericType > &  other)
constexprdefault

Copy constructor. Constructs a gas constant by copying another one.

◆ GasConstant() [8/10]

template<typename NumericType = double>
template<typename OtherNumericType >
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const GasConstant< OtherNumericType > &  other)
inlineexplicitconstexpr

Copy constructor. Constructs a gas constant by copying another one.

Definition at line 89 of file GasConstant.hpp.

◆ GasConstant() [9/10]

template<typename NumericType = double>
constexpr PhQ::GasConstant< NumericType >::GasConstant ( GasConstant< NumericType > &&  other)
constexprdefaultnoexcept

Move constructor. Constructs a gas constant by moving another one.

◆ GasConstant() [10/10]

template<typename NumericType = double>
constexpr PhQ::GasConstant< NumericType >::GasConstant ( const NumericType  value)
inlineexplicitconstexprprivate

Constructor. Constructs a gas constant with a given value expressed in the standard heat capacity unit.

Definition at line 171 of file GasConstant.hpp.

Member Function Documentation

◆ Create()

template<typename NumericType = double>
template<Unit::HeatCapacity Unit>
static constexpr GasConstant<NumericType> PhQ::GasConstant< NumericType >::Create ( const NumericType  value)
inlinestaticconstexpr

Statically creates a gas constant with a given value expressed in a given heat capacity unit.

Definition at line 117 of file GasConstant.hpp.

References PhQ::DimensionalScalar< Unit::HeatCapacity, double >::value.

◆ Dimensions()

static constexpr const PhQ::Dimensions& PhQ::DimensionalScalar< Unit::HeatCapacity , double >::Dimensions ( )
inlinestaticconstexprinherited

Physical dimension set of this physical quantity.

Definition at line 54 of file DimensionalScalar.hpp.

◆ JSON() [1/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::JSON ( ) const
inlineinherited

Serializes this physical quantity as a JSON message. This physical quantity's value is expressed in its standard unit of measure.

Definition at line 107 of file DimensionalScalar.hpp.

◆ JSON() [2/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::JSON ( const Unit::HeatCapacity  unit) const
inlineinherited

Serializes this physical quantity as a JSON message. This physical quantity's value is expressed in the given unit of measure.

Definition at line 117 of file DimensionalScalar.hpp.

◆ MutableValue()

constexpr double & PhQ::DimensionalScalar< Unit::HeatCapacity , double >::MutableValue ( )
inlineconstexprnoexceptinherited

Returns the value of this physical quantity expressed in its standard unit of measure as a mutable value.

Definition at line 83 of file DimensionalScalar.hpp.

◆ operator*()

template<typename NumericType = double>
constexpr GasConstant<NumericType> PhQ::GasConstant< NumericType >::operator* ( const NumericType  number) const
inlineconstexpr

◆ operator*=()

template<typename NumericType = double>
constexpr void PhQ::GasConstant< NumericType >::operator*= ( const NumericType  number)
inlineconstexprnoexcept

◆ operator+() [1/2]

template<typename NumericType = double>
constexpr GasConstant<NumericType> PhQ::GasConstant< NumericType >::operator+ ( const GasConstant< NumericType > &  gas_constant) const
inlineconstexpr

◆ operator+() [2/2]

template<typename NumericType = double>
constexpr IsobaricHeatCapacity<NumericType> PhQ::GasConstant< NumericType >::operator+ ( const IsochoricHeatCapacity< NumericType > &  isochoric_heat_capacity) const
inlineconstexpr

Definition at line 126 of file GasConstant.hpp.

◆ operator+=()

template<typename NumericType = double>
constexpr void PhQ::GasConstant< NumericType >::operator+= ( const GasConstant< NumericType > &  gas_constant)
inlineconstexprnoexcept

◆ operator-()

template<typename NumericType = double>
constexpr GasConstant<NumericType> PhQ::GasConstant< NumericType >::operator- ( const GasConstant< NumericType > &  gas_constant) const
inlineconstexpr

◆ operator-=()

template<typename NumericType = double>
constexpr void PhQ::GasConstant< NumericType >::operator-= ( const GasConstant< NumericType > &  gas_constant)
inlineconstexprnoexcept

◆ operator/() [1/4]

template<typename NumericType = double>
constexpr NumericType PhQ::GasConstant< NumericType >::operator/ ( const GasConstant< NumericType > &  gas_constant) const
inlineconstexprnoexcept

◆ operator/() [2/4]

template<typename NumericType >
constexpr SpecificGasConstant< NumericType > PhQ::GasConstant< NumericType >::operator/ ( const Mass< NumericType > &  mass) const
inlineconstexpr

Definition at line 320 of file SpecificGasConstant.hpp.

◆ operator/() [3/4]

template<typename NumericType = double>
constexpr GasConstant<NumericType> PhQ::GasConstant< NumericType >::operator/ ( const NumericType  number) const
inlineconstexpr

◆ operator/() [4/4]

template<typename NumericType >
constexpr Mass< NumericType > PhQ::GasConstant< NumericType >::operator/ ( const SpecificGasConstant< NumericType > &  specific_gas_constant) const
inlineconstexpr

Definition at line 326 of file SpecificGasConstant.hpp.

◆ operator/=()

template<typename NumericType = double>
constexpr void PhQ::GasConstant< NumericType >::operator/= ( const NumericType  number)
inlineconstexprnoexcept

◆ operator=() [1/3]

template<typename NumericType = double>
constexpr GasConstant<NumericType>& PhQ::GasConstant< NumericType >::operator= ( const GasConstant< NumericType > &  other)
constexprdefault

Copy assignment operator. Assigns this gas constant by copying another one.

◆ operator=() [2/3]

template<typename NumericType = double>
template<typename OtherNumericType >
constexpr GasConstant<NumericType>& PhQ::GasConstant< NumericType >::operator= ( const GasConstant< OtherNumericType > &  other)
inlineconstexpr

Copy assignment operator. Assigns this gas constant by copying another one.

Definition at line 100 of file GasConstant.hpp.

References PhQ::DimensionalScalar< UnitType, NumericType >::Value(), and PhQ::DimensionalScalar< Unit::HeatCapacity, double >::value.

◆ operator=() [3/3]

template<typename NumericType = double>
constexpr GasConstant<NumericType>& PhQ::GasConstant< NumericType >::operator= ( GasConstant< NumericType > &&  other)
constexprdefaultnoexcept

Move assignment operator. Assigns this gas constant by moving another one.

◆ Print() [1/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::Print ( ) const
inlineinherited

Prints this physical quantity as a string. This physical quantity's value is expressed in its standard unit of measure.

Definition at line 95 of file DimensionalScalar.hpp.

◆ Print() [2/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::Print ( const Unit::HeatCapacity  unit) const
inlineinherited

Prints this physical quantity as a string. This physical quantity's value is expressed in the given unit of measure.

Definition at line 101 of file DimensionalScalar.hpp.

◆ SetValue()

constexpr void PhQ::DimensionalScalar< Unit::HeatCapacity , double >::SetValue ( const double  value)
inlineconstexprnoexceptinherited

Sets the value of this physical quantity expressed in its standard unit of measure to the given value.

Definition at line 89 of file DimensionalScalar.hpp.

◆ StaticValue()

constexpr double PhQ::DimensionalScalar< Unit::HeatCapacity , double >::StaticValue ( ) const
inlineconstexprinherited

Value of this physical quantity expressed in a given unit of measure. This method can be evaluated statically at compile-time.

Definition at line 77 of file DimensionalScalar.hpp.

◆ Unit()

static constexpr Unit::HeatCapacity PhQ::DimensionalScalar< Unit::HeatCapacity , double >::Unit ( )
inlinestaticconstexprinherited

Standard unit of measure for this physical quantity. This physical quantity's value is stored internally in this unit of measure.

Definition at line 60 of file DimensionalScalar.hpp.

◆ Value() [1/2]

constexpr double PhQ::DimensionalScalar< Unit::HeatCapacity , double >::Value ( ) const
inlineconstexprnoexceptinherited

Value of this physical quantity expressed in its standard unit of measure.

Definition at line 65 of file DimensionalScalar.hpp.

◆ Value() [2/2]

double PhQ::DimensionalScalar< Unit::HeatCapacity , double >::Value ( const Unit::HeatCapacity  unit) const
inlineinherited

Value of this physical quantity expressed in a given unit of measure.

Definition at line 70 of file DimensionalScalar.hpp.

◆ XML() [1/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::XML ( ) const
inlineinherited

Serializes this physical quantity as an XML message. This physical quantity's value is expressed in its standard unit of measure.

Definition at line 127 of file DimensionalScalar.hpp.

◆ XML() [2/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::XML ( const Unit::HeatCapacity  unit) const
inlineinherited

Serializes this physical quantity as an XML message. This physical quantity's value is expressed in the given unit of measure.

Definition at line 137 of file DimensionalScalar.hpp.

◆ YAML() [1/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::YAML ( ) const
inlineinherited

Serializes this physical quantity as a YAML message. This physical quantity's value is expressed in its standard unit of measure.

Definition at line 147 of file DimensionalScalar.hpp.

◆ YAML() [2/2]

std::string PhQ::DimensionalScalar< Unit::HeatCapacity , double >::YAML ( const Unit::HeatCapacity  unit) const
inlineinherited

Serializes this physical quantity as a YAML message. This physical quantity's value is expressed in the given unit of measure.

Definition at line 157 of file DimensionalScalar.hpp.

◆ Zero()

template<typename NumericType = double>
static constexpr GasConstant<NumericType> PhQ::GasConstant< NumericType >::Zero ( )
inlinestaticconstexpr

Statically creates a gas constant of zero.

Definition at line 110 of file GasConstant.hpp.

Member Data Documentation

◆ value

double PhQ::DimensionalScalar< Unit::HeatCapacity , double >::value
protectedinherited

Value of this physical quantity expressed in its standard unit of measure.

Definition at line 221 of file DimensionalScalar.hpp.


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