Dune::Amg::SymmetricCriterion< M, Norm > Class Template Reference
[Parallel Algebraic Multigrid]

Criterion taking advantage of symmetric matrices. More...

#include <dune/istl/paamg/aggregates.hh>

Inheritance diagram for Dune::Amg::SymmetricCriterion< M, Norm >:
Inheritance graph

List of all members.

Public Types

typedef SymmetricDependency< M,
Norm
DependencyPolicy
 The policy for calculating the dependency graph.
typedef M Matrix
 The matrix type we build the dependency of.
typedef Norm Norm
 The norm to use for examining the matrix entries.
typedef Matrix::row_type Row
 Constant Row iterator of the matrix.
typedef Matrix::ConstColIterator ColIter
 Constant column iterator of the matrix.

Public Member Functions

void setDefaultValuesIsotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an isotropic problem.
void setDefaultValuesAnisotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an aisotropic problem.
std::size_t maxDistance () const
 Get the maximal distance allowed between to nodes in a aggregate.
void setMaxDistance (std::size_t distance)
 Set the maximal distance allowed between to nodes in a aggregate.
bool skipIsolated () const
std::size_t minAggregateSize () const
 Get the minimum number of nodes a aggregate has to consist of.
void setMinAggregateSize (std::size_t size)
 Set the minimum number of nodes a aggregate has to consist of.
std::size_t maxAggregateSize () const
 Get the maximum number of nodes a aggregate is allowed to have.
void setMaxAggregateSize (std::size_t size)
 Set the maximum number of nodes a aggregate is allowed to have.
std::size_t maxConnectivity () const
 Get the maximum number of connections a aggregate is allowed to have.
void setMaxConnectivity (std::size_t connectivity)
 Set the maximum number of connections a aggregate is allowed to have.
void setDebugLevel (int level)
 Set the debugging level.
int debugLevel () const
 Get the debugging Level.
void init (const Matrix *matrix)
void initRow (const Row &row, int index)
void examine (const ColIter &col)
void examine (G &graph, const typename G::EdgeIterator &edge, const ColIter &col)
bool isIsolated ()
void setBeta (double b)
 Set threshold for marking nodes as isolated. The default value is 1.0E-5.
double beta () const
 Get the threshold for marking nodes as isolated. The default value is 1.0E-5.
void setAlpha (double a)
 Set the scaling value for marking connections as strong. Default value is 1/3.
double alpha () const
 Get the scaling value for marking connections as strong. Default value is 1/3.

Detailed Description

template<class M, class Norm>
class Dune::Amg::SymmetricCriterion< M, Norm >

Criterion taking advantage of symmetric matrices.

The two template parameters are:

M
The type of the matrix the amg coarsening works on, e. g. BCRSMatrix
Norm
The norm to use to determine the strong couplings between the nodes, e.g. FirstDiagonal or RowSum.

Member Typedef Documentation

Constant column iterator of the matrix.

The policy for calculating the dependency graph.

typedef M Dune::Amg::SymmetricDependency< M, Norm >::Matrix [inherited]

The matrix type we build the dependency of.

typedef Norm Dune::Amg::SymmetricDependency< M, Norm >::Norm [inherited]

The norm to use for examining the matrix entries.

Constant Row iterator of the matrix.


Member Function Documentation

int Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::debugLevel (  )  const [inline, inherited]

Get the debugging Level.

Returns:
0 if no debugging output will be generated.
void Dune::Amg::SymmetricDependency< M, Norm >::examine ( G &  graph,
const typename G::EdgeIterator &  edge,
const ColIter col 
) [inline, inherited]
void Dune::Amg::SymmetricDependency< M, Norm >::examine ( const ColIter col  )  [inherited]
void Dune::Amg::SymmetricDependency< M, Norm >::init ( const Matrix matrix  )  [inherited]
void Dune::Amg::SymmetricDependency< M, Norm >::initRow ( const Row row,
int  index 
) [inherited]
bool Dune::Amg::SymmetricDependency< M, Norm >::isIsolated (  )  [inherited]
std::size_t Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::maxAggregateSize (  )  const [inline, inherited]

Get the maximum number of nodes a aggregate is allowed to have.

Returns:
The maximum number of nodes.
std::size_t Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::maxConnectivity (  )  const [inline, inherited]

Get the maximum number of connections a aggregate is allowed to have.

This limit exists to achieve sparsity of the coarse matrix. the default value is 15.

Returns:
The maximum number of connections a aggregate is allowed to have.
std::size_t Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::maxDistance (  )  const [inline, inherited]

Get the maximal distance allowed between to nodes in a aggregate.

The distance between two nodes in a aggregate is the minimal number of edges it takes to travel from one node to the other without leaving the aggregate.

Returns:
The maximum distance allowed.
std::size_t Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::minAggregateSize (  )  const [inline, inherited]

Get the minimum number of nodes a aggregate has to consist of.

Returns:
The minimum number of nodes.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setDebugLevel ( int  level  )  [inline, inherited]

Set the debugging level.

Parameters:
level If 0 no debugging output will be generated.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setDefaultValuesAnisotropic ( std::size_t  dim,
std::size_t  diameter = 2 
) [inline, inherited]

Sets reasonable default values for an aisotropic problem.

Reasonable means that we should end up with cube aggregates with sides of diameter 2 and sides in one dimension that are longer (e.g. for 3D: 2x2x3).

Parameters:
dim The dimension of the problem.
diameter The preferred diameter for the aggregation.

References Dune::Amg::AggregationCriterion< T >::setDefaultValuesIsotropic().

void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setDefaultValuesIsotropic ( std::size_t  dim,
std::size_t  diameter = 2 
) [inline, inherited]

Sets reasonable default values for an isotropic problem.

Reasonable means that we should end up with cube aggregates of diameter 2.

Parameters:
dim The dimension of the problem.
diameter The preferred diameter for the aggregation.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setMaxAggregateSize ( std::size_t  size  )  [inline, inherited]

Set the maximum number of nodes a aggregate is allowed to have.

The default values is 6.

Parameters:
size The maximum number of nodes.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setMaxConnectivity ( std::size_t  connectivity  )  [inline, inherited]

Set the maximum number of connections a aggregate is allowed to have.

This limit exists to achieve sparsity of the coarse matrix. the default value is 15.

Parameters:
connectivity The maximum number of connections a aggregate is allowed to have.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setMaxDistance ( std::size_t  distance  )  [inline, inherited]

Set the maximal distance allowed between to nodes in a aggregate.

The distance between two nodes in a aggregate is the minimal number of edges it takes to travel from one node to the other without leaving the aggregate. The default value is 2.

Parameters:
distance The maximum distance allowed.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setMinAggregateSize ( std::size_t  size  )  [inline, inherited]

Set the minimum number of nodes a aggregate has to consist of.

the default value is 4.

Returns:
The minimum number of nodes.
bool Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::skipIsolated (  )  const [inline, inherited]

The documentation for this class was generated from the following file:
Generated on Sat Apr 24 11:13:50 2010 for dune-istl by  doxygen 1.6.3