namespace Foam
{

/* * * * * * * * * * * * * public constants  * * * * * * * * * * * * */

//- Universal gas constant (default in [J/(kmol K)])
const scalar specie::RR = dimensionedConstant("R", 8314.51);

//- Standard pressure (default in [Pa])
const scalar specie::Pstd = dimensionedConstant("Pstd", 1.0e5);

//- Standard temperature (default in [K])
const scalar specie::Tstd = dimensionedConstant("Tstd", 298.15);


// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //

specie::specie(Istream& is)
:
    name_(is),
    nMoles_(readScalar(is)),
    molWeight_(readScalar(is))
{
    is.check("specie::specie(Istream& is)");
}


// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //

Ostream& operator<<(Ostream& os, const specie& st)
{
    os  << st.name_ << tab
        << st.nMoles_ << tab
        << st.molWeight_;

    os.check("Ostream& operator<<(Ostream& os, const specie& st)");
    return os;
}


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam
#include "fundamentalConstants.H"

#include "universalConstants.H"
#include "electromagneticConstants.H"
#include "atomicConstants.H"
#include "physicoChemicalConstants.H"

#include "dimensionedConstants.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// Universal constants

const Foam::dimensionedScalar Foam::constant::universal::c
(
    dimensionedConstant(universal::group, "c")
);


const Foam::dimensionedScalar Foam::constant::universal::G
(
    dimensionedConstant(universal::group, "G")
);


const Foam::dimensionedScalar Foam::constant::universal::h
(
    dimensionedConstant(universal::group, "h")
);

#include "physicoChemicalConstants.H"

#include "dimensionedConstants.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

const char* const Foam::constant::physicoChemical::group = "physicoChemical";


const Foam::dimensionedScalar Foam::constant::physicoChemical::R
(
    dimensionedConstant
    (
        group,
        "R",
        dimensionedScalar
        (
            "R",
            NA*k
        )
    )
);


const Foam::dimensionedScalar Foam::constant::physicoChemical::F
(
    dimensionedConstant
    (
        group,
        "F",
        dimensionedScalar
        (
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

\*---------------------------------------------------------------------------*/

#include "universalConstants.H"
#include "mathematicalConstants.H"

#include "dimensionedConstants.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

const char* const Foam::constant::universal::group = "universal";


const Foam::dimensionedScalar Foam::constant::universal::hr
(
    dimensionedConstant
    (
        group,
        "hr",
        dimensionedScalar
        (
            "hr",
            h/(dimensionedScalar("C", dimless, constant::mathematical::twoPi))
        )
    )
);


// ************************************************************************* //