91 lines
3.3 KiB
C++
91 lines
3.3 KiB
C++
#include "composition.h"
|
|
#include "config.h"
|
|
#include <string>
|
|
|
|
int main(int argv, char* argc[]) {
|
|
std::string pathToConfigFile;
|
|
if (argv == 2) {
|
|
pathToConfigFile = argc[1];
|
|
} else {
|
|
pathToConfigFile = "config.json";
|
|
}
|
|
fourdst::config::Config::getInstance().loadConfig(pathToConfigFile);
|
|
serif::composition::Composition comp;
|
|
std::vector<std::string> symbols = {"H-1", "He-4"};
|
|
comp.registerSymbol(symbols);
|
|
comp.setMassFraction("H-1", 0.7);
|
|
comp.setMassFraction("He-4", 0.3);
|
|
comp.finalize();
|
|
std::cout << "=== Mass Fraction Mode ===" << std::endl;
|
|
std::cout << "\tH-1 Mass Frac: " << comp.getMassFraction("H-1") << std::endl;
|
|
std::cout << "\tH-1 Number Frac: " << comp.getNumberFraction("H-1") << std::endl;
|
|
std::cout << "\tHe-4 Mass Frac: " << comp.getMassFraction("He-4") << std::endl;
|
|
std::cout << "\tHe-4 Number Frac: " << comp.getNumberFraction("He-4") << std::endl;
|
|
|
|
std::cout << "\tMass Frac Sum: " << comp.getMassFraction("H-1") + comp.getMassFraction("He-4") << std::endl;
|
|
std::cout << "\tNumber Frac Sum: " << comp.getNumberFraction("H-1") + comp.getNumberFraction("He-4") << std::endl;
|
|
|
|
serif::composition::Composition comp2;
|
|
comp2.registerSymbol(symbols, false);
|
|
comp2.setNumberFraction("H-1", comp.getNumberFraction("H-1"));
|
|
comp2.setNumberFraction("He-4", comp.getNumberFraction("He-4"));
|
|
|
|
comp2.finalize();
|
|
std::cout << "=== Number Fraction Mode ===" << std::endl;
|
|
std::cout << "\tH-1 Mass Frac: " << comp2.getMassFraction("H-1") << std::endl;
|
|
std::cout << "\tH-1 Number Frac: " << comp2.getNumberFraction("H-1") << std::endl;
|
|
std::cout << "\tHe-4 Mass Frac: " << comp2.getMassFraction("He-4") << std::endl;
|
|
std::cout << "\tHe-4 Number Frac: " << comp2.getNumberFraction("He-4") << std::endl;
|
|
|
|
std::cout << "\tMass Frac Sum: " << comp2.getMassFraction("H-1") + comp2.getMassFraction("He-4") << std::endl;
|
|
std::cout << "\tNumber Frac Sum: " << comp2.getNumberFraction("H-1") + comp2.getNumberFraction("He-4") << std::endl;
|
|
|
|
|
|
std::vector<std::string> symbols3 = {
|
|
"H-1",
|
|
"He-3",
|
|
"He-4",
|
|
"Li-6",
|
|
"Li-7",
|
|
"O-16",
|
|
"C-12",
|
|
"Fe-56",
|
|
"Ne-20",
|
|
"N-14",
|
|
"Mg-24",
|
|
"Si-28",
|
|
"S-32",
|
|
"Ca-40",
|
|
};
|
|
std::vector<double> mass_fractions = {
|
|
0.71243,
|
|
1e-5,
|
|
0.27,
|
|
1e-11,
|
|
1e-9,
|
|
0.009,
|
|
0.003,
|
|
0.0014,
|
|
0.0015,
|
|
0.001,
|
|
0.0006,
|
|
0.0006,
|
|
0.0004,
|
|
0.00006
|
|
};
|
|
serif::composition::Composition comp3(symbols3, mass_fractions, true);
|
|
std::cout << "=== Mass Fraction Mode ===" << std::endl;
|
|
double massFracSum = 0.0;
|
|
double numberFracSum = 0.0;
|
|
for (const auto& symbol : symbols3) {
|
|
std::cout << "\t" << symbol << " Mass Frac: " << comp3.getMassFraction(symbol) << std::endl;
|
|
std::cout << "\t" << symbol << " Number Frac: " << comp3.getNumberFraction(symbol) << std::endl;
|
|
massFracSum += comp3.getMassFraction(symbol);
|
|
numberFracSum += comp3.getNumberFraction(symbol);
|
|
}
|
|
std::cout << "\tMass Frac Sum: " << massFracSum << std::endl;
|
|
std::cout << "\tNumber Frac Sum: " << numberFracSum << std::endl;
|
|
|
|
|
|
return 0;
|
|
} |