Dune Core Modules (unstable)

Dependency policy for symmetric matrices. More...

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

Public Types

typedef M Matrix
 The matrix type we build the dependency of.
 
typedef N 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 setDebugLevel (int level)
 Set the debugging level. More...
 
int debugLevel () const
 Get the debugging Level. More...
 
void setNoPreSmoothSteps (std::size_t steps)
 Set the number of presmoothing steps to apply. More...
 
std::size_t getNoPreSmoothSteps () const
 Get the number of presmoothing steps to apply. More...
 
void setNoPostSmoothSteps (std::size_t steps)
 Set the number of postsmoothing steps to apply. More...
 
std::size_t getNoPostSmoothSteps () const
 Get the number of postsmoothing steps to apply. More...
 
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. More...
 
bool getAdditive () const
 Get whether to use additive multigrid. More...
 
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. More...
 
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 the data should be accumulated on fewer processes on coarser levels.
 
bool useFixedOrder () const
 Check if the indices for the coarser levels should be created in a fixed order.
 
void setProlongationDampingFactor (double d)
 Set the damping factor for the prolongation. More...
 
double getProlongationDampingFactor () const
 Get the damping factor for the prolongation. More...
 
void setDefaultValuesIsotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an isotropic problem. More...
 
void setDefaultValuesAnisotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an anisotropic problem. More...
 
std::size_t maxDistance () const
 Get the maximal distance allowed between two nodes in a aggregate. More...
 
void setMaxDistance (std::size_t distance)
 Set the maximal distance allowed between two nodes in a aggregate. More...
 
bool skipIsolated () const
 Whether isolated aggregates will not be represented on the coarse level. More...
 
void setSkipIsolated (bool skip)
 Set whether isolated aggregates will not be represented on the coarse level. More...
 
std::size_t minAggregateSize () const
 Get the minimum number of nodes a aggregate has to consist of. More...
 
void setMinAggregateSize (std::size_t size)
 Set the minimum number of nodes a aggregate has to consist of. More...
 
std::size_t maxAggregateSize () const
 Get the maximum number of nodes a aggregate is allowed to have. More...
 
void setMaxAggregateSize (std::size_t size)
 Set the maximum number of nodes a aggregate is allowed to have. More...
 
std::size_t maxConnectivity () const
 Get the maximum number of connections a aggregate is allowed to have. More...
 
void setMaxConnectivity (std::size_t connectivity)
 Set the maximum number of connections a aggregate is allowed to have. More...
 
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. More...
 
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.
 

Protected Attributes

const Matrixmatrix_
 The matrix we work on.
 
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 N>
class Dune::Amg::SymmetricMatrixDependency< M, N >

Dependency policy for symmetric matrices.

We assume that not only the sparsity pattern is symmetric but also the entries (a_ij=aji). If that is not the case the resulting dependency graph might be unsymmetric.

Template Parameters
MThe type of the matrix
NThe type of the metric that turns matrix blocks into field values

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 21, 23:30, 2024)