Program Listing for File constants.hpp

Return to documentation for file (src/include/constants.hpp)

#ifndef SRC_INCLUDE_CONSTANTS_HPP
#define SRC_INCLUDE_CONSTANTS_HPP

namespace PhysicalConstants {

const double g = 9.8321849378;

const double sigma = 5.670374419e-8;

const double vonKarman = 0.4;

const double omega = 7.2921158e-5;

const double Tt = 273.16;

const double tau = 6.28318530717958647652;
}

namespace Ice {

const double cp = 2100.;

const double epsilon = 0.996;

const double kappa = 2.0334;

const double Lf = 333.55e3;

const double rho = 917;

const double rhoSnow = 330.;

const double s = 5;

const double Tm = 273.15;
}

namespace Air {

const double cp = 1004.64;

const double Ra = 287.058;

const double rho = 1.2754;
}

namespace Vapour {

const double cp = 1860.;

const double Lv0 = 2500.79e3;

const double Ra = 461.5;
}

namespace Water {

const double cp = 4186.84;

const double Lf = Ice::Lf;

const double Lv0 = Vapour::Lv0;

const double mu = 0.055;

const double rho = 1000;

const double rhoOcean = 1025;

const double Tf = Ice::Tm;

const double TfOcean = -1.8;
}

namespace Nextsim {
inline double kelvin(double celsius) { return celsius + Water::Tf; }

inline double celsius(double kelvin) { return kelvin - Water::Tf; }

inline double degrees(double radians) { return radians * 360 / PhysicalConstants::tau; }

inline double radians(double degrees) { return degrees * PhysicalConstants::tau / 360; }

inline double mbar(double pascals) { return pascals / 100; }

inline double pascals(double mbar) { return mbar * 100; }
}
#endif /* SRC_INCLUDE_CONSTANTS_HPP */