2009-01-13 04:40:13 +05:00
|
|
|
#ifndef CLUSTERS
|
|
|
|
#define CLUSTERS
|
|
|
|
|
|
|
|
/**************************************************************************/
|
|
|
|
/* File: clusers.hh */
|
|
|
|
/* Author: Joachim Schoeberl */
|
|
|
|
/* Date: 28. Apr. 01 */
|
|
|
|
/**************************************************************************/
|
|
|
|
|
|
|
|
/*
|
|
|
|
Anisotropic clusters
|
|
|
|
|
|
|
|
nodes, edges, faces, elements
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
class AnisotropicClusters
|
|
|
|
{
|
|
|
|
const Mesh & mesh;
|
|
|
|
|
|
|
|
int nv, ned, nfa, ne;
|
|
|
|
|
|
|
|
// connected nodes, nodes = vertices, edges, faces, elements
|
2009-01-25 17:35:25 +05:00
|
|
|
Array<int> cluster_reps;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
public:
|
|
|
|
AnisotropicClusters (const Mesh & amesh);
|
|
|
|
~AnisotropicClusters();
|
|
|
|
|
2016-11-20 23:55:17 +05:00
|
|
|
void Update(TaskManager tm = &DummyTaskManager);
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
int GetVertexRepresentant (int vnr) const
|
|
|
|
{ return cluster_reps.Get(vnr); }
|
|
|
|
int GetEdgeRepresentant (int ednr) const
|
|
|
|
{ return cluster_reps.Get(nv+ednr); }
|
|
|
|
int GetFaceRepresentant (int fnr) const
|
|
|
|
{ return cluster_reps.Get(nv+ned+fnr); }
|
|
|
|
int GetElementRepresentant (int enr) const
|
|
|
|
{ return cluster_reps.Get(nv+ned+nfa+enr); }
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|