moved reading of xml element data to Elements.cpp
This commit is contained in:
parent
6dfb563ff5
commit
3162abcdec
1 changed files with 33 additions and 0 deletions
|
|
@ -22,8 +22,11 @@
|
|||
|
||||
#include "Elements.h"
|
||||
#include "xml.h"
|
||||
#include "ctml.h"
|
||||
#include "ctexceptions.h"
|
||||
|
||||
using namespace ctml;
|
||||
|
||||
#ifdef USE_DGG_CODE
|
||||
#include <map>
|
||||
#endif
|
||||
|
|
@ -508,6 +511,36 @@ namespace Cantera {
|
|||
return *this;
|
||||
}
|
||||
|
||||
|
||||
void Elements::addElementsFromXML(const XML_Node& phase) {
|
||||
|
||||
// get the declared element names
|
||||
XML_Node& elements = phase.child("elementArray");
|
||||
vector<string> enames;
|
||||
getStringArray(elements, enames);
|
||||
|
||||
// // element database defaults to elements.xml
|
||||
string element_database = "elements.xml";
|
||||
if (elements.hasAttrib("datasrc"))
|
||||
element_database = elements["datasrc"];
|
||||
XML_Node* doc = get_XML_File(element_database);
|
||||
XML_Node* dbe = &doc->child("ctml/elementData");
|
||||
|
||||
int nel = enames.size();
|
||||
int i;
|
||||
string enm;
|
||||
for (i = 0; i < nel; i++) {
|
||||
XML_Node* e = dbe->findByAttr("name",enames[i]);
|
||||
if (e) {
|
||||
addUniqueElement(*e);
|
||||
}
|
||||
else {
|
||||
throw CanteraError("addElementsFromXML","no data for element "
|
||||
+enames[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* subscribe(), unsubscribe(), and reportSubscriptions():
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue