Changeset 525 for trunk/src/core


Ignore:
Timestamp:
Sep 20, 2006 10:14:40 AM (18 years ago)
Author:
dkearney
Message:

added new pressure units pascal, bar, torr, mmHg, psi, atm. rewrote some of the test cases for units.

Location:
trunk/src/core
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/core/RpUnits.cc

    r520 r525  
    12121212    }
    12131213
     1214    // outVal.flags(std::ios::fixed);
     1215    // outVal.precision(10);
     1216
    12141217    if (showUnits) {
    12151218        outVal << numVal << toUnitsName;
     
    16731676        retVal = RpUnitsPreset::addPresetAll();
    16741677    }
    1675     else if (group.compare("energy") == 0) {
     1678    else if (group.compare(RP_TYPE_ENERGY) == 0) {
    16761679        retVal = RpUnitsPreset::addPresetEnergy();
    16771680    }
    1678     else if (group.compare("length") == 0) {
     1681    else if (group.compare(RP_TYPE_LENGTH) == 0) {
    16791682        retVal = RpUnitsPreset::addPresetLength();
    16801683    }
    1681     else if (group.compare("temp") == 0) {
     1684    else if (group.compare(RP_TYPE_TEMP) == 0) {
    16821685        retVal = RpUnitsPreset::addPresetTemp();
    16831686    }
    1684     else if (group.compare("time") == 0) {
     1687    else if (group.compare(RP_TYPE_TIME) == 0) {
    16851688        retVal = RpUnitsPreset::addPresetTime();
    16861689    }
    1687     else if (group.compare("volume") == 0) {
     1690    else if (group.compare(RP_TYPE_VOLUME) == 0) {
    16881691        retVal = RpUnitsPreset::addPresetVolume();
    16891692    }
    1690     else if (group.compare("angle") == 0) {
     1693    else if (group.compare(RP_TYPE_ANGLE) == 0) {
    16911694        retVal = RpUnitsPreset::addPresetAngle();
     1695    }
     1696    else if (group.compare(RP_TYPE_MASS) == 0) {
     1697        retVal = RpUnitsPreset::addPresetMass();
     1698    }
     1699    else if (group.compare(RP_TYPE_PRESSURE) == 0) {
     1700        retVal = RpUnitsPreset::addPresetPressure();
     1701    }
     1702    else if (group.compare(RP_TYPE_MISC) == 0) {
     1703        retVal = RpUnitsPreset::addPresetMisc();
    16921704    }
    16931705
     
    17161728    result += addPresetAngle();
    17171729    result += addPresetMass();
     1730    result += addPresetPressure();
    17181731    result += addPresetMisc();
    17191732
     
    19321945
    19331946/**********************************************************************/
     1947// METHOD: addPresetPressure()
     1948/// Add pressure related units to the dictionary
     1949/**
     1950 * http://www.ilpi.com/msds/ref/pressureunits.html
     1951 *
     1952 * Defines the following units:
     1953 *   bar                    (bar)
     1954 *   pascal                 (Pa)
     1955 *   pounds/(in^2)          (psi)
     1956 *   torr                   (torr)
     1957 *   millimeters Mercury    (mmHg)
     1958 *
     1959 * mmHg was added because as a convenience to those who have not
     1960 * yet switched over to the new representation of torr.
     1961 *
     1962 * Return codes: 0 success, anything else is error
     1963 */
     1964
     1965int
     1966RpUnitsPreset::addPresetPressure () {
     1967
     1968    RpUnits* atmosphere = RpUnits::define("atm", NULL, RP_TYPE_PRESSURE);
     1969    RpUnits* bar = RpUnits::define("bar", NULL, RP_TYPE_PRESSURE);
     1970    RpUnits* pascal = RpUnits::define("Pa", NULL, RP_TYPE_PRESSURE);
     1971    RpUnits* psi = RpUnits::define("psi", NULL, RP_TYPE_PRESSURE);
     1972    RpUnits* torr = RpUnits::define("torr", NULL, RP_TYPE_PRESSURE);
     1973    RpUnits* mmHg = RpUnits::define("mmHg", torr, RP_TYPE_PRESSURE);
     1974
     1975    RpUnits::makeMetric(pascal);
     1976    RpUnits::makeMetric(bar);
     1977
     1978    RpUnits::define(bar,pascal,bar2Pa,Pa2bar);
     1979    RpUnits::define(bar,atmosphere,bar2atm,atm2bar);
     1980    RpUnits::define(bar,psi,bar2psi,psi2bar);
     1981    RpUnits::define(bar,torr,bar2torr,torr2bar);
     1982    RpUnits::define(pascal,atmosphere,Pa2atm,atm2Pa);
     1983    RpUnits::define(pascal,torr,Pa2torr,torr2Pa);
     1984    RpUnits::define(pascal,psi,Pa2psi,psi2Pa);
     1985    RpUnits::define(torr,atmosphere,torr2atm,atm2torr);
     1986    RpUnits::define(torr,psi,torr2psi,psi2torr);
     1987
     1988    RpUnits::define(torr,mmHg,torr2mmHg,mmHg2torr);
     1989
     1990    return 0;
     1991}
     1992
     1993/**********************************************************************/
    19341994// METHOD: addPresetMisc()
    19351995/// Add Misc related units to the dictionary
  • trunk/src/core/RpUnits.h

    r520 r525  
    3030
    3131//define our different types of units
    32 #define RP_TYPE_ENERGY  "energy"
    33 #define RP_TYPE_LENGTH  "length"
    34 #define RP_TYPE_TEMP    "temperature"
    35 #define RP_TYPE_TIME    "time"
    36 #define RP_TYPE_VOLUME  "volume"
    37 #define RP_TYPE_ANGLE   "angle"
    38 #define RP_TYPE_MASS    "mass"
    39 #define RP_TYPE_MISC    "misc"
     32#define RP_TYPE_ENERGY      "energy"
     33#define RP_TYPE_LENGTH      "length"
     34#define RP_TYPE_TEMP        "temperature"
     35#define RP_TYPE_TIME        "time"
     36#define RP_TYPE_VOLUME      "volume"
     37#define RP_TYPE_ANGLE       "angle"
     38#define RP_TYPE_MASS        "mass"
     39#define RP_TYPE_PRESSURE    "pressure"
     40#define RP_TYPE_MISC        "misc"
    4041
    4142// should the define function:
     
    6465        static int addPresetAngle();
    6566        static int addPresetMass();
     67        static int addPresetPressure();
    6668        static int addPresetMisc();
    6769};
  • trunk/src/core/RpUnitsStd.cc

    r515 r525  
    336336}
    337337
     338/****************************************
     339 * PRESSURE CONVERSIONS
     340 * http://www.ilpi.com/msds/ref/pressureunits.html
     341 * http://en.wikipedia.org/wiki/Bar_%28unit%29
     342 ****************************************/
     343
     344double bar2Pa (double bar)
     345{
     346    return (bar*100000.00);
     347}
     348
     349double Pa2bar (double Pa)
     350{
     351    return (Pa/100000.00);
     352}
     353
     354double bar2atm (double bar)
     355{
     356    return (bar*0.98692);
     357}
     358
     359double atm2bar (double atm)
     360{
     361    return (atm/0.98692);
     362}
     363
     364double bar2torr (double bar)
     365{
     366    return (bar*750.06);
     367}
     368
     369double torr2bar (double torr)
     370{
     371    return (torr/750.06);
     372}
     373
     374double bar2psi (double bar)
     375{
     376    return (bar*14.504);
     377}
     378
     379double psi2bar (double psi)
     380{
     381    return (psi*0.0689476);
     382}
     383
     384double Pa2atm (double Pa)
     385{
     386    return (Pa*9.8692e-6);
     387}
     388
     389double atm2Pa (double atm)
     390{
     391    // need to check this conversion
     392    // tests fail
     393    return (atm*101325.024);
     394}
     395
     396double Pa2torr (double Pa)
     397{
     398    return (Pa*7.5006e-3);
     399}
     400
     401double torr2Pa (double torr)
     402{
     403    return (torr/7.5006e-3);
     404}
     405
     406double Pa2psi (double Pa)
     407{
     408    return (Pa*145.04e-6);
     409}
     410
     411double psi2Pa (double psi)
     412{
     413    // need to check this conversion
     414    // test fails because of truncation
     415    return (psi*6894.7625831);
     416}
     417
     418double torr2atm (double torr)
     419{
     420    return (torr*1.3158e-3);
     421}
     422
     423double atm2torr (double atm)
     424{
     425    return (atm*760);
     426}
     427
     428double torr2psi (double torr)
     429{
     430    return (torr*19.337e-3);
     431}
     432
     433double psi2torr (double psi)
     434{
     435    return (psi*51.71496);
     436}
     437
     438double torr2mmHg (double torr)
     439{
     440    return (torr);
     441}
     442
     443double mmHg2torr (double mmHg)
     444{
     445    return (mmHg);
     446}
    338447
    339448
  • trunk/src/core/RpUnitsStd.h

    r515 r525  
    9393double day2sec (double day);
    9494
     95
     96
     97
     98double bar2Pa (double bar);
     99double Pa2bar (double Pa);
     100double bar2atm (double bar);
     101double atm2bar (double atm);
     102double bar2torr (double bar);
     103double torr2bar (double torr);
     104double bar2psi (double bar);
     105double psi2bar (double psi);
     106double Pa2atm (double Pa);
     107double atm2Pa (double atm);
     108double Pa2torr (double Pa);
     109double torr2Pa (double torr);
     110double Pa2psi (double Pa);
     111double psi2Pa (double psi);
     112double torr2atm (double torr);
     113double atm2torr (double atm);
     114double torr2psi (double torr);
     115double psi2torr (double psi);
     116double torr2mmHg (double torr);
     117double mmHg2torr (double mmHg);
     118double kPa2KPa (double kPa);
     119double KPa2kPa (double KPa);
     120
     121
     122
    95123#ifdef __cplusplus
    96124}
Note: See TracChangeset for help on using the changeset viewer.