3 #ifndef DUNE_AMG_PARAMETERS_HH 4 #define DUNE_AMG_PARAMETERS_HH 33 : alpha_(1.0/3.0), beta_(1.0E-5)
94 : maxDistance_(2), minAggregateSize_(4), maxAggregateSize_(6),
95 connectivity_(15), skipiso_(false)
109 maxDistance_=diameter-1;
112 for(; dim>0; dim--) {
114 maxDistance_+=diameter-1;
116 minAggregateSize_=csize;
117 maxAggregateSize_=
static_cast<std::size_t
>(csize*1.5);
132 setDefaultValuesIsotropic(dim, diameter);
221 std::size_t maxDistance_, minAggregateSize_, maxAggregateSize_, connectivity_;
278 coarsenTarget_ = nodes;
286 return coarsenTarget_;
296 minCoarsenRate_ = rate;
304 return minCoarsenRate_;
342 return dampingFactor_;
356 : maxLevel_(maxLevel), coarsenTarget_(coarsenTarget), minCoarsenRate_(minCoarsenRate),
357 dampingFactor_(prolongDamp), accumulate_( accumulate)
372 double minCoarsenRate_;
376 double dampingFactor_;
420 preSmoothSteps_=steps;
428 return preSmoothSteps_;
437 postSmoothSteps_=steps;
445 return postSmoothSteps_;
491 Parameters(
int maxLevel=100,
int coarsenTarget=1000,
double minCoarsenRate=1.2,
494 , debugLevel_(2), preSmoothSteps_(2), postSmoothSteps_(2), gamma_(1),
499 std::size_t preSmoothSteps_;
500 std::size_t postSmoothSteps_;
AccumulationMode
Identifiers for the different accumulation modes.
Definition: parameters.hh:230
Parameters(int maxLevel=100, int coarsenTarget=1000, double minCoarsenRate=1.2, double prolongDamp=1.6, AccumulationMode accumulate=successiveAccu)
Constructor.
Definition: parameters.hh:491
void setGamma(std::size_t gamma)
Set the value of gamma; 1 for V-cycle, 2 for W-cycle.
Definition: parameters.hh:451
std::size_t maxConnectivity() const
Get the maximum number of connections a aggregate is allowed to have.
Definition: parameters.hh:209
Parameters needed to check whether a node depends on another.
Definition: parameters.hh:28
Successively accumulate to fewer processes.
Definition: parameters.hh:246
DependencyParameters()
Constructor.
Definition: parameters.hh:32
void setDebugLevel(int level)
Set the debugging level.
Definition: parameters.hh:399
bool getAdditive() const
Get whether to use additive multigrid.
Definition: parameters.hh:476
std::size_t minAggregateSize() const
Get the minimum number of nodes a aggregate has to consist of.
Definition: parameters.hh:178
void setDefaultValuesIsotropic(std::size_t dim, std::size_t diameter=2)
Sets reasonable default values for an isotropic problem.
Definition: parameters.hh:107
void setMaxConnectivity(std::size_t connectivity)
Set the maximum number of connections a aggregate is allowed to have.
Definition: parameters.hh:218
void setMaxDistance(std::size_t distance)
Set the maximal distance allowed between to nodes in a aggregate.
Definition: parameters.hh:152
void setCoarsenTarget(int nodes)
Set the maximum number of unknowns allowed on the coarsest level.
Definition: parameters.hh:276
void setAdditive(bool additive)
Set whether to use additive multigrid.
Definition: parameters.hh:467
void setMinCoarsenRate(double rate)
Set the minimum coarsening rate to be achieved in each coarsening.
Definition: parameters.hh:294
Parameters for the complete coarsening process.
Definition: parameters.hh:255
Parameters needed for the aggregation process,.
Definition: parameters.hh:80
int debugLevel() const
Get the debugging Level.
Definition: parameters.hh:409
void setAccumulate(AccumulationMode accu)
Set whether he data should be accumulated on fewer processes on coarser levels.
Definition: parameters.hh:317
void setNoPostSmoothSteps(std::size_t steps)
Set the number of postsmoothing steps to apply.
Definition: parameters.hh:435
int maxLevel() const
Get the maximum number of levels allowed in the hierarchy.
Definition: parameters.hh:268
void setSkipIsolated(bool skip)
Set whether isolated aggregates will not be represented on the coarse level.
Definition: parameters.hh:169
void setNoPreSmoothSteps(std::size_t steps)
Set the number of presmoothing steps to apply.
Definition: parameters.hh:418
void setMaxLevel(int l)
Set the maximum number of levels allowed in the hierarchy.
Definition: parameters.hh:261
AggregationParameters()
Constructor.
Definition: parameters.hh:93
double alpha() const
Get the scaling value for marking connections as strong. Default value is 1/3.
Definition: parameters.hh:68
std::size_t getGamma() const
Get the value of gamma; 1 for V-cycle, 2 for W-cycle.
Definition: parameters.hh:458
void setAlpha(double a)
Set the scaling value for marking connections as strong. Default value is 1/3.
Definition: parameters.hh:59
CoarseningParameters(int maxLevel=100, int coarsenTarget=1000, double minCoarsenRate=1.2, double prolongDamp=1.6, AccumulationMode accumulate=successiveAccu)
Constructor.
Definition: parameters.hh:354
std::size_t maxAggregateSize() const
Get the maximum number of nodes a aggregate is allowed to have.
Definition: parameters.hh:192
bool skipIsolated() const
Whether isolated aggregates will not be represented on the coarse level.
Definition: parameters.hh:159
std::size_t maxDistance() const
Get the maximal distance allowed between to nodes in a aggregate.
Definition: parameters.hh:142
double beta() const
Get the threshold for marking nodes as isolated. The default value is 1.0E-5.
Definition: parameters.hh:50
std::size_t getNoPostSmoothSteps() const
Get the number of postsmoothing steps to apply.
Definition: parameters.hh:443
All parameters for AMG.
Definition: parameters.hh:390
void setMaxAggregateSize(std::size_t size)
Set the maximum number of nodes a aggregate is allowed to have.
Definition: parameters.hh:200
void setAccumulate(bool accu)
Definition: parameters.hh:322
void setBeta(double b)
Set threshold for marking nodes as isolated. The default value is 1.0E-5.
Definition: parameters.hh:40
void setMinAggregateSize(std::size_t size)
Set the minimum number of nodes a aggregate has to consist of.
Definition: parameters.hh:186
double minCoarsenRate() const
Get the minimum coarsening rate to be achieved.
Definition: parameters.hh:302
std::size_t getNoPreSmoothSteps() const
Get the number of presmoothing steps to apply.
Definition: parameters.hh:426
Accumulate data to on process at once.
Definition: parameters.hh:242
void setDefaultValuesAnisotropic(std::size_t dim, std::size_t diameter=2)
Sets reasonable default values for an aisotropic problem.
Definition: parameters.hh:130
AccumulationMode accumulate() const
Whether the data should be accumulated on fewer processes on coarser levels.
Definition: parameters.hh:310
No data accumulution.
Definition: parameters.hh:236
int coarsenTarget() const
Get the maximum number of unknowns allowed on the coarsest level.
Definition: parameters.hh:284
void setProlongationDampingFactor(double d)
Set the damping factor for the prolongation.
Definition: parameters.hh:330
Definition: basearray.hh:19
double getProlongationDampingFactor() const
Get the damping factor for the prolongation.
Definition: parameters.hh:340