本文整理汇总了C++中Cantera类的典型用法代码示例。如果您正苦于以下问题:C++ Cantera类的具体用法?C++ Cantera怎么用?C++ Cantera使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Cantera类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ctml_getfloatarray_
status_t ctml_getfloatarray_(const integer* i, const integer* n,
doublereal* data, const integer* iconvert)
{
try {
XML_Node& node = *_xml(i);
Cantera::vector_fp v;
bool conv = false;
if (*iconvert > 0) {
conv = true;
}
getFloatArray(node, v, conv);
int nv = v.size();
// array not big enough
if (*n < nv) {
throw CanteraError("ctml_getfloatarray",
"array must be dimensioned at least "+Cantera::int2str(nv));
}
for (int i = 0; i < nv; i++) {
data[i] = v[i];
}
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例2: fxml_findid_
status_t fxml_findid_(const integer* i, const char* id, ftnlen idlen)
{
try {
XML_Node& node = *_xml(i);
XML_Node* c = node.findID(f2string(id, idlen));
if (c) {
return XmlCabinet::add(c);
} else {
throw CanteraError("fxml_find_id","id not found: "+f2string(id, idlen));
}
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例3: fxml_findbyname_
status_t fxml_findbyname_(const integer* i, const char* nm, ftnlen nmlen)
{
try {
XML_Node& node = *_xml(i);
XML_Node* c = node.findByName(f2string(nm, nmlen));
if (c) {
return XmlCabinet::add(c);
} else {
throw CanteraError("fxml_findByName","name "+f2string(nm, nmlen)
+" not found");
}
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例4: fxml_write_
status_t fxml_write_(const integer* i, const char* file, ftnlen filelen)
{
try {
std::string ff(file, filelen);
ofstream f(ff.c_str());
if (f) {
XML_Node& node = *_xml(i);
node.write(f);
} else {
throw CanteraError("fxml_write",
"file "+f2string(file, filelen)+" not found.");
}
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例5: fxml_get_xml_file_
status_t fxml_get_xml_file_(const char* file, ftnlen filelen)
{
try {
XML_Node* x = Cantera::get_XML_File(f2string(file, filelen));
return XmlCabinet::add(x);
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
示例6: fxml_attrib_
status_t fxml_attrib_(const integer* i, const char* key, char* value,
ftnlen keylen, ftnlen valuelen)
{
try {
std::string ky = f2string(key, keylen);
XML_Node& node = *_xml(i);
if (node.hasAttrib(ky)) {
std::string v = node[ky];
strncpy(value, v.c_str(), valuelen);
} else {
throw CanteraError("fxml_attrib","node "
" has no attribute '"+ky+"'");
}
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例7: fxml_clear_
status_t fxml_clear_()
{
try {
XmlCabinet::clear();
Cantera::close_XML_File("all");
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
示例8: fxml_findid_
status_t DLL_EXPORT fxml_findid_(const integer* i, const char* id, ftnlen idlen) {
try {
XML_Node& node = *_xml(i);
XML_Node* c = node.findID(f2string(id, idlen));
if (c) {
return Cabinet<XML_Node>::cabinet()->add(c);
}
else
throw CanteraError("fxml_find_id","id not found: "+f2string(id, idlen));
}
catch (CanteraError) { handleError(); }
return 0;
}
示例9: fxml_copy_
status_t fxml_copy_(const integer* i)
{
try {
return XmlCabinet::newCopy(*i);
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
示例10: fxml_del_
status_t fxml_del_(const integer* i)
{
try {
XmlCabinet::del(*i);
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
示例11: fxml_removechild_
status_t fxml_removechild_(const integer* i, const integer* j)
{
try {
_xml(i)->removeChild(_xml(j));
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
示例12: fxml_child_
status_t fxml_child_(const integer* i, const char* loc, ftnlen loclen)
{
try {
XML_Node& node = *_xml(i);
XML_Node& c = node.child(f2string(loc, loclen));
return XmlCabinet::add(&c);
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
示例13: fxml_nchildren_
integer fxml_nchildren_(const integer* i)
{
try {
XML_Node& node = *_xml(i);
return node.nChildren();
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例14: fxml_tag_
status_t fxml_tag_(const integer* i, char* tag, ftnlen taglen)
{
try {
XML_Node& node = *_xml(i);
const std::string v = node.name();
strncpy(tag, v.c_str(), taglen);
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}
示例15: fxml_value_
status_t fxml_value_(const integer* i, char* value, ftnlen valuelen)
{
try {
XML_Node& node = *_xml(i);
const std::string v = node.value();
strncpy(value, v.c_str(), valuelen);
} catch (...) {
return handleAllExceptions(-1, ERR);
}
return 0;
}