dune-istl 2.9.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
Dune::Amg::UnSymmetricCriterion< M, Norm > Class Template Reference

Criterion suitable for unsymmetric matrices. More...

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

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

Public Types

typedef Dependency< M, NormDependencyPolicy
 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

 UnSymmetricCriterion (const Parameters &parms)
 
 UnSymmetricCriterion ()
 
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.
 
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 setDebugLevel (int level)
 Set the debugging level.
 
int debugLevel () const
 Get the debugging Level.
 
void setNoPreSmoothSteps (std::size_t steps)
 Set the number of presmoothing steps to apply.
 
std::size_t getNoPreSmoothSteps () const
 Get the number of presmoothing steps to apply.
 
void setNoPostSmoothSteps (std::size_t steps)
 Set the number of postsmoothing steps to apply.
 
std::size_t getNoPostSmoothSteps () const
 Get the number of postsmoothing steps to apply.
 
void setGamma (std::size_t gamma)
 Set the value of gamma; 1 for V-cycle, 2 for W-cycle.
 
std::size_t getGamma () const
 Get the value of gamma; 1 for V-cycle, 2 for W-cycle.
 
void setAdditive (bool additive)
 Set whether to use additive multigrid.
 
bool getAdditive () const
 Get whether to use additive multigrid.
 
void setMaxLevel (int l)
 Set the maximum number of levels allowed in the hierarchy.
 
int maxLevel () const
 Get the maximum number of levels allowed in the hierarchy.
 
void setCoarsenTarget (int nodes)
 Set the maximum number of unknowns allowed on the coarsest level.
 
int coarsenTarget () const
 Get the maximum number of unknowns allowed on the coarsest level.
 
void setMinCoarsenRate (double rate)
 Set the minimum coarsening rate to be achieved in each coarsening.
 
double minCoarsenRate () const
 Get the minimum coarsening rate to be achieved.
 
AccumulationMode accumulate () const
 Whether the data should be accumulated on fewer processes on coarser levels.
 
void setAccumulate (AccumulationMode accu)
 Set whether he data should be accumulated on fewer processes on coarser levels.
 
void setAccumulate (bool accu)
 
void setProlongationDampingFactor (double d)
 Set the damping factor for the prolongation.
 
double getProlongationDampingFactor () const
 Get the damping factor for the prolongation.
 
std::size_t maxDistance () const
 Get the maximal distance allowed between two nodes in a aggregate.
 
void setMaxDistance (std::size_t distance)
 Set the maximal distance allowed between two 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 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.
 

Protected Types

typedef Matrix::field_type field_type
 The current max value.
 
typedef FieldTraits< field_type >::real_type real_type
 

Protected Attributes

const Matrixmatrix_
 The matrix we work on.
 
real_type maxValue_
 
Norm norm_
 The functor for calculating the norm.
 
int row_
 index of the currently evaluated row.
 
real_type diagonal_
 The norm of the current diagonal.
 

Detailed Description

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

Criterion suitable for unsymmetric matrices.

Nevertheless the sparsity pattern has to be symmetric.

Template Parameters
MThe type of the matrix the amg coarsening works on, e.g. BCRSMatrix
NormThe norm to use to determine the strong couplings between the nodes, e.g. FirstDiagonal or RowSum.

Member Typedef Documentation

◆ ColIter

typedef Matrix::ConstColIterator Dune::Amg::Dependency< M, Norm >::ColIter
inherited

Constant column iterator of the matrix.

◆ DependencyPolicy

typedef Dependency< M, Norm > Dune::Amg::AggregationCriterion< Dependency< M, Norm > >::DependencyPolicy
inherited

The policy for calculating the dependency graph.

◆ field_type

typedef Matrix::field_type Dune::Amg::Dependency< M, Norm >::field_type
protectedinherited

The current max value.

◆ Matrix

typedef M Dune::Amg::Dependency< M, Norm >::Matrix
inherited

The matrix type we build the dependency of.

◆ Norm

typedef Norm Dune::Amg::Dependency< M, Norm >::Norm
inherited

The norm to use for examining the matrix entries.

◆ real_type

typedef FieldTraits<field_type>::real_type Dune::Amg::Dependency< M, Norm >::real_type
protectedinherited

◆ Row

typedef Matrix::row_type Dune::Amg::Dependency< M, Norm >::Row
inherited

Constant Row iterator of the matrix.

Member Function Documentation

◆ examine() [1/2]

void Dune::Amg::Dependency< M, Norm >::examine ( const ColIter & col)
inherited

◆ examine() [2/2]

void Dune::Amg::Dependency< M, Norm >::examine ( G & graph,
const typename G::EdgeIterator & edge,
const ColIter & col )
inherited

◆ init()

void Dune::Amg::Dependency< M, Norm >::init ( const Matrix * matrix)
inherited

◆ initRow()

void Dune::Amg::Dependency< M, Norm >::initRow ( const Row & row,
int index )
inherited

◆ isIsolated()

bool Dune::Amg::Dependency< M, Norm >::isIsolated ( )
inherited

◆ setDefaultValuesAnisotropic()

void Dune::Amg::AggregationCriterion< Dependency< M, Norm > >::setDefaultValuesAnisotropic ( std::size_t dim,
std::size_t diameter = 2 )
inlineinherited

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
dimThe dimension of the problem.
diameterThe preferred diameter for the aggregation.

◆ setDefaultValuesIsotropic()

void Dune::Amg::AggregationCriterion< Dependency< M, Norm > >::setDefaultValuesIsotropic ( std::size_t dim,
std::size_t diameter = 2 )
inlineinherited

Sets reasonable default values for an isotropic problem.

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

Parameters
dimThe dimension of the problem.
diameterThe preferred diameter for the aggregation.

Member Data Documentation

◆ diagonal_

real_type Dune::Amg::Dependency< M, Norm >::diagonal_
protectedinherited

The norm of the current diagonal.

◆ matrix_

const Matrix* Dune::Amg::Dependency< M, Norm >::matrix_
protectedinherited

The matrix we work on.

◆ maxValue_

real_type Dune::Amg::Dependency< M, Norm >::maxValue_
protectedinherited

◆ norm_

Norm Dune::Amg::Dependency< M, Norm >::norm_
protectedinherited

The functor for calculating the norm.

◆ row_

int Dune::Amg::Dependency< M, Norm >::row_
protectedinherited

index of the currently evaluated row.


The documentation for this class was generated from the following file: