H2Lib  3.0
Functions
ddcluster

Routines for Domain Decomposition Clustering. More...

Functions

pcluster build_regular_dd_cluster (pclustergeometry cg, uint size, uint *idx, uint clf, psparsematrix sp, uint dim, uint direction, uint *flag)
 Build a cluster tree from a clustergeometry object using regular Domain Decomposition Clustering. More...
 
pcluster build_adaptive_dd_cluster (pclustergeometry cg, uint size, uint *idx, uint clf, psparsematrix sp, uint dim, uint *flag)
 Build a cluster tree from a clustergeometry object using adaptive Domain Decomposition Clustering. More...
 
bool admissible_dd_cluster (pcluster s, pcluster t, void *data)
 Check the domain decomposition admissibility condition. More...
 
pcluster build_adaptive_fromcluster_cluster (pcluster ctri, pclustergeometry cg, uint size, uint *idx, uint clf, uint dim)
 Build a cluster tree from a clustergeometry object basing on the clustering of the elements. More...
 

Detailed Description

Routines for Domain Decomposition Clustering.

This module contains routines for regular and adaptive domain decomposition clustering.

Function Documentation

bool admissible_dd_cluster ( pcluster  s,
pcluster  t,
void *  data 
)

Check the domain decomposition admissibility condition.

Checks the domain decomposition admissibility of two cluster trees $ s $ and $ t $. The block $ (s,t) $ is admissible, if $ s $ and $ t $ are two disjunct domain cluster or admissible_2_min-cluster $ (s, t)$ is TRUE.

Parameters
sRow cluster.
tCol cluster.
dataHas to be a pointer to real.
Returns
TRUE,if the block $ (s,t) $ is admissible, otherwise FALSE.
pcluster build_adaptive_dd_cluster ( pclustergeometry  cg,
uint  size,
uint idx,
uint  clf,
psparsematrix  sp,
uint  dim,
uint flag 
)

Build a cluster tree from a clustergeometry object using adaptive Domain Decomposition Clustering.

Builds an adaptive cluster tree basing on the geometrical informations of the clustergeometry object using a domain decomposition method. The indices are splitted into three sons, two of the sons (domain cluster) contain the indices correponding to two disconnected sub domains, the third one contains the indices of the separator. Therefore the sparsematrix is useful. The splitting is adaptive in the direction with the largest spatial extension and the index set is splitted accordingly, if its size is greater than the leaf size, else the cluster is a leaf cluster. During this clustering the bounding boxes are updated.

Parameters
cgClustergeometry object with geometrical information.
sizeNumber of indices.
idxIndex set.
clfMaximal leaf size.
spSparsematrix, used for connectivity information.
dimDimension of Clustering.
flagAuxiliary array, has to be initialised with zeros.
Returns
cluster tree basing on adaptive domain decomposition clustering.
pcluster build_adaptive_fromcluster_cluster ( pcluster  ctri,
pclustergeometry  cg,
uint  size,
uint idx,
uint  clf,
uint  dim 
)

Build a cluster tree from a clustergeometry object basing on the clustering of the elements.

Builds a cluster tree basing on the geometrical informations of the clustergeometry object and the clustering of the elements stored in the cluster tree object ctri. The indices are splitted into three sons, two of the sons (domain cluster) contain the indices correponding to two disconnected sub domains, the third one contains the indices of the separator. Therefore the sparsematrix is useful. The splitting is corresponding to the splitting of the cluster tree ctri and the index set is splitted accordingly, if ctri has sons, else the cluster is a leaf cluster. During this clustering the bounding boxes are updated.

Remarks
The cluster tree object ctri should be built with one of the standard routines from cluster.h.
Parameters
ctriCluster tree object.
cgClustergeometry object with geometrical information.
sizeNumber of indices.
idxIndex set.
clfMaximal leaf size,
dimDimension of Clustering.
Returns
cluster tree basing on the clustering of the underlying cluster tree object
pcluster build_regular_dd_cluster ( pclustergeometry  cg,
uint  size,
uint idx,
uint  clf,
psparsematrix  sp,
uint  dim,
uint  direction,
uint flag 
)

Build a cluster tree from a clustergeometry object using regular Domain Decomposition Clustering.

Builds a regular cluster tree basing on the geometrical informations of the clustergeometry object using a domain decomposition method. The indices are splitted into three sons, two of the sons (domain clusters) contain the indices correponding to two disconnected sub domains, the third one contains the indices of the separator. Therefore the sparsematrix is useful. The splitting is regular. It starts with the forwarded direction and the following directions are chosen via cycling through all possible directions. If the size of the index set is greater than the leaf size, the cluster is splitted, else it is a leaf cluster. During this clustering the bounding boxes are updated.

Parameters
cgClustergeometry object with geometrical information.
sizeNumber of indices.
idxIndex set.
clfMaximal leaf size.
spSparsematrix, used for connectivity information.
dimDimension of Clustering.
directionDirection for the next splitting step.
flagAuxiliary array, has to be initialised with zeros.
Returns
cluster tree basing on regular domain decomposition clustering.