.Simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
AtomicProperties.h
1 #ifndef __CONSTANTS_ATOMIC_PROPERTIES__
2 #define __CONSTANTS_ATOMIC_PROPERTIES__
3 
4 #include <map>
5 #include <string>
6 
7 #include "./Helper.h"
8 
9 namespace MDSimulation
10 {
19  namespace Constants
20  {
22  const int ELEMENT_TYPES = 8;
23 
25  const int IONIZATION_LEVELS = 9;
26 
28  const std::string ELEMENT_NAMES[ELEMENT_TYPES] =
29  {
30  "H" ,
31  "D" ,
32  "H2" ,
33  "D2" ,
34  "He" ,
35  "Ne" ,
36  "Ar" ,
37  "Xe"
38  };
39 
40  const std::map<std::string, int> TYPE_FROM_NAME
41  = invert_array_mapping<std::string>(ELEMENT_NAMES, ELEMENT_TYPES);
42 
44  const std::string LIQUID_NAME = "H20";
45 
47  const bool FUSABLE[ELEMENT_TYPES] =
48  {
49  true , // H
50  true , // D
51  false , // H2
52  false , // D2
53  false , // He
54  false , // Ne
55  false , // Ar
56  false // Xe
57  };
58 
59  const bool DISSOCIATES[ELEMENT_TYPES] =
60  {
61  false , // H
62  false , // D
63  true , // H2
64  true , // D2
65  false , // He
66  false , // Ne
67  false , // Ar
68  false // Xe
69  };
70 
71  const double DISSOCIATION_ENERGY[ELEMENT_TYPES] =
72  {
73  1.0e100 , // H
74  1.0e100 , // D
75  436.0 , // H2
76  443.6 , // D2
77  1.0e100 , // He
78  1.0e100 , // Ne
79  1.0e100 , // Ar
80  1.0e100 // Xe
81  };
82 
83  const std::string DISSOCIATES_TO_NAME[ELEMENT_TYPES] =
84  {
85  "", // H -- No dissociation
86  "", // D -- No dissociation
87  "H", // H2 -> 2H
88  "D", // D2 -> 2D
89  "" , // He -- No dissociation
90  "" , // Ne -- No dissociation
91  "" , // Ar -- No dissociation
92  "" , // Xe -- No dissociation
93  };
94 
103  {
104  {1312.0 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100} , // H
105  {1312.0 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100} , // D
106  {1488.0 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100} , // H2
107  {1488.0 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100} , // D2 -- approx
108  {2372.3 , 5250.5 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100} , // He
109  {2080.7 , 3952.3 , 6122.0 , 9371.0 , 12177.0 , 1.0e100 , 1.0e100 , 1.0e100 , 1.0e100} , // Ne
110  {1520.6 , 2665.8 , 3931.0 , 5771.0 , 7238.0 , 8781.0 , 11995.0 , 13842.0 , 1.0e100} , // Ar
111  {1170.4 , 2046.4 , 3099.4 , 4600.0 , 5760.0 , 6930.0 , 9460.0 , 10800.0 , 1.0e100} // Xe
112  };
113 
117  const double LIQUID_ATOMIC_MASS_INI = 18.02;
118 
122  const double LIQUID_ATOMIC_DIAMETER_INI = 2 * 2.82e-10;
123 
130  {
131  1.008, // H
132  2.013, // D
133  2.016, // H2
134  4.028, // D2
135  4.003, // He
136  20.18, // Ne
137  39.95, // Ar
138  131.3 // Xe
139  };
140 
146  {
147  2 * 1.09e-10, // H -- Not correct
148  2 * 1.09e-10, // D -- Not correct
149  2 * 1.09e-10, // H2 -- Not correct
150  2 * 1.09e-10, // D2 -- Not correct
151  2 * 1.09e-10, // He
152  2 * 1.30e-10, // Ne
153  2 * 1.83e-10, // Ar
154  2 * 2.46e-10 // Xe
155  };
156 
161  {
162  0.188, // H -- Incorrect, using diatomic constant
163  0.199, // D -- Incorrect, using diatomic constant
164  0.188, // H2
165  0.199, // D2
166  0.204, // He
167  0.160, // Ne
168  0.201, // Ar
169  0.302 // Xe
170  };
171 
176  {
177  1.396, // H -- Incorrect, using diatomic constant
178  1.420, // D -- Incorrect, using diatomic constant
179  1.396, // H2
180  1.420, // D2
181  1.431, // He
182  1.336, // Ne
183  1.425, // Ar
184  1.651 // Xe
185  };
186 
190  const double BIRD_MU_INI[ELEMENT_TYPES] =
191  {
192  0.832, // H -- Incorrect, using diatomic constant
193  1.185, // D -- Incorrect, using diatomic constant
194  0.832, // H2
195  1.185, // D2
196  1.865, // He
197  2.975, // Ne
198  2.117, // Ar
199  2.107 // Xe
200  };
201 
218  const double BIRD_D_INI[ELEMENT_TYPES] =
219  {
220  2.30e-10, // H -- Not Correct
221  2.30e-10, // D -- Not Correct
222  2.30e-10, // H2 -- Not Correct
223  2.30e-10, // D2 -- Not Correct
224  2.30e-10, // He
225  2.72e-10, // Ne
226  4.11e-10, // Ar
227  5.65e-10 // Xe
228  };
229 
233  const double BIRD_T_REF = 273.0;
234  }
235 }
236 
237 #endif /* __ATOMIC_PROPERTIES_H__ */
const double ATOMIC_DIAMETER_INI[ELEMENT_TYPES]
The diameter of each element in meters.
Definition: AtomicProperties.h:145
const bool FUSABLE[ELEMENT_TYPES]
Flag controlling whether or not an element can fuse.
Definition: AtomicProperties.h:47
const int IONIZATION_LEVELS
The number of ionization levels tracked.
Definition: AtomicProperties.h:25
const double BIRD_ALPHA_INI[ELEMENT_TYPES]
The constant α (alpha) corresponding to each particle type.
Definition: AtomicProperties.h:175
const double IONIZATION_ENERGY_INI[ELEMENT_TYPES][IONIZATION_LEVELS]
The entry (i,j) gives the energy reqiured to extract the jth electron from element i...
Definition: AtomicProperties.h:102
const double LIQUID_ATOMIC_DIAMETER_INI
The atomic radius of the particles of the liquid.
Definition: AtomicProperties.h:122
const std::string LIQUID_NAME
The name of the liquid.
Definition: AtomicProperties.h:44
const double BIRD_D_INI[ELEMENT_TYPES]
The constant &quot;D&quot; corresponding to each particle type.
Definition: AtomicProperties.h:218
const double BIRD_OMEGA_INI[ELEMENT_TYPES]
The constant ω (omega) corresponding to each particle type.
Definition: AtomicProperties.h:160
const double BIRD_T_REF
The initial reference temperature.
Definition: AtomicProperties.h:233
const double LIQUID_ATOMIC_MASS_INI
The atomic mass of particles of the liquid.
Definition: AtomicProperties.h:117
const int ELEMENT_TYPES
The number of different particle types in the simulation.
Definition: AtomicProperties.h:22
const std::string ELEMENT_NAMES[ELEMENT_TYPES]
The names of the elements.
Definition: AtomicProperties.h:28
const double BIRD_MU_INI[ELEMENT_TYPES]
The constant μ (mu) corresponding to each particle type.
Definition: AtomicProperties.h:190
const double ATOMIC_MASS_INI[ELEMENT_TYPES]
The &quot;initial&quot; atomic mass of each element.
Definition: AtomicProperties.h:129