64 ConfigOption(
false,
"-1",
"Tag identifying surface to process.");
78 set<pair<int, int> > tmp;
79 int surfTag =
m_config[
"surf"].as<
int>();
80 int prismedge[2][3] = {{0, 5, 4}, {2, 6, 7}};
82 int dim =
m_mesh->m_expDim;
84 for (
int i = 0; i <
m_mesh->m_element[dim].size(); ++i)
87 int nSurf = dim == 3 ? el->GetFaceCount() : el->GetEdgeCount();
89 for (
int j = 0; j < nSurf; ++j)
91 int bl = el->GetBoundaryLink(j);
98 vector<int> tags = bEl->GetTagList();
100 if (
find(tags.begin(), tags.end(), surfTag) == tags.end())
108 for (
int k = 0; k < 3; ++k)
123 double r =
m_config[
"r"].as<
double>();
124 double t1 = atan2(n1->m_y, n1->m_x);
125 double t2 = atan2(n2->m_y, n2->m_x);
129 if (t1 < -M_PI / 2.0 && t2 > 0.0)
133 if (t2 < -M_PI / 2.0 && t1 > 0.0)
138 dt = (t2 - t1) / (nq - 1);
139 dz = (n2->m_z - n1->m_z) / (nq - 1);
141 edge->m_edgeNodes.resize(nq - 2);
142 Node dx = (*n2 - *n1) * (1.0 / (nq - 1.0));
143 for (
int i = 1; i < nq - 1; ++i)
146 0, r * cos(t1 + i * dt), r * sin(t1 + i * dt), n1->m_z + i * dz));
#define ASSERTL0(condition, msg)
pair< ModuleType, string > ModuleKey
virtual ~ProcessCyl()
Destructor.
map< string, ConfigOption > m_config
List of configuration values.
MeshSharedPtr m_mesh
Mesh object.
Represents a point in the domain.
1D Evenly-spaced points using Lagrange polynomial
boost::shared_ptr< Node > NodeSharedPtr
virtual void Process()
Write mesh to output file.
Represents a command-line configuration option.
boost::shared_ptr< Edge > EdgeSharedPtr
Shared pointer to an edge.
boost::shared_ptr< Mesh > MeshSharedPtr
Shared pointer to a mesh.
InputIterator find(InputIterator first, InputIterator last, InputIterator startingpoint, const EqualityComparable &value)
boost::shared_ptr< Element > ElementSharedPtr
void GenerateEdgeNodes(EdgeSharedPtr edge)
ModuleFactory & GetModuleFactory()
Abstract base class for processing modules.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.