Class CombiMinMaxScheme

Inheritance Relationships

Derived Type

Class Documentation

class CombiMinMaxScheme

Class to generate combination schemes based on a maximal and minimal level.

Subclassed by combigrid::CombiMinMaxSchemeFromFile

Public Functions

inline CombiMinMaxScheme(DimType dim, const LevelVector &lmin, const LevelVector &lmax)

Constructor.

Parameters:
  • dim – dimensionality of the PDE problem domain

  • lmin – minimum level of the combination technique, length dim

  • lmax – maximum level of the combination technique, length dim

inline CombiMinMaxScheme(const std::vector<LevelVector> &levels, const std::vector<real> &coefficients)

Constructor.

for externally-generated combination schemes

Parameters:
  • levels – level for each component grid

  • coefficients – coefficient for each component grid

virtual ~CombiMinMaxScheme() = default
void createClassicalCombischeme()

Generate the combischeme corresponding to the classical combination technique.

This sets the combiSpaces_ and coefficients_ member variables.

void createAdaptiveCombischeme()

Generates an adaptive combination scheme (equivalent to CK’s Python code)

This sets the combiSpaces_ and coefficients_ member variables.

void makeFaultTolerant()

Updates the combination scheme to be fault tolerant.

For fault tolerance, “cheap” grids with an initial coefficient of 0. are added to the scheme. This extends the combiSpaces_ and coefficients_ member variables.

inline const std::vector<LevelVector> &getCombiSpaces() const

Get the levels of the component grids.

inline const std::vector<double> &getCoeffs() const

Get the coefficients of the component grids.

inline const std::vector<LevelVector> &getDownSet()

Get the downward closed set of the CombiMinMaxScheme.

i.e. all hierarchical subspaces / mixed resolutions that will be covered by the scheme

inline void createDownSet()

(re-)generate the downward closed set of the CombiScheme

The downward closed set corresponds to the subspaces in the DistributedSparseGridUniform class. (Re-)sets the levels_ data member.

inline void print(std::ostream &os) const

Protected Functions

void computeCombiCoeffsClassical()
void computeCombiCoeffsAdaptive()

Protected Attributes

LevelType n_
DimType dim_
DimType effDim_
LevelVector lmin_
LevelVector lmax_
std::vector<LevelVector> levels_
std::vector<LevelVector> combiSpaces_
std::vector<real> coefficients_