coarsen.h File Reference

Functions to coarsen the cells in a SimpMeshRed. More...

#include "SimpMeshRed.h"
#include "geometry.h"
#include "topology.h"
#include "build.h"
#include "set.h"
#include "../iss/PointsOnManifold.h"
#include "../../../numerical/constants.h"
#include "coarsenN.ipp"

Go to the source code of this file.

Functions

template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD, class MinEdgeLength >
BEGIN_NAMESPACE_GEOM int coarsen (SimpMeshRed< 2, 2, T, Node, Cell, Cont > *mesh, const MinEdgeLength &f, T minimumAllowedQuality, T qualityFactor, PointsOnManifold< 2, 1, SD, T > *manifold, int maxSweeps=0)
 Coarsen the mesh using the minimum edge length function.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MinEdgeLength >
int coarsen (SimpMeshRed< 2, 2, T, Node, Cell, Cont > *mesh, const MinEdgeLength &f, T minimumAllowedQuality, T qualityFactor, T cornerDeviation=-1, int maxSweeps=0)
 Coarsen the mesh using the min edge length function.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD, class MinEdgeLength >
int coarsen (SimpMeshRed< 3, 2, T, Node, Cell, Cont > *mesh, const MinEdgeLength &f, T minimumAllowedQuality, T qualityFactor, PointsOnManifold< 3, 2, SD, T > *manifold, int maxSweeps=0)
 Coarsen the mesh using the min edge length function.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MinEdgeLength >
int coarsen (SimpMeshRed< 3, 2, T, Node, Cell, Cont > *mesh, const MinEdgeLength &f, T minimumAllowedQuality, T qualityFactor, T maxDihedralAngleDeviation=-1, T maxSolidAngleDeviation=-1, T maxBoundaryAngleDeviation=-1, int maxSweeps=0)
 Coarsen the mesh using the min edge length function.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD, class MinEdgeLength >
int coarsen (SimpMeshRed< 3, 3, T, Node, Cell, Cont > *mesh, const MinEdgeLength &f, T minimumAllowedQuality, T qualityFactor, PointsOnManifold< 3, 2, SD, T > *manifold, int maxSweeps=0)
 Coarsen the mesh using the min edge length function.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MinEdgeLength >
int coarsen (SimpMeshRed< 3, 3, T, Node, Cell, Cont > *mesh, const MinEdgeLength &f, T minimumAllowedQuality, T qualityFactor, T maxDihedralAngleDeviation=-1, T maxSolidAngleDeviation=-1, T maxBoundaryAngleDeviation=-1, int maxSweeps=0)
 Coarsen the mesh using the min edge length function.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, typename IntInIter >
int coarsen (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, IntInIter begin, IntInIter end)
 Collapse edges to remove the specified cells.

Detailed Description

Functions to coarsen the cells in a SimpMeshRed.


Function Documentation

template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, typename IntInIter >
int coarsen ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
IntInIter  begin,
IntInIter  end 
) [inline]

Collapse edges to remove the specified cells.

Parameters:
mesh The simplicial mesh.
begin The beginning of a range of cells.
end The end of a range of cells.
Returns:
the number of edges collapsed.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MinEdgeLength >
int coarsen ( SimpMeshRed< 3, 3, T, Node, Cell, Cont > *  mesh,
const MinEdgeLength &  f,
minimumAllowedQuality,
qualityFactor,
maxDihedralAngleDeviation = -1,
maxSolidAngleDeviation = -1,
maxBoundaryAngleDeviation = -1,
int  maxSweeps = 0 
) [inline]

Coarsen the mesh using the min edge length function.

Parameters:
mesh The simplicial mesh.
f The minimum edge length functor. The algorithm will try to collapse edges below this threshold.
minimumAllowedQuality A collapse is only allowed if the quality of the resulting elements is not less than this value.
qualityFactor A collapse is only allowed if the quality of the resulting elements is not less than the initial quality times this value.
maxDihedralAngleDeviation The maximum dihedral angle deviation (from straight) for a surface feature. The rest are edge features. If not specified, all interior edges will be set as surface features.
maxSolidAngleDeviation Solid angles that deviate more than this value (from $2 \pi$) are corner features. If not specified, this criterion will not be used to identify corners.
maxBoundaryAngleDeviation If the angle deviation (from $\pi$) between two boundary edges exceeds this value, it will be set as a corner feature. If not specified, this criterion will not be used to identify corners on the boundary.
maxSweeps The maximum number of sweeps over the vertices. By default, there is no limit on the number of sweeps.
Returns:
the number of edges collapsed.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD, class MinEdgeLength >
int coarsen ( SimpMeshRed< 3, 3, T, Node, Cell, Cont > *  mesh,
const MinEdgeLength &  f,
minimumAllowedQuality,
qualityFactor,
PointsOnManifold< 3, 2, SD, T > *  manifold,
int  maxSweeps = 0 
) [inline]

Coarsen the mesh using the min edge length function.

Parameters:
mesh The simplicial mesh.
f The minimum edge length functor. The algorithm will try to collapse edges below this threshold.
minimumAllowedQuality A collapse is only allowed if the quality of the resulting elements is not less than this value.
qualityFactor A collapse is only allowed if the quality of the resulting elements is not less than the initial quality times this value.
manifold The manifold data structure.
maxSweeps The maximum number of sweeps over the vertices. By default, there is no limit on the number of sweeps.
Returns:
the number of edges collapsed.

Only edges which are a common minimum edge are collapsed. Also, an edge may not be collapsed if its' endpoints are mirror nodes. (Doing so would tangle the mesh.) An interior edge may not be collapsed if both of its incident nodes lay on the boundary. (Doing so would change the topology of the mesh.)

template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MinEdgeLength >
int coarsen ( SimpMeshRed< 3, 2, T, Node, Cell, Cont > *  mesh,
const MinEdgeLength &  f,
minimumAllowedQuality,
qualityFactor,
maxDihedralAngleDeviation = -1,
maxSolidAngleDeviation = -1,
maxBoundaryAngleDeviation = -1,
int  maxSweeps = 0 
) [inline]

Coarsen the mesh using the min edge length function.

Parameters:
mesh The simplicial mesh.
f The minimum edge length functor. The algorithm will try to collapse edges below this threshold.
minimumAllowedQuality A collapse is only allowed if the quality of the resulting elements is not less than this value.
qualityFactor A collapse is only allowed if the quality of the resulting elements is not less than the initial quality times this value.
maxDihedralAngleDeviation The maximum dihedral angle deviation (from straight) for a surface feature. The rest are edge features. If not specified, all interior edges will be set as surface features.
maxSolidAngleDeviation Solid angles that deviate more than this value (from $2 \pi$) are corner features. If not specified, this criterion will not be used to identify corners.
maxBoundaryAngleDeviation If the angle deviation (from $\pi$) between two boundary edges exceeds this value, it will be set as a corner feature. If not specified, this criterion will not be used to identify corners on the boundary.
maxSweeps The maximum number of sweeps over the vertices. By default, there is no limit on the number of sweeps.
Returns:
the number of edges collapsed.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD, class MinEdgeLength >
int coarsen ( SimpMeshRed< 3, 2, T, Node, Cell, Cont > *  mesh,
const MinEdgeLength &  f,
minimumAllowedQuality,
qualityFactor,
PointsOnManifold< 3, 2, SD, T > *  manifold,
int  maxSweeps = 0 
) [inline]

Coarsen the mesh using the min edge length function.

Parameters:
mesh The simplicial mesh.
f The minimum edge length functor. The algorithm will try to collapse edges below this threshold.
minimumAllowedQuality A collapse is only allowed if the quality of the resulting elements is not less than this value.
qualityFactor A collapse is only allowed if the quality of the resulting elements is not less than the initial quality times this value.
manifold The manifold data structure.
maxSweeps The maximum number of sweeps over the vertices. By default, there is no limit on the number of sweeps.
Returns:
the number of edges collapsed.

Only edges which are a common minimum edge are collapsed. Also, an edge may not be collapsed if its' endpoints are mirror nodes. (Doing so would tangle the mesh.) An interior edge may not be collapsed if both of its incident nodes lay on the boundary. (Doing so would change the topology of the mesh.)

template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MinEdgeLength >
int coarsen ( SimpMeshRed< 2, 2, T, Node, Cell, Cont > *  mesh,
const MinEdgeLength &  f,
minimumAllowedQuality,
qualityFactor,
cornerDeviation = -1,
int  maxSweeps = 0 
) [inline]

Coarsen the mesh using the min edge length function.

Parameters:
mesh The simplicial mesh.
f The minimum edge length functor. The algorithm will try to collapse edges below this threshold.
minimumAllowedQuality A collapse is only allowed if the quality of the resulting elements is not less than this value.
qualityFactor A collapse is only allowed if the quality of the resulting elements is not less than the initial quality times this value.
cornerDeviation Any boundary node whose angle deviates from $ \pi $ more than this value will be considered a corner feature. If not specified, no vertices will be considered corner features.
maxSweeps The maximum number of sweeps over the vertices. By default, there is no limit on the number of sweeps.
Returns:
the number of edges collapsed.
template<class QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD, class MinEdgeLength >
BEGIN_NAMESPACE_GEOM int coarsen ( SimpMeshRed< 2, 2, T, Node, Cell, Cont > *  mesh,
const MinEdgeLength &  f,
minimumAllowedQuality,
qualityFactor,
PointsOnManifold< 2, 1, SD, T > *  manifold,
int  maxSweeps = 0 
) [inline]

Coarsen the mesh using the minimum edge length function.

Parameters:
mesh The simplicial mesh.
f The minimum edge length functor. The algorithm will try to collapse edges below this threshold.
minimumAllowedQuality A collapse is only allowed if the quality of the resulting elements is not less than this value.
qualityFactor A collapse is only allowed if the quality of the resulting elements is not less than the initial quality times this value.
manifold The manifold data structure.
maxSweeps The maximum number of sweeps over the vertices. By default, there is no limit on the number of sweeps.
Returns:
the number of edges collapsed.

Only edges which are a common minimum edge are collapsed. Also, an edge may not be collapsed if its' endpoints are mirror nodes. (Doing so would tangle the mesh.) An interior edge may not be collapsed if both of its incident nodes lay on the boundary. (Doing so would change the topology of the mesh.)

A boundary edge may not be collapsed if both of its nodes are corner features. (Doing so would change the corner features.)

Generated on Thu Jun 30 02:14:57 2016 for Computational Geometry Package by  doxygen 1.6.3