MCPcopy Create free account
hub / github.com/Cantera/cantera / normalize

Method normalize

src/base/SolutionArray.cpp:822–850  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

820}
821
822void SolutionArray::normalize() {
823 auto phase = m_sol->thermo();
824 auto nativeState = phase->nativeState();
825 if (nativeState.size() < 3) {
826 return;
827 }
828 size_t nState = phase->stateSize();
829 vector<double> out(nState);
830 if (nativeState.count("Y")) {
831 size_t offset = nativeState["Y"];
832 for (int loc = 0; loc < static_cast<int>(m_size); loc++) {
833 setLoc(loc, true); // set location and restore state
834 phase->setMassFractions(m_data->data() + m_loc * m_stride + offset);
835 m_sol->thermo()->saveState(out);
836 setState(loc, out);
837 }
838 } else if (nativeState.count("X")) {
839 size_t offset = nativeState["X"];
840 for (int loc = 0; loc < static_cast<int>(m_size); loc++) {
841 setLoc(loc, true); // set location and restore state
842 phase->setMoleFractions(m_data->data() + m_loc * m_stride + offset);
843 m_sol->thermo()->saveState(out);
844 setState(loc, out);
845 }
846 } else {
847 throw NotImplementedError("SolutionArray::normalize",
848 "Not implemented for mode '{}'.", phase->nativeMode());
849 }
850}
851
852AnyMap SolutionArray::getAuxiliary(int loc)
853{

Callers 2

TESTFunction · 0.80
toArrayMethod · 0.80

Calls 9

NotImplementedErrorClass · 0.85
stateSizeMethod · 0.80
saveStateMethod · 0.80
nativeModeMethod · 0.80
thermoMethod · 0.45
nativeStateMethod · 0.45
sizeMethod · 0.45
setMassFractionsMethod · 0.45
setMoleFractionsMethod · 0.45

Tested by 1

TESTFunction · 0.64