59 ConfigOption(
false,
"-1",
"Tag identifying surface to process.");
72 int surfTag =
m_config[
"surf"].as<
int>();
73 int prismedge[2][3] = {{0, 5, 4}, {2, 6, 7}};
74 int dim =
m_mesh->m_expDim;
76 for (
int i = 0; i <
m_mesh->m_element[dim].size(); ++i)
79 int nSurf = dim == 3 ? el->GetFaceCount() : el->GetEdgeCount();
81 for (
int j = 0; j < nSurf; ++j)
83 int bl = el->GetBoundaryLink(j);
90 vector<int> tags = bEl->GetTagList();
92 if (
find(tags.begin(), tags.end(), surfTag) == tags.end())
109 "Curved edge needs to be on prism triangular face");
111 for (
int k = 0; k < 3; ++k)
114 el->GetEdge(prismedge[(j - 1) / 2][k]);
121 ASSERTL0(0,
"Dimension not supported");
#define ASSERTL0(condition, msg)
void GenerateEdgeNodes(NekMeshUtils::EdgeSharedPtr edge)
virtual void Process()
Write mesh to output file.
virtual ~ProcessCurvedEdges()
Destructor.
MeshSharedPtr m_mesh
Mesh object.
std::shared_ptr< Edge > EdgeSharedPtr
Shared pointer to an edge.
std::shared_ptr< Mesh > MeshSharedPtr
Shared pointer to a mesh.
std::shared_ptr< Element > ElementSharedPtr
Represents a command-line configuration option.
std::map< std::string, ConfigOption > m_config
List of configuration values.
Abstract base class for processing modules.
InputIterator find(InputIterator first, InputIterator last, InputIterator startingpoint, const EqualityComparable &value)