#ifndef CONSTANTS_H
#define CONSTANTS_H
#define _USE_MATH_DEFINES
#include<math.h>

// Umrechnungsfaktoren [a.u.] -> [SI] 
const double au_L = 5.29177210903 * 1e-11; // Length in[m]
const double au_T = 2.4188843265857 * 1e-17; // Time in[s]
const double au_V = 2.18769126364 * 1e6; // Velocity in[m / s]
const double au_C = 1.602176634 * 1e-19; // Charge in[C]
const double au_A = 1.054571817 * 1e-34; // Action in[Js]
const double au_E = 4.359744722207185 * 1e-18; // Energy in[J]
const double au_Ee = 27.211386245988; // Energy in[eV]
const double au_M = 9.1093837015 * 1e-31; // Mass in[kg]
const double au_F = 5.14220826 * 1e11; // Electric Field Strength in[V / m]

// constants in atomar units
const double au_e = 1; // Elementarladung
const double au_hbar = 1; // Plancksches Wirkungsquantum
const double au_m = 1; // Elektronenmasse
const double au_epsilon = 1 / (4 * M_PI); // Permittivität
const double au_c = 299792458 / au_V; // Lichtgeschwindigkeit


// constants in SI
const double const_e = 1.602176634 * 1e-19; // elementary charge in [C]
const double const_m_e = 9.1093837015 * 1e-31; // electron mass in [kg]
const double const_c = 299792458; // speed of light in [m/s]
const double const_epsilon_0 = 8.8541878128 * 1e-12; // vacuum permittivity in [As/Vm]
const double const_u = 1.66053906660 * 1e-27; // atomar mass in [kg]
const double const_h = 6.62607015 * 1e-34; // Planck constant in [Js]
const double const_hbar = 1.054571817 * 1e-34; // reduced Planck constant in [Js]
const double const_mu_0 = 1.25663706212 * 1e-6; // vacuum permeability in [H/m]
const double const_G = 6.67430 * 1e-11; // gravitational constant in [m^3/kg*s^2]
const double const_k_B = 1.380649 * 1e-23; // Boltzmann constant in [J/K]
const double const_sigma = 5.670374419 * 1e-8; // Stefan-Boltzmann constant in [W/m^2K^4]
const double const_N_A = 6.02214076 * 1e23; // Avogadro constant in [1/mol]
const double const_R = 8.31446261815324; // molar gas constant in [J/K mol]
const double const_a_0 = 5.29177210903 * 1e-11; // Bohr radius in [m]
const double const_m_n = 1.67492749804 * 1e-27; // neutron mass in [kg]
const double const_m_p = 1.67262192369 * 1e-27; // proton mass in [kg]


#endif
