11 lua_pushstring(L,
"is_empty");
12 lua_pushboolean(L,
false);
15 lua_pushstring(L,
"num_groups");
16 lua_pushinteger(L,
static_cast<lua_Integer
>(
NumGroups()));
19 lua_pushstring(L,
"scattering_order");
23 lua_pushstring(L,
"num_precursors");
24 lua_pushinteger(L,
static_cast<lua_Integer
>(
NumPrecursors()));
27 lua_pushstring(L,
"is_fissionable");
33 [L](
const std::vector<double>& xs,
34 const std::string& name)
36 lua_pushstring(L, name.c_str());
40 for (
const auto& val : xs)
42 lua_pushinteger(L, ++g);
43 lua_pushnumber(L ,val);
59 std::vector<std::vector<double>> chi_delayed;
60 for (
unsigned int g = 0; g <
NumGroups(); ++g)
62 std::vector<double> vals;
64 vals.push_back(precursor.emission_spectrum[g]);
65 chi_delayed.push_back(vals);
68 lua_pushstring(L,
"chi_delayed");
72 for (
const auto& emission_g: chi_delayed)
74 lua_pushinteger(L, ++g);
78 for (
const auto& val: emission_g)
80 lua_pushinteger(L, ++j);
81 lua_pushnumber(L, val);
91 lua_pushstring(L,
"precursor_decay_constants");
97 lua_pushinteger(L, ++j);
98 lua_pushnumber(L, precursor.decay_constant);
104 lua_pushstring(L,
"precursor_fractional_yields");
110 lua_pushinteger(L, ++j);
111 lua_pushnumber(L, precursor.fractional_yield);
118 lua_pushstring(L,
"transfer_matrix");
121 unsigned int ell = 0;
124 lua_pushinteger(L, ++ell);
127 for (
unsigned int g = 0; g < matrix.NumRows(); ++g)
129 const auto& col_indices = matrix.rowI_indices_[g];
130 const auto& col_values = matrix.rowI_values_[g];
131 size_t num_vals = col_values.size();
133 lua_pushinteger(L, g + 1);
136 for (
unsigned int gg = 0; gg < num_vals; ++gg)
138 lua_pushinteger(L,
static_cast<long long>(col_indices[gg]) + 1);
139 lua_pushnumber(L, col_values[gg]);
152 lua_pushstring(L,
"production_matrix");
158 lua_pushinteger(L, ++g);
162 for (
const auto& val : prod)
164 lua_pushinteger(L, ++gp);
165 lua_pushnumber(L, val);
virtual const unsigned int NumGroups() const =0
virtual const std::vector< Precursor > & Precursors() const =0
virtual const unsigned int NumPrecursors() const =0
virtual const std::vector< double > & InverseVelocity() const =0
void PushLuaTable(lua_State *L) const override
virtual const std::vector< double > & NuDelayedSigmaF() const =0
virtual const std::vector< std::vector< double > > ProductionMatrix() const =0
virtual const std::vector< double > & SigmaTotal() const =0
virtual const std::vector< double > & SigmaAbsorption() const =0
virtual const std::vector< double > & SigmaFission() const =0
virtual const unsigned int ScatteringOrder() const =0
virtual const std::vector< double > & SigmaRemoval() const =0
virtual const std::vector< double > & NuSigmaF() const =0
virtual const bool IsFissionable() const =0
virtual const std::vector< double > & NuPromptSigmaF() const =0
virtual const std::vector< chi_math::SparseMatrix > & TransferMatrices() const =0
virtual const std::vector< double > & SigmaSGtoG() const =0
virtual const std::vector< double > & DiffusionCoefficient() const =0