From e4705bece19d2777b8a475857dddad7f138a62fa Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 18 Dec 2012 00:13:34 +0000 Subject: [PATCH] [1D] save/restore includes boundary conditions for Surf1D and OutletRes1D This partially addresses Issue 90. --- src/oneD/boundaries1D.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/oneD/boundaries1D.cpp b/src/oneD/boundaries1D.cpp index 0888613e9..8d4d3fe4c 100644 --- a/src/oneD/boundaries1D.cpp +++ b/src/oneD/boundaries1D.cpp @@ -683,11 +683,29 @@ save(XML_Node& o, const doublereal* const soln) outlt.addAttribute("points",1); outlt.addAttribute("type","outletres"); outlt.addAttribute("components", double(nComponents())); + ctml::addFloat(outlt, "temperature", m_temp, "K"); + for (size_t k=0; k < m_nsp; k++) { + ctml::addFloat(outlt, "massFraction", m_yres[k], "", + m_flow->phase().speciesName(k)); + } } void OutletRes1D:: restore(const XML_Node& dom, doublereal* soln, int loglevel) { + m_temp = ctml::getFloat(dom, "temperature"); + + m_yres.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_yres[k] = node.fp_value(); + } + } + } + resize(1,1); } @@ -777,9 +795,7 @@ save(XML_Node& o, const doublereal* const soln) void Surf1D:: restore(const XML_Node& dom, doublereal* soln, int loglevel) { - map x; - ctml::getFloats(dom, x); - soln[0] = x["temperature"]; + soln[0] = m_temp = ctml::getFloat(dom, "temperature", "temperature"); resize(1,1); }