1 /*!
2  * \file   bindings/python/tfel/PhysicalConstants.cxx
3  * \brief
4  * \author Thomas Helfer
5  * \date   18 août 2017
6  * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights
7  * reserved.
8  * This project is publicly released under either the GNU GPL Licence
9  * or the CECILL-A licence. A copy of thoses licences are delivered
10  * with the sources of TFEL. CEA or EDF may also distribute this
11  * project under specific licensing conditions.
12  */
13 
14 #include<boost/python.hpp>
15 #include"TFEL/Config/TFELConfig.hxx"
16 
17 void declarePhysicalConstants();
18 
19 struct TFEL_VISIBILITY_LOCAL PhysicalConstants{
20 //! Atomic mass constant (kg)
21 static const double AtomicMassConstant;
22 //! Avogadro constant (mol-1)
23 static const double AvogadroConstant;
24 //! Boltzmann constant (J.K-1)
25 static const double BoltzmannConstant;
26 //! Conductance quantum (S)
27 static const double ConductanceQuantum;
28 //! Electric constant (F.m-1)
29 static const double ElectricConstant;
30 //! Electron mass (kg)
31 static const double ElectronMass;
32 //! Electron volt (J)
33 static const double ElectronVolt;
34 //! Elementary charge (C)
35 static const double ElementaryCharge;
36 //! Faraday constant (C.mol-1)
37 static const double FaradayConstant;
38 //! Fine-structure constant
39 static const double FineStructureConstant;
40 //! Molar gas constant (J.mol-1.K-1)
41 static const double MolarGasConstant;
42 //! Stefan-Boltzmann constant (W.m-2.K-4)
43 static const double StefanBoltzmannConstant;
44 };
45 
46 const double PhysicalConstants::AtomicMassConstant = double(1.66054e-27);
47 const double PhysicalConstants::AvogadroConstant = double(6.02214e+23);
48 const double PhysicalConstants::BoltzmannConstant = double(1.38065e-23);
49 const double PhysicalConstants::ConductanceQuantum = double(7.74809e-05);
50 const double PhysicalConstants::ElectricConstant = double(8.85419e-12);
51 const double PhysicalConstants::ElectronMass = double(9.10938e-31);
52 const double PhysicalConstants::ElectronVolt = double(1.60218e-19);
53 const double PhysicalConstants::ElementaryCharge = double(1.60218e-19);
54 const double PhysicalConstants::FaradayConstant = double(96485.3);
55 const double PhysicalConstants::FineStructureConstant = double(0.00729735);
56 const double PhysicalConstants::MolarGasConstant = double(8.31446);
57 const double PhysicalConstants::StefanBoltzmannConstant = double(5.67037e-08);
58 
declarePhysicalConstants()59 void declarePhysicalConstants()
60 {
61   boost::python::class_<PhysicalConstants>("PhysicalConstants")
62 .def_readonly("AtomicMassConstant",PhysicalConstants::AtomicMassConstant,
63 "Atomic mass constant (kg)")
64 .def_readonly("mu",PhysicalConstants::AtomicMassConstant,
65 "Atomic mass constant (kg)")
66 .def_readonly("AvogadroConstant",PhysicalConstants::AvogadroConstant,
67 "Avogadro constant (mol-1)")
68 .def_readonly("Na",PhysicalConstants::AvogadroConstant,
69 "Avogadro constant (mol-1)")
70 .def_readonly("BoltzmannConstant",PhysicalConstants::BoltzmannConstant,
71 "Boltzmann constant (J.K-1)")
72 .def_readonly("kb",PhysicalConstants::BoltzmannConstant,
73 "Boltzmann constant (J.K-1)")
74 .def_readonly("ConductanceQuantum",PhysicalConstants::ConductanceQuantum,
75 "Conductance quantum (S)")
76 .def_readonly("G0",PhysicalConstants::ConductanceQuantum,
77 "Conductance quantum (S)")
78 .def_readonly("ElectricConstant",PhysicalConstants::ElectricConstant,
79 "Electric constant (F.m-1)")
80 .def_readonly("e0",PhysicalConstants::ElectricConstant,
81 "Electric constant (F.m-1)")
82 .def_readonly("ElectronMass",PhysicalConstants::ElectronMass,
83 "Electron mass (kg)")
84 .def_readonly("me",PhysicalConstants::ElectronMass,
85 "Electron mass (kg)")
86 .def_readonly("ElectronVolt",PhysicalConstants::ElectronVolt,
87 "Electron volt (J)")
88 .def_readonly("eV",PhysicalConstants::ElectronVolt,
89 "Electron volt (J)")
90 .def_readonly("ElementaryCharge",PhysicalConstants::ElementaryCharge,
91 "Elementary charge (C)")
92 .def_readonly("e",PhysicalConstants::ElementaryCharge,
93 "Elementary charge (C)")
94 .def_readonly("FaradayConstant",PhysicalConstants::FaradayConstant,
95 "Faraday constant (C.mol-1)")
96 .def_readonly("F",PhysicalConstants::FaradayConstant,
97 "Faraday constant (C.mol-1)")
98 .def_readonly("FineStructureConstant",PhysicalConstants::FineStructureConstant,
99 "Fine-structure constant")
100 .def_readonly("a",PhysicalConstants::FineStructureConstant,
101 "Fine-structure constant")
102 .def_readonly("MolarGasConstant",PhysicalConstants::MolarGasConstant,
103 "Molar gas constant (J.mol-1.K-1)")
104 .def_readonly("R",PhysicalConstants::MolarGasConstant,
105 "Molar gas constant (J.mol-1.K-1)")
106 .def_readonly("StefanBoltzmannConstant",PhysicalConstants::StefanBoltzmannConstant,
107 "Stefan-Boltzmann constant (W.m-2.K-4)")
108 .def_readonly("s",PhysicalConstants::StefanBoltzmannConstant,
109 "Stefan-Boltzmann constant (W.m-2.K-4)")
110 ;
111 
112 } // end of declarePhysicalConstants
113 
114