Program Listing for File define.h

Return to documentation for file (src/define.h)

#ifndef DEFINE_H_
#define DEFINE_H_

/*---------------

  Copyright notices?
  Require gsl >= 2.0

  ------------------*/

#include <iostream>
#include <fstream>
#include <gsl/gsl_odeiv2.h>
#include <gsl/gsl_errno.h>  // gsl_success
#include <gsl/gsl_roots.h>  // root solver
#include <gsl/gsl_multiroots.h> // multidimensional root solver
#include <gsl/gsl_sf_debye.h>   // Debye function
#include <stdexcept>        // runtime_error
#include <sys/time.h>       // gettimeofday
#include <cmath>
#include <vector>
#include <limits>       // quiet_NaN
#include <sstream>
#include <iomanip>
#include <numeric>
#include <random>


using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::stringstream;
using std::ifstream;
using std::ofstream;
using std::streampos;
using std::max;
using std::min;
using std::vector;
using std::abs; //In C++, it's always sufficient to use std::abs; it's overloaded for all the numerical types.
using std::runtime_error;
using std::numeric_limits;
using std::accumulate;
using std::default_random_engine;
using std::normal_distribution;
using std::uniform_real_distribution;
using std::lognormal_distribution;
using std::random_device;

const double pi=3.14159265359;
const double G=6.67384E-8;
const double c=2.997924589E10;
const double kb=1.3806488E-16;
const double R = 8.31446E7; // gas constant in erg K-1 mol-1
const double e=4.80320451E-10;          // electron charge in e.s.u unit
const double me=9.10938291E-28;
const double mp=1.672621777E-24;
const double ME=5.9722E27;  // Earth mass defined by IAU
const double RE=6.3781E8;   // Earth equatorial radius
const double mFe=55.845;    // iron molar mass in grams
const double mSi=28.0855;
const double mMg=24.305;
const double mO=15.999;
const double mH=1.00794;
const double mC=12.011;
const double mCa=40.078;    // calcium molar mass in grams
const double mAl=26.9815;   // aluminum molar mass in grams
const double mNa=22.9898;   // sodium molar mass in grams
const double NA=6.02214E23;
const double AAtocm3 = 0.3011;  // 1 \AA^3 equivalents to NA / (2*10^24) = 0.3011 cm^3 / mol.
const double eV_erg = 1.60217710E-12;   // 1 eV=1.6E-12 erg

template<class T>
inline double sq(const T &a)
{return double(a*a);}

struct double_params
{
  vector<double> x;
};

#endif // DEFINE_H_