dune-istl
2.1.1
|
Criterion taking advantage of symmetric matrices. More...
#include <dune/istl/paamg/aggregates.hh>
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 |
Whether isolated aggregates will not be represented on the coarse level. | |
void | setSkipIsolated (bool skip) |
Set whether isolated aggregates will not be represented on the coarse level. | |
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. |
Criterion taking advantage of symmetric matrices.
The two template parameters are:
typedef Matrix::ConstColIterator Dune::Amg::SymmetricDependency< M, Norm >::ColIter [inherited] |
Constant column iterator of the matrix.
typedef SymmetricDependency< M, Norm > Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::DependencyPolicy [inherited] |
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.
typedef Matrix::row_type Dune::Amg::SymmetricDependency< M, Norm >::Row [inherited] |
Constant Row iterator of the matrix.
int Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::debugLevel | ( | ) | const [inline, inherited] |
Get the debugging Level.
void Dune::Amg::SymmetricDependency< M, Norm >::examine | ( | const ColIter & | col | ) | [inherited] |
void Dune::Amg::SymmetricDependency< M, Norm >::examine | ( | G & | graph, |
const typename G::EdgeIterator & | edge, | ||
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.
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.
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.
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.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setDebugLevel | ( | int | level | ) | [inline, inherited] |
Set the debugging level.
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).
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.
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.
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.
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.
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.
void Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setSkipIsolated | ( | bool | skip | ) | [inline, inherited] |
Set whether isolated aggregates will not be represented on the coarse level.
skip | True if these aggregates will be skipped. |
bool Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::skipIsolated | ( | ) | const [inline, inherited] |
Whether isolated aggregates will not be represented on the coarse level.