Garfield++ 5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
Heed::MoleculeDefs Class Reference

Library of molecules. More...

#include <MoleculeDef.h>

Static Public Member Functions

static const std::list< MoleculeDef > & getMolecules ()
 
static const MoleculeDefgetMolecule (const std::string &fnotation)
 
static void printMolecules (std::ostream &file)
 Print all registered molecules.
 

Detailed Description

Library of molecules.

Definition at line 97 of file MoleculeDef.h.

Member Function Documentation

◆ getMolecule()

const MoleculeDef * Heed::MoleculeDefs::getMolecule ( const std::string & fnotation)
static

Return the address of the molecule with this name. If there is no molecule with this notation, the function returns NULL but does not terminate the program as that for AtomDef. Be careful.

Definition at line 157 of file MoleculeDef.cpp.

157 {
158 for (const auto& molecule : getMolecules()) {
159 if (molecule.notation() == fnotation) return &molecule;
160 }
161 return nullptr;
162}
static const std::list< MoleculeDef > & getMolecules()

Referenced by Heed::GasDef::GasDef(), and Heed::GasDef::GasDef().

◆ getMolecules()

const std::list< MoleculeDef > & Heed::MoleculeDefs::getMolecules ( )
static

Definition at line 164 of file MoleculeDef.cpp.

164 {
165 if (!molecules.empty()) return molecules;
166 molecules.emplace_back(MoleculeDef("Hydrogen", "H2", "H", 2));
167 molecules.emplace_back(MoleculeDef("Helium", "He", "He", 1));
168 molecules.emplace_back(MoleculeDef("Nitrogen", "N2", "N", 2));
169 molecules.emplace_back(MoleculeDef("Oxygen", "O2", "O", 2));
170 molecules.emplace_back(MoleculeDef("Neon", "Ne", "Ne", 1));
171 // molecules.emplace_back(MoleculeDef("Argon_without_K", "Ar_without_K",
172 // "Ar_without_K", 1));
173 molecules.emplace_back(MoleculeDef("Argon", "Ar", "Ar", 1,
174 std::make_shared<VanDerWaals>(48.6 * bar, 150.7 * kelvin)));
175 molecules.emplace_back(MoleculeDef("Krypton", "Kr", "Kr", 1,
176 std::make_shared<VanDerWaals>(55.0 * bar, 209.4 * kelvin)));
177 molecules.emplace_back(MoleculeDef("Xenon", "Xe", "Xe", 1,
178 std::make_shared<VanDerWaals>(55.0 * bar, 209.4 * kelvin)));
179
180 molecules.emplace_back(MoleculeDef("NH3", "NH3", "N", 1, "H", 3));
181 molecules.emplace_back(MoleculeDef("N2O", "N2O", "N", 2, "O", 1));
182 molecules.emplace_back(MoleculeDef("CO2", "CO2", "C", 1, "O", 2));
183 molecules.emplace_back(MoleculeDef("CH4", "CH4", "C", 1, "H", 4,
184 std::make_shared<VanDerWaals>(4.64e6 * hep_pascal,
185 (273.15 - 82.5) * kelvin)));
186 molecules.emplace_back(MoleculeDef("CF4", "CF4", "C", 1, "F", 4,
187 std::make_shared<VanDerWaals>(42.5 * bar, 369.8 * kelvin)));
188 molecules.emplace_back(MoleculeDef("SF4", "SF4", "S", 1, "F", 4));
189 molecules.emplace_back(MoleculeDef("SF6", "SF6", "S", 1, "F", 6));
190 molecules.emplace_back(MoleculeDef("C2H2", "C2H2", "C", 2, "H", 2));
191 molecules.emplace_back(MoleculeDef("C2H4", "C2H4", "C", 2, "H", 4));
192 molecules.emplace_back(MoleculeDef("C2H6", "C2H6", "C", 2, "H", 6));
193 molecules.emplace_back(MoleculeDef("C3H8", "C3H8", "C", 3, "H", 8,
194 std::make_shared<VanDerWaals>(42.5 * bar, 369.8 * kelvin)));
195 molecules.emplace_back(MoleculeDef("C4H10", "C4H10", "C", 4, "H", 10,
196 std::make_shared<VanDerWaals>(40.0 * bar, 418.3 * kelvin)));
197 molecules.emplace_back(MoleculeDef("C2H2F4", "C2H2F4", "C", 2, "F", 4, "H", 2));
198 molecules.emplace_back(MoleculeDef("H2O", "H2O", "H", 2, "O", 1,
199 std::make_shared<VanDerWaals>(22.9e6 * hep_pascal, (273.15 + 374.15) * kelvin)));
200 molecules.emplace_back(MoleculeDef("Methylal", "Methylal", "O", 2, "C", 3, "H", 8,
201 std::make_shared<VanDerWaals>(39.5 * bar, 480.6 * kelvin)));
202
203 // Additional molecule definitions for compatibility with Magboltz
204 molecules.emplace_back(MoleculeDef("C5H12", "C5H12", "C", 5, "H", 12));
205 molecules.emplace_back(MoleculeDef("NO", "NO", "N", 1, "O", 1));
206 molecules.emplace_back(MoleculeDef("CO", "CO", "C", 1, "O", 1));
207 molecules.emplace_back(MoleculeDef("DME", "DME", "C", 2, "H", 6, "O", 1));
208 molecules.emplace_back(MoleculeDef("C2F6", "C2F6", "C", 2, "F", 6));
209 molecules.emplace_back(MoleculeDef("C3H6", "C3H6", "C", 3, "H", 6));
210 molecules.emplace_back(MoleculeDef("CH3OH", "CH3OH", "C", 1, "H", 4, "O", 1));
211 molecules.emplace_back(MoleculeDef("C2H5OH", "C2H5OH", "C", 2, "H", 6, "O", 1));
212 molecules.emplace_back(MoleculeDef("C3H7OH", "C3H7OH", "C", 3, "H", 8, "O", 1));
213 molecules.emplace_back(MoleculeDef("Cs", "Cs", "Cs", 1));
214 molecules.emplace_back(MoleculeDef("F2", "F2", "F", 2));
215 molecules.emplace_back(MoleculeDef("CS2", "CS2", "C", 1, "S", 2));
216 molecules.emplace_back(MoleculeDef("COS", "COS", "C", 1, "O", 1, "S", 1));
217 molecules.emplace_back(MoleculeDef("BF3", "BF3", "B", 1, "F", 3));
218 molecules.emplace_back(MoleculeDef("C2HF5", "C2HF5", "C", 2, "H", 1, "F", 5));
219 molecules.emplace_back(MoleculeDef("CHF3", "CHF3", "C", 1, "H", 1, "F", 3));
220 molecules.emplace_back(MoleculeDef("CF3Br", "CF3Br", "C", 1, "F", 3, "Br", 1));
221 molecules.emplace_back(MoleculeDef("C3F8", "C3F8", "C", 3, "F", 8));
222 molecules.emplace_back(MoleculeDef("O3", "O3", "O", 3));
223 molecules.emplace_back(MoleculeDef("Hg", "Hg", "Hg", 1));
224 molecules.emplace_back(MoleculeDef("H2S", "H2S", "H", 2, "S", 1));
225 molecules.emplace_back(MoleculeDef("GeH4", "GeH4", "Ge", 1, "H", 4));
226 molecules.emplace_back(MoleculeDef("SiH4", "SiH4", "Si", 1, "H", 4));
227 molecules.emplace_back(MoleculeDef("CCl4", "CCl4", "C", 1, "Cl", 4));
228 return molecules;
229}

Referenced by getMolecule(), and printMolecules().

◆ printMolecules()

void Heed::MoleculeDefs::printMolecules ( std::ostream & file)
static

Print all registered molecules.

Definition at line 150 of file MoleculeDef.cpp.

150 {
151 Ifile << "MoleculeDefs::printMolecules:\n";
152 for (const auto& molecule : getMolecules()) {
153 file << molecule;
154 }
155}
#define Ifile
Definition prstream.h:195

The documentation for this class was generated from the following files: