From 357ab0b6686b5a63dca60c1c9a0773795c0c46ba Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 18 Dec 2012 00:13:02 +0000 Subject: [PATCH] [1D] save/restore now includes boundary conditions of Inlet1D objects This partially addresses Issue 90. --- src/oneD/boundaries1D.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/oneD/boundaries1D.cpp b/src/oneD/boundaries1D.cpp index cf6935e30..0888613e9 100644 --- a/src/oneD/boundaries1D.cpp +++ b/src/oneD/boundaries1D.cpp @@ -250,15 +250,29 @@ save(XML_Node& o, const doublereal* const soln) for (size_t k = 0; k < nComponents(); k++) { ctml::addFloat(inlt, componentName(k), s[k], "", "",lowerBound(k), upperBound(k)); } + for (size_t k=0; k < m_nsp; k++) { + ctml::addFloat(inlt, "massFraction", m_yin[k], "", + m_flow->phase().speciesName(k)); + } } void Inlet1D:: restore(const XML_Node& dom, doublereal* soln, int loglevel) { - //map x; - //getFloats(dom, x); - soln[0] = ctml::getFloat(dom, "mdot", "massflowrate"); // x["mdot"]; - soln[1] = ctml::getFloat(dom, "temperature", "temperature"); // x["temperature"]; + soln[0] = m_mdot = ctml::getFloat(dom, "mdot", "massflowrate"); + soln[1] = m_temp = ctml::getFloat(dom, "temperature", "temperature"); + + m_yin.assign(m_nsp, 0.0); + + for (size_t i = 0; i < dom.nChildren(); i++) { + const XML_Node& node = dom.child(i); + if (node.name() == "massFraction") { + size_t k = m_flow->phase().speciesIndex(node.attrib("type")); + if (k != npos) { + m_yin[k] = node.fp_value(); + } + } + } resize(2,1); }