47 ProcessLinear::create,
53 ConfigOption(
true,
"0",
"remove curve nodes for all elements.");
55 ConfigOption(
true,
"0",
"remove curve nodes if element is invalid.");
66 cout <<
"ProcessLinear: Linearising mesh... " << endl;
69 bool all =
m_config[
"all"].as<
bool>();
70 bool invalid =
m_config[
"invalid"].as<
bool>();
72 ASSERTL0(all || invalid,
"must specify option all or invalid");
77 for (eit =
m_mesh->m_edgeSet.begin(); eit !=
m_mesh->m_edgeSet.end();
80 (*eit)->m_edgeNodes.clear();
84 for (fit =
m_mesh->m_faceSet.begin(); fit !=
m_mesh->m_faceSet.end();
87 (*fit)->m_faceNodes.clear();
90 for (
int i = 0; i <
m_mesh->m_element[
m_mesh->m_expDim].size(); i++)
92 vector<NodeSharedPtr> empty;
93 m_mesh->m_element[
m_mesh->m_expDim][i]->SetVolumeNodes(empty);
101 for (fit =
m_mesh->m_faceSet.begin();
102 fit !=
m_mesh->m_faceSet.end();
105 ASSERTL0((*fit)->m_faceNodes.size() == 0,
106 "has not be setup to handle face curvature yet");
110 vector<ElementSharedPtr> el =
m_mesh->m_element[
m_mesh->m_expDim];
112 for (
int i = 0; i < el.size(); ++i)
116 el[i]->GetGeom(
m_mesh->m_spaceDim);
123 if (!gfac->IsValid())
126 vector<FaceSharedPtr> f = el[i]->GetFaceList();
127 for (
int j = 0; j < f.size(); j++)
129 vector<EdgeSharedPtr> e = f[j]->m_edgeList;
130 for (
int k = 0; k < e.size(); k++)
132 if (e[k]->m_edgeNodes.size())
134 vector<NodeSharedPtr> zeroNodes;
135 e[k]->m_edgeNodes = zeroNodes;
#define ASSERTL0(condition, msg)
pair< ModuleType, string > ModuleKey
virtual void Process()
Write mesh to output file.
map< string, ConfigOption > m_config
List of configuration values.
MeshSharedPtr m_mesh
Mesh object.
Represents a command-line configuration option.
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs typedef NekMatrix< LhsDataType, StandardMatrixTag >::iterator iterator
boost::shared_ptr< Mesh > MeshSharedPtr
Shared pointer to a mesh.
boost::shared_ptr< GeomFactors > GeomFactorsSharedPtr
Pointer to a GeomFactors object.
boost::shared_ptr< Geometry > GeometrySharedPtr
ModuleFactory & GetModuleFactory()
Abstract base class for processing modules.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.