preCICE v3.1.2

Typedefs  
using  Vertices = std::vector<mesh::Vertex> 
Functions  
double  estimateClusterRadius (unsigned int verticesPerCluster, mesh::PtrMesh inMesh, const mesh::BoundingBox &bb) 
Computes an estimate for the cluster radius, which results in approximately verticesPerCluster vertices inside of each cluster. The algorithm generates random samples in the domain and queries the verticesPerCluster nearestneighbors from the mesh index tree. The cluster radius is then estimated through the distance between the center vertex (random sample) and the vertex the furthest away from the center (being on the edge of the cluster).  
std::tuple< double, Vertices >  createClustering (mesh::PtrMesh inMesh, mesh::PtrMesh outMesh, double relativeOverlap, unsigned int verticesPerCluster, bool projectClustersToInput) 
Creates a clustering as a collection of Vertices (representing the cluster centers) and a cluster radius, as required for the partition of unity mapping. The algorithm estimates a cluster radius based on the input parameter verticesPerCluster (see also estimateClusterRadius above, which is directly used by the function). Afterwards, the algorithm creates a cartesianlike grid of center vertices, where the distance of the centers is defined through the relativeOverlap and the cluster radius. The parameter projectClustersToInput moves the cartesian center vertices to the closest vertex from the input mesh, which is useful in case of very irregular meshes or shellshaped meshes. The algorithm also removes potentially empty cluster, i.e., clusters which would have either no vertex from the inMesh or from the outMesh . See also tagEmptyClusters.  
Definition at line 18 of file CreateClustering.hpp.

inline 
Creates a clustering as a collection of Vertices (representing the cluster centers) and a cluster radius, as required for the partition of unity mapping. The algorithm estimates a cluster radius based on the input parameter verticesPerCluster
(see also estimateClusterRadius above, which is directly used by the function). Afterwards, the algorithm creates a cartesianlike grid of center vertices, where the distance of the centers is defined through the relativeOverlap
and the cluster radius. The parameter projectClustersToInput
moves the cartesian center vertices to the closest vertex from the input mesh, which is useful in case of very irregular meshes or shellshaped meshes. The algorithm also removes potentially empty cluster, i.e., clusters which would have either no vertex from the inMesh
or from the outMesh
. See also tagEmptyClusters.
[in]  inMesh  The input mesh (input mesh for consistent, output mesh for conservative mappings), on which the clustering is computed. The input parameters verticesPerCluster and projectClustersToInput refer to the inMesh 
[in]  outMesh  The output mesh (output mesh for consistent, input mesh for conservative mappings), 
[in]  relativeOverlap  Value between zero and one, which steers the relative distance between cluster centers. A value of zero leads to no overlap, a value of one would lead to a complete overlap between clusters. 
[in]  verticesPerCluster  Target number of vertices per partition. 
[in]  projectClustersToInput  if enabled, moves the cluster centers to the closest vertex of the inMesh 
Definition at line 304 of file CreateClustering.hpp.

inline 
Computes an estimate for the cluster radius, which results in approximately verticesPerCluster
vertices inside of each cluster. The algorithm generates random samples in the domain and queries the verticesPerCluster
nearestneighbors from the mesh index tree. The cluster radius is then estimated through the distance between the center vertex (random sample) and the vertex the furthest away from the center (being on the edge of the cluster).
[in]  verticesPerCluster  target number of vertices in each cluster. 
[in]  inMesh  mesh we want to create the clustering on 
[in]  bb  bounding box of the domain. Used to place the random samples in the domain. 
Definition at line 225 of file CreateClustering.hpp.