VectorCyclePattern.h

class VectorCyclePattern

Parent classes:

Create cycle pattern from vector by specifying number of cycles per level.

Examples for the initialization vector cycles_per_level:

Pattern Description
<1> direct solve only
<1,1> 2-grid V-cycle
<1,1,1> 3-grid V-cycle
<2,1,1> 3-grid VV-cycle
<1,2,1> 3-grid W-cycle
<2,2,1> 3-grid WW-cycle

Examples for concatenated cycle patterns (vec_cycles_per_level):

Vector Description
<<1,1,1>,<1,2,1>> 3-grid VW-cycle
<<1,2,1,1>,<1,1,1,1>> 4-grid wV-cycle (w: 3-grid W-cycle)

Methods:

VectorCyclePattern()

Create empty cycle pattern. Use add_pattern(...) for initialization in derived class.

VectorCyclePattern(const std::vector<dolfin::uint>& cycles_per_level)

Create cycle pattern from vector by specifying number of cycles per level.

VectorCyclePattern(const std::vector<std::vector<dolfin::uint>>& vec_cycles_per_level)

Create concatenated cycle pattern from vector of vectors each specifying number of cycles per level.

VectorCyclePattern(const std::string& pattern, dolfin::uint number_of_levels)

Create cycle pattern from string of concatenated numbers of cycles per level separated by any non-numeric characters, except for the following:

‘-‘ : finishes the current pattern and concatenates the pattern to the previous and starts a new pattern
‘*’ : the current pattern is padded with 1-cycles such that the pattern has number_of_levels levels and do the same as in ‘-‘.
‘V’ : substitute for ‘*’

Example: pattern=”2,1” or “2*” or “1*1*” or “1 1-1*” or “1e1-1x1” or “VV” or “**” and number_of_levels=3 gives 3-grid VV-cycle.

Previous topic

VCyclePattern.h

Next topic

FMG relax module

This Page