40 #include <boost/iostreams/filtering_streambuf.hpp>
41 #include <boost/iostreams/copy.hpp>
42 #include <boost/iostreams/filter/gzip.hpp>
43 namespace io = boost::iostreams;
63 "Writes a Nektar++ xml file.");
68 true,
"0",
"Compress output file and append a .gz extension.");
70 true,
"0",
"Attempt to load resulting mesh and create meshgraph.");
81 const std::map<int, boost::shared_ptr<T> > &tmp =
82 graph->GetAllElementsOfType<T>();
83 typename std::map<int, boost::shared_ptr<T> >::const_iterator it1, it2;
88 for (it1 = tmp.begin(), it2 = tmp.end(); it1 != it2; ++it1)
92 geom->Reset(curvedEdges, curvedFaces);
100 cout <<
"OutputNekpp: Writing file..." << endl;
103 int order =
m_config[
"order"].as<
int>();
111 TiXmlDeclaration *decl =
new TiXmlDeclaration(
"1.0",
"utf-8",
"");
112 doc.LinkEndChild(decl);
114 TiXmlElement *root =
new TiXmlElement(
"NEKTAR");
115 doc.LinkEndChild(root);
118 TiXmlElement *geomTag =
new TiXmlElement(
"GEOMETRY");
119 geomTag->SetAttribute(
"DIM",
m_mesh->m_expDim);
120 geomTag->SetAttribute(
"SPACE",
m_mesh->m_spaceDim);
121 root->LinkEndChild(geomTag);
134 string filename =
m_config[
"outfile"].as<
string>();
140 ofstream fout(filename.c_str(),
141 std::ios_base::out | std::ios_base::binary);
143 std::stringstream decompressed;
145 io::filtering_streambuf<io::output> out;
146 out.push(io::gzip_compressor());
154 doc.SaveFile(filename);
162 vector<string> filenames(1);
163 filenames[0] = filename;
170 TestElmts<SpatialDomains::SegGeom>(graphShPt);
171 TestElmts<SpatialDomains::TriGeom>(graphShPt);
172 TestElmts<SpatialDomains::QuadGeom>(graphShPt);
173 TestElmts<SpatialDomains::TetGeom>(graphShPt);
174 TestElmts<SpatialDomains::PrismGeom>(graphShPt);
175 TestElmts<SpatialDomains::PyrGeom>(graphShPt);
176 TestElmts<SpatialDomains::HexGeom>(graphShPt);
182 bool UnCompressed =
m_config[
"uncompress"].beenSet;
184 TiXmlElement *verTag =
new TiXmlElement(
"VERTEX");
187 std::set<NodeSharedPtr> tmp(
m_mesh->m_vertexSet.begin(),
188 m_mesh->m_vertexSet.end());
192 for (it = tmp.begin(); it != tmp.end(); ++it)
196 s << scientific << setprecision(8) << n->m_x <<
" " << n->m_y <<
" "
198 TiXmlElement *v =
new TiXmlElement(
"V");
199 v->SetAttribute(
"ID", n->m_id);
200 v->LinkEndChild(
new TiXmlText(s.str()));
201 verTag->LinkEndChild(v);
206 std::vector<LibUtilities::MeshVertex> vertInfo;
207 for (it = tmp.begin(); it != tmp.end(); ++it)
215 vertInfo.push_back(v);
219 verTag->SetAttribute(
"COMPRESSED",
221 verTag->SetAttribute(
"BITSIZE",
224 verTag->LinkEndChild(
new TiXmlText(vertStr));
227 pRoot->LinkEndChild(verTag);
232 bool UnCompressed =
m_config[
"uncompress"].beenSet;
234 if (
m_mesh->m_expDim >= 2)
236 TiXmlElement *verTag =
new TiXmlElement(
"EDGE");
239 std::set<EdgeSharedPtr> tmp(
m_mesh->m_edgeSet.begin(),
243 for (it = tmp.begin(); it != tmp.end(); ++it)
248 s << setw(5) << ed->m_n1->m_id <<
" " << ed->m_n2->m_id
250 TiXmlElement *e =
new TiXmlElement(
"E");
251 e->SetAttribute(
"ID", ed->m_id);
252 e->LinkEndChild(
new TiXmlText(s.str()));
253 verTag->LinkEndChild(e);
258 std::vector<LibUtilities::MeshEdge> edgeInfo;
259 for (it = tmp.begin(); it != tmp.end(); ++it)
265 e.
v0 = ed->m_n1->m_id;
266 e.
v1 = ed->m_n2->m_id;
268 edgeInfo.push_back(e);
273 verTag->SetAttribute(
275 verTag->SetAttribute(
"BITSIZE",
277 verTag->LinkEndChild(
new TiXmlText(edgeStr));
279 pRoot->LinkEndChild(verTag);
285 bool UnCompressed =
m_config[
"uncompress"].beenSet;
287 if (
m_mesh->m_expDim == 3)
289 TiXmlElement *verTag =
new TiXmlElement(
"FACE");
291 std::set<FaceSharedPtr> tmp(
m_mesh->m_faceSet.begin(),
296 for (it = tmp.begin(); it != tmp.end(); ++it)
301 for (
int j = 0; j < fa->m_edgeList.size(); ++j)
303 s << setw(10) << fa->m_edgeList[j]->m_id;
306 switch (fa->m_vertexList.size())
309 f =
new TiXmlElement(
"T");
312 f =
new TiXmlElement(
"Q");
317 f->SetAttribute(
"ID", fa->m_id);
318 f->LinkEndChild(
new TiXmlText(s.str()));
319 verTag->LinkEndChild(f);
324 std::vector<LibUtilities::MeshTri> TriFaceInfo;
325 std::vector<LibUtilities::MeshQuad> QuadFaceInfo;
327 for (it = tmp.begin(); it != tmp.end(); ++it)
331 switch (fa->m_edgeList.size())
337 for (
int i = 0; i < 3; ++i)
339 f.
e[i] = fa->m_edgeList[i]->m_id;
341 TriFaceInfo.push_back(f);
348 for (
int i = 0; i < 4; ++i)
350 f.
e[i] = fa->m_edgeList[i]->m_id;
352 QuadFaceInfo.push_back(f);
356 ASSERTL0(
false,
"Unkonwn face type");
360 if (TriFaceInfo.size())
362 std::string vType(
"T");
363 TiXmlElement *x =
new TiXmlElement(vType);
370 x->SetAttribute(
"BITSIZE",
372 x->LinkEndChild(
new TiXmlText(faceStr));
373 verTag->LinkEndChild(x);
376 if (QuadFaceInfo.size())
378 std::string vType(
"Q");
379 TiXmlElement *x =
new TiXmlElement(vType);
386 x->SetAttribute(
"BITSIZE",
388 x->LinkEndChild(
new TiXmlText(faceStr));
389 verTag->LinkEndChild(x);
392 pRoot->LinkEndChild(verTag);
398 bool UnCompressed =
m_config[
"uncompress"].beenSet;
400 TiXmlElement *verTag =
new TiXmlElement(
"ELEMENT");
401 vector<ElementSharedPtr> &elmt =
m_mesh->m_element[
m_mesh->m_expDim];
405 for (
int i = 0; i < elmt.size(); ++i)
407 TiXmlElement *elm_tag =
new TiXmlElement(elmt[i]->GetTag());
408 elm_tag->SetAttribute(
"ID", elmt[i]->GetId());
409 elm_tag->LinkEndChild(
new TiXmlText(elmt[i]->
GetXmlString()));
410 verTag->LinkEndChild(elm_tag);
415 std::vector<LibUtilities::MeshEdge> SegInfo;
416 std::vector<LibUtilities::MeshTri> TriInfo;
417 std::vector<LibUtilities::MeshQuad> QuadInfo;
418 std::vector<LibUtilities::MeshTet> TetInfo;
419 std::vector<LibUtilities::MeshPyr> PyrInfo;
420 std::vector<LibUtilities::MeshPrism> PrismInfo;
421 std::vector<LibUtilities::MeshHex> HexInfo;
423 for (
int i = 0; i < elmt.size(); ++i)
425 switch (elmt[i]->GetTag()[0])
430 e.
id = elmt[i]->GetId();
431 e.
v0 = elmt[i]->GetVertex(0)->m_id;
432 e.
v1 = elmt[i]->GetVertex(1)->m_id;
433 SegInfo.push_back(e);
439 e.
id = elmt[i]->GetId();
440 for (
int j = 0; j < 3; ++j)
442 e.
e[j] = elmt[i]->GetEdge(j)->m_id;
444 TriInfo.push_back(e);
450 e.
id = elmt[i]->GetId();
451 for (
int j = 0; j < 4; ++j)
453 e.
e[j] = elmt[i]->GetEdge(j)->m_id;
455 QuadInfo.push_back(e);
461 e.
id = elmt[i]->GetId();
462 for (
int j = 0; j < 4; ++j)
464 e.
f[j] = elmt[i]->GetFace(j)->m_id;
466 TetInfo.push_back(e);
472 e.
id = elmt[i]->GetId();
473 for (
int j = 0; j < 5; ++j)
475 e.
f[j] = elmt[i]->GetFace(j)->m_id;
477 PyrInfo.push_back(e);
483 e.
id = elmt[i]->GetId();
484 for (
int j = 0; j < 5; ++j)
486 e.
f[j] = elmt[i]->GetFace(j)->m_id;
488 PrismInfo.push_back(e);
494 e.
id = elmt[i]->GetId();
495 for (
int j = 0; j < 6; ++j)
497 e.
f[j] = elmt[i]->GetFace(j)->m_id;
499 HexInfo.push_back(e);
503 ASSERTL0(
false,
"Unknown element type");
509 std::string vType(
"S");
510 TiXmlElement *x =
new TiXmlElement(vType);
513 x->SetAttribute(
"COMPRESSED",
515 x->SetAttribute(
"BITSIZE",
517 x->LinkEndChild(
new TiXmlText(Str));
518 verTag->LinkEndChild(x);
523 std::string vType(
"T");
524 TiXmlElement *x =
new TiXmlElement(vType);
527 x->SetAttribute(
"COMPRESSED",
529 x->SetAttribute(
"BITSIZE",
531 x->LinkEndChild(
new TiXmlText(Str));
532 verTag->LinkEndChild(x);
537 std::string vType(
"Q");
538 TiXmlElement *x =
new TiXmlElement(vType);
541 x->SetAttribute(
"COMPRESSED",
543 x->SetAttribute(
"BITSIZE",
545 x->LinkEndChild(
new TiXmlText(Str));
546 verTag->LinkEndChild(x);
551 std::string vType(
"A");
552 TiXmlElement *x =
new TiXmlElement(vType);
555 x->SetAttribute(
"COMPRESSED",
557 x->SetAttribute(
"BITSIZE",
559 x->LinkEndChild(
new TiXmlText(Str));
560 verTag->LinkEndChild(x);
565 std::string vType(
"P");
566 TiXmlElement *x =
new TiXmlElement(vType);
569 x->SetAttribute(
"COMPRESSED",
571 x->SetAttribute(
"BITSIZE",
573 x->LinkEndChild(
new TiXmlText(Str));
574 verTag->LinkEndChild(x);
577 if (PrismInfo.size())
579 std::string vType(
"R");
580 TiXmlElement *x =
new TiXmlElement(vType);
583 x->SetAttribute(
"COMPRESSED",
585 x->SetAttribute(
"BITSIZE",
587 x->LinkEndChild(
new TiXmlText(Str));
588 verTag->LinkEndChild(x);
593 std::string vType(
"H");
594 TiXmlElement *x =
new TiXmlElement(vType);
597 x->SetAttribute(
"COMPRESSED",
599 x->SetAttribute(
"BITSIZE",
601 x->LinkEndChild(
new TiXmlText(Str));
602 verTag->LinkEndChild(x);
606 pRoot->LinkEndChild(verTag);
611 bool UnCompressed =
m_config[
"uncompress"].beenSet;
619 for (it =
m_mesh->m_edgeSet.begin(); it !=
m_mesh->m_edgeSet.end();
622 if ((*it)->m_edgeNodes.size() > 0)
629 else if (
m_mesh->m_expDim == 1)
631 for (
int i = 0; i <
m_mesh->m_element[1].size(); ++i)
633 if (
m_mesh->m_element[1][i]->GetVolumeNodes().size() > 0)
643 TiXmlElement *curved =
new TiXmlElement(
"CURVED");
647 for (it =
m_mesh->m_edgeSet.begin(); it !=
m_mesh->m_edgeSet.end();
650 if ((*it)->m_edgeNodes.size() > 0)
652 TiXmlElement *e =
new TiXmlElement(
"E");
653 e->SetAttribute(
"ID", edgecnt++);
654 e->SetAttribute(
"EDGEID", (*it)->m_id);
655 e->SetAttribute(
"NUMPOINTS", (*it)->GetNodeCount());
658 TiXmlText *t0 =
new TiXmlText((*it)->GetXmlCurveString());
660 curved->LinkEndChild(e);
674 if ((*it)->GetVolumeNodes().size() > 0)
676 TiXmlElement *e =
new TiXmlElement(
"E");
677 e->SetAttribute(
"ID", facecnt++);
678 e->SetAttribute(
"EDGEID", (*it)->GetId());
679 e->SetAttribute(
"NUMPOINTS", (*it)->GetNodeCount());
684 TiXmlText *t0 =
new TiXmlText((*it)->GetXmlCurveString());
686 curved->LinkEndChild(e);
691 else if (
m_mesh->m_expDim == 2 &&
700 if ((*it)->GetVolumeNodes().size() > 0)
702 TiXmlElement *e =
new TiXmlElement(
"F");
703 e->SetAttribute(
"ID", facecnt++);
704 e->SetAttribute(
"FACEID", (*it)->GetId());
705 e->SetAttribute(
"NUMPOINTS", (*it)->GetNodeCount());
710 TiXmlText *t0 =
new TiXmlText((*it)->GetXmlCurveString());
712 curved->LinkEndChild(e);
716 else if (
m_mesh->m_expDim == 3)
719 for (it2 =
m_mesh->m_faceSet.begin();
720 it2 !=
m_mesh->m_faceSet.end();
723 if ((*it2)->m_faceNodes.size() > 0)
725 TiXmlElement *f =
new TiXmlElement(
"F");
726 f->SetAttribute(
"ID", facecnt++);
727 f->SetAttribute(
"FACEID", (*it2)->m_id);
728 f->SetAttribute(
"NUMPOINTS", (*it2)->GetNodeCount());
732 TiXmlText *t0 =
new TiXmlText((*it2)->GetXmlCurveString());
734 curved->LinkEndChild(f);
741 std::vector<LibUtilities::MeshCurvedInfo> edgeinfo;
742 std::vector<LibUtilities::MeshCurvedInfo> faceinfo;
749 for (it =
m_mesh->m_edgeSet.begin(); it !=
m_mesh->m_edgeSet.end();
752 if ((*it)->m_edgeNodes.size() > 0)
755 cinfo.
id = edgecnt++;
757 cinfo.
npoints = (*it)->m_edgeNodes.size() + 2;
758 cinfo.
ptype = (*it)->m_curveType;
762 edgeinfo.push_back(cinfo);
764 std::vector<NodeSharedPtr> nodeList;
765 (*it)->GetCurvedNodes(nodeList);
768 for (
int i = 0; i < nodeList.size(); ++i)
770 pair<NodeSet::iterator, bool> testIns =
771 cvertlist.insert(nodeList[i]);
775 (*(testIns.first))->m_id = newidx;
779 v.
x = nodeList[i]->m_x;
780 v.
y = nodeList[i]->m_y;
781 v.
z = nodeList[i]->m_z;
782 curvedpts.
pts.push_back(v);
786 curvedpts.
index.push_back((*(testIns.first))->m_id);
804 if ((*it)->GetVolumeNodes().size() > 0)
807 cinfo.
id = facecnt++;
809 cinfo.
npoints = (*it)->GetNodeCount();
810 cinfo.
ptype = (*it)->GetCurveType();
814 edgeinfo.push_back(cinfo);
817 vector<NodeSharedPtr> tmp;
818 (*it)->GetCurvedNodes(tmp);
820 for (
int i = 0; i < tmp.size(); ++i)
822 pair<NodeSet::iterator, bool> testIns =
823 cvertlist.insert(tmp[i]);
827 (*(testIns.first))->m_id = newidx;
834 curvedpts.
pts.push_back(v);
837 curvedpts.
index.push_back((*(testIns.first))->m_id);
844 else if (
m_mesh->m_expDim == 2 &&
m_mesh->m_spaceDim == 3)
852 if ((*it)->GetVolumeNodes().size() > 0)
855 cinfo.
id = facecnt++;
857 cinfo.
npoints = (*it)->GetNodeCount();
858 cinfo.
ptype = (*it)->GetCurveType();
862 faceinfo.push_back(cinfo);
865 vector<NodeSharedPtr> tmp;
866 (*it)->GetCurvedNodes(tmp);
868 for (
int i = 0; i < tmp.size(); ++i)
870 pair<NodeSet::iterator, bool> testIns =
871 cvertlist.insert(tmp[i]);
875 (*(testIns.first))->m_id = newidx;
882 curvedpts.
pts.push_back(v);
885 curvedpts.
index.push_back((*(testIns.first))->m_id);
891 else if (
m_mesh->m_expDim == 3)
894 for (it2 =
m_mesh->m_faceSet.begin();
895 it2 !=
m_mesh->m_faceSet.end();
898 if ((*it2)->m_faceNodes.size() > 0)
900 vector<NodeSharedPtr> tmp;
901 (*it2)->GetCurvedNodes(tmp);
904 cinfo.
id = facecnt++;
907 cinfo.
ptype = (*it2)->m_curveType;
911 faceinfo.push_back(cinfo);
913 for (
int i = 0; i < tmp.size(); ++i)
915 pair<NodeSet::iterator, bool> testIns =
916 cvertlist.insert(tmp[i]);
920 (*(testIns.first))->m_id = newidx;
927 curvedpts.
pts.push_back(v);
930 curvedpts.
index.push_back((*(testIns.first))->m_id);
940 curved->SetAttribute(
942 curved->SetAttribute(
"BITSIZE",
945 TiXmlElement *x =
new TiXmlElement(
"E");
949 x->LinkEndChild(
new TiXmlText(dataStr));
950 curved->LinkEndChild(x);
955 curved->SetAttribute(
957 curved->SetAttribute(
"BITSIZE",
960 TiXmlElement *x =
new TiXmlElement(
"F");
964 x->LinkEndChild(
new TiXmlText(dataStr));
965 curved->LinkEndChild(x);
968 if (edgeinfo.size() || faceinfo.size())
970 TiXmlElement *x =
new TiXmlElement(
"DATAPOINTS");
971 x->SetAttribute(
"ID", curvedpts.
id);
973 TiXmlElement *subx =
new TiXmlElement(
"INDEX");
977 subx->LinkEndChild(
new TiXmlText(dataStr));
978 x->LinkEndChild(subx);
980 subx =
new TiXmlElement(
"POINTS");
983 subx->LinkEndChild(
new TiXmlText(dataStr));
984 x->LinkEndChild(subx);
986 curved->LinkEndChild(x);
989 pRoot->LinkEndChild(curved);
994 TiXmlElement *verTag =
new TiXmlElement(
"COMPOSITE");
999 for (it =
m_mesh->m_composite.begin(); it !=
m_mesh->m_composite.end();
1002 if (it->second->m_items.size() > 0)
1004 TiXmlElement *comp_tag =
new TiXmlElement(
"C");
1008 for (it2 =
m_mesh->m_condition.begin();
1009 it2 !=
m_mesh->m_condition.end();
1021 for (
int i = 0; i < c->m_composite.size(); ++i)
1023 if (c->m_composite[i] == j)
1030 doSort = doSort && it->second->m_reorder;
1031 comp_tag->SetAttribute(
"ID", it->second->m_id);
1032 if (it->second->m_label.size())
1034 comp_tag->SetAttribute(
"LABEL", it->second->m_label);
1036 comp_tag->LinkEndChild(
1037 new TiXmlText(it->second->GetXmlString(doSort)));
1038 verTag->LinkEndChild(comp_tag);
1042 cout <<
"Composite " << it->second->m_id <<
" "
1043 <<
"contains nothing." << endl;
1047 pRoot->LinkEndChild(verTag);
1053 TiXmlElement *domain =
new TiXmlElement(
"DOMAIN");
1057 for (it =
m_mesh->m_composite.begin(); it !=
m_mesh->m_composite.end();
1060 if (it->second->m_items[0]->GetDim() ==
m_mesh->m_expDim)
1062 if (list.length() > 0)
1066 list += boost::lexical_cast<std::string>(it->second->m_id);
1069 domain->LinkEndChild(
new TiXmlText(
" C[" + list +
"] "));
1070 pRoot->LinkEndChild(domain);
1076 TiXmlElement *expansions =
new TiXmlElement(
"EXPANSIONS");
1079 for (it =
m_mesh->m_composite.begin(); it !=
m_mesh->m_composite.end();
1082 if (it->second->m_items[0]->GetDim() ==
m_mesh->m_expDim)
1084 TiXmlElement *exp =
new TiXmlElement(
"E");
1087 "C[" + boost::lexical_cast<std::string>(it->second->m_id) +
1089 exp->SetAttribute(
"NUMMODES", 4);
1090 exp->SetAttribute(
"TYPE",
"MODIFIED");
1092 if (
m_mesh->m_fields.size() == 0)
1094 exp->SetAttribute(
"FIELDS",
"u");
1099 for (
int i = 0; i <
m_mesh->m_fields.size(); ++i)
1101 fstr +=
m_mesh->m_fields[i] +
",";
1103 fstr = fstr.substr(0, fstr.length() - 1);
1104 exp->SetAttribute(
"FIELDS", fstr);
1107 expansions->LinkEndChild(exp);
1110 pRoot->LinkEndChild(expansions);
1115 TiXmlElement *conditions =
new TiXmlElement(
"CONDITIONS");
1116 TiXmlElement *boundaryregions =
new TiXmlElement(
"BOUNDARYREGIONS");
1117 TiXmlElement *boundaryconditions =
new TiXmlElement(
"BOUNDARYCONDITIONS");
1118 TiXmlElement *variables =
new TiXmlElement(
"VARIABLES");
1121 for (it =
m_mesh->m_condition.begin(); it !=
m_mesh->m_condition.end();
1128 TiXmlElement *b =
new TiXmlElement(
"B");
1129 b->SetAttribute(
"ID", boost::lexical_cast<string>(it->first));
1131 for (
int i = 0; i < c->m_composite.size(); ++i)
1133 tmp += boost::lexical_cast<
string>(c->m_composite[i]) +
",";
1136 tmp = tmp.substr(0, tmp.length() - 1);
1138 TiXmlText *t0 =
new TiXmlText(
"C[" + tmp +
"]");
1139 b->LinkEndChild(t0);
1140 boundaryregions->LinkEndChild(b);
1142 TiXmlElement *region =
new TiXmlElement(
"REGION");
1143 region->SetAttribute(
"REF", boost::lexical_cast<string>(it->first));
1145 for (
int i = 0; i < c->type.size(); ++i)
1167 TiXmlElement *tag =
new TiXmlElement(tagId);
1168 tag->SetAttribute(
"VAR", c->field[i]);
1169 tag->SetAttribute(
"VALUE", c->value[i]);
1173 tag->SetAttribute(
"USERDEFINEDTYPE",
"H");
1176 region->LinkEndChild(tag);
1179 boundaryconditions->LinkEndChild(region);
1182 for (
int i = 0; i <
m_mesh->m_fields.size(); ++i)
1184 TiXmlElement *v =
new TiXmlElement(
"V");
1185 v->SetAttribute(
"ID", boost::lexical_cast<std::string>(i));
1186 TiXmlText *t0 =
new TiXmlText(
m_mesh->m_fields[i]);
1187 v->LinkEndChild(t0);
1188 variables->LinkEndChild(v);
1191 if (
m_mesh->m_fields.size() > 0)
1193 conditions->LinkEndChild(variables);
1196 if (
m_mesh->m_condition.size() > 0)
1198 conditions->LinkEndChild(boundaryregions);
1199 conditions->LinkEndChild(boundaryconditions);
1202 pRoot->LinkEndChild(conditions);
void WriteXmlCurves(TiXmlElement *pRoot)
Writes the section of the XML file if needed.
#define ASSERTL0(condition, msg)
virtual void Process()
Write mesh to output file.
static boost::shared_ptr< MeshGraph > Read(const LibUtilities::SessionReaderSharedPtr &pSession, DomainRangeShPtr &rng=NullDomainRangeShPtr)
NekInt64 ptoffset
the id of point data map (currently always 0 since we are using just one set).
void WriteXmlFaces(TiXmlElement *pRoot)
Writes the section of the XML file if needed.
const std::string kPointsTypeStr[]
void WriteXmlNodes(TiXmlElement *pRoot)
Writes the section of the XML file.
std::vector< NekInt64 > index
id of this Point set
Abstract base class for output modules.
pair< ModuleType, string > ModuleKey
MeshSharedPtr m_mesh
Mesh object.
void TestElmts(SpatialDomains::MeshGraphSharedPtr &graph)
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
NekInt64 entityid
Id of this curved information.
boost::unordered_set< NodeSharedPtr, NodeHash > NodeSet
std::string GetCompressString(void)
1D Evenly-spaced points using Lagrange polynomial
static SessionReaderSharedPtr CreateInstance(int argc, char *argv[])
Creates an instance of the SessionReader class.
string GetXmlString(char tag, vector< unsigned int > &ids)
NekInt64 npoints
The entity id corresponding to the global edge/curve.
Represents a command-line configuration option.
boost::shared_ptr< Node > NodeSharedPtr
std::map< std::string, ConfigOption > m_config
List of configuration values.
boost::shared_ptr< Condition > ConditionSharedPtr
int ZlibEncodeToBase64Str(std::vector< T > &in, std::string &out64)
NekInt64 ptype
point offset of data entry for this curve
void WriteXmlExpansions(TiXmlElement *pRoot)
Writes the section of the XML file.
boost::shared_ptr< Edge > EdgeSharedPtr
Shared pointer to an edge.
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs typedef NekMatrix< LhsDataType, StandardMatrixTag >::iterator iterator
std::string GetBitSizeStr(void)
boost::shared_ptr< Mesh > MeshSharedPtr
Shared pointer to a mesh.
void WriteXmlDomain(TiXmlElement *pRoot)
Writes the section of the XML file.
void WriteXmlComposites(TiXmlElement *pRoot)
Writes the section of the XML file.
void WriteXmlElements(TiXmlElement *pRoot)
Writes the section of the XML file.
NekInt64 ptid
The number of points in this curved entity.
std::vector< MeshVertex > pts
mapping to access pts value.
InputIterator find(InputIterator first, InputIterator last, InputIterator startingpoint, const EqualityComparable &value)
void WriteXmlConditions(TiXmlElement *pRoot)
Writes the section of the XML file.
boost::unordered_map< int, CurveSharedPtr > CurveMap
boost::shared_ptr< Face > FaceSharedPtr
void WriteXmlEdges(TiXmlElement *pRoot)
Writes the section of the XML file.
std::pair< ModuleType, std::string > ModuleKey
boost::shared_ptr< MeshGraph > MeshGraphSharedPtr
boost::shared_ptr< Geometry > GeometrySharedPtr
ModuleFactory & GetModuleFactory()
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.