![]() |
SG++-Doxygen-Documentation
|
This class provides an adaption strategy that is equivalent to adding levels regularly. More...
#include <RegularLevelManager.hpp>
Public Member Functions | |
virtual std::shared_ptr< LevelManager > | clone () |
RegularLevelManager (std::shared_ptr< AbstractLevelEvaluator > levelEvaluator) | |
RegularLevelManager () | |
virtual | ~RegularLevelManager () |
![]() | |
void | addLevel (MultiIndex const &level) |
Calls addLevel() on the underlying CombigridEvaluator. More... | |
virtual void | addLevelsAdaptive (size_t maxNumPoints) |
Adds levels in an adaptive manner, such that the given maximum number of function evaluations (grid points) is not exceeded. More... | |
void | addLevelsAdaptiveByNumLevels (size_t numLevels=1) |
Queue based addLevel-type function. More... | |
virtual void | addLevelsAdaptiveParallel (size_t maxNumPoints, size_t numThreads) |
Does the same as addLevelsAdaptive(), but with parallel function evaluations. More... | |
void | addLevelsFromSerializedStructure (std::string serializedStructure) |
Equivalent to deserializing serializedStructure and then calling addLevelsFromStructure(). More... | |
void | addLevelsFromSerializedStructureParallel (std::string serializedStructure, size_t numThreads) |
Does the same as addLevelsFromSerializedStructure(), but with parallel precomputation of function values using numThreads threads. More... | |
void | addLevelsFromStructure (std::shared_ptr< TreeStorage< uint8_t >> storage) |
Adds all levels for which an entry is contained in storage. More... | |
void | addLevelsFromStructureParallel (std::shared_ptr< TreeStorage< uint8_t >> storage, size_t numThreads=4) |
Does the same as addLevelsFromStructure(), but with parallel precomputation of function values using numThreads threads. More... | |
void | addRegularLevels (size_t q) |
void | addRegularLevelsByNumPoints (size_t maxNumPoints) |
Adds a set of level multi-indices. More... | |
void | addRegularLevelsByNumPointsParallel (size_t maxNumPoints, size_t numThreads) |
Does the same as addRegularLevelsByNumPoints(), but with parallel precomputation of function values. More... | |
void | addRegularLevelsParallel (size_t q, size_t numThreads) |
Does the same as addRegularLevels(), but with parallel precomputation of function values. More... | |
sgpp::base::DataMatrix | convertLevelStructureToMatrix (std::shared_ptr< sgpp::combigrid::TreeStorage< uint8_t >> const &levelstructure, size_t numDims) |
writes a given level structure to a matrix More... | |
void | disableStatsCollection () |
Disables the collection of information on subspaces during refinement. More... | |
void | enableStatsCollection () |
Enables the collection of information on subspaces during refinement. More... | |
std::vector< base::DataVector > | getAllGridPoints () |
base::DataMatrix | getGridPointMatrix () |
std::shared_ptr< LevelInfos > | getInfoOnAddedLevels () |
Returns information on all the subspaces that is sorted with respect to the iterations when they have been added to the combigrid during refinement. More... | |
std::shared_ptr< TreeStorage< uint8_t > > | getLevelStructure () const |
std::vector< MultiIndex > | getRegularLevels (size_t q) |
std::string | getSerializedLevelStructure () const |
size_t | getUpperPointBound () const |
LevelManager (std::shared_ptr< AbstractLevelEvaluator > levelEvaluator, bool collectStats=true) | |
Constructor. More... | |
LevelManager () | |
Default constructor. More... | |
size_t | maxNumPointsForRegular (size_t q) |
virtual size_t | numDims () const |
size_t | numGridPoints () |
void | printLevelStructure (std::shared_ptr< sgpp::combigrid::TreeStorage< uint8_t >> const &levelstructure) |
prints a given level structure More... | |
void | setLevelEvaluator (std::shared_ptr< AbstractLevelEvaluator > levelEvaluator) |
Sets the level evaluator (normally a CombigridEvaluator). More... | |
virtual | ~LevelManager () |
Additional Inherited Members | |
![]() | |
void | addLevels (std::vector< MultiIndex > const &levels) |
Adds all the given levels. More... | |
bool | addLevelToCombiEval (const MultiIndex &level) |
Adds the level to the combigrid evaluator. More... | |
void | addStats (const MultiIndex &level) |
update stats for levels that have been added in the current iteration More... | |
virtual void | addToQueue (MultiIndex const &level, std::shared_ptr< LevelInfo > levelInfo) |
Puts the given level into the priority queue (uses computePriority() first to compute its priority). More... | |
virtual void | afterComputation (MultiIndex const &level) |
This function should be called after all desired precomputations (i.e. More... | |
virtual void | beforeComputation (MultiIndex const &level) |
This function should be called between getting a level from the top of the priority queue and starting computations on it. More... | |
virtual std::vector< MultiIndex > | getPredecessors (MultiIndex const &level) |
Helper function returning all predecessor level multi-indices. More... | |
std::vector< MultiIndex > | getRegularLevelsByNumPoints (size_t maxNumPoints) |
virtual std::vector< MultiIndex > | getSuccessors (MultiIndex const &level) |
Helper function returning all successor level multi-indices. More... | |
virtual void | initAdaption () |
Initializes the data structures for adaptive level generation. More... | |
void | precomputeLevelsParallel (std::vector< MultiIndex > const &levels, size_t numThreads) |
Does precomputations for all given levels in parallel with the specified number of threads. More... | |
virtual void | predecessorsCompleted (MultiIndex const &level) |
This function is called after all desired precomputations (i.e. More... | |
virtual void | tryAddLevel (MultiIndex const &level) |
Adds a level to levelData if all of its predecessors are already in levelData. More... | |
virtual void | tryAddSuccessors (MultiIndex const &level) |
Adds successors of the given level to levelData if all of their other predecessors are also in levelData. More... | |
virtual void | updatePriority (MultiIndex const &level, std::shared_ptr< LevelInfo > levelInfo) |
Updates the priority of a given level in the priority queue based on the currently available information. More... | |
void | updateStats () |
update statistics on added levels More... | |
![]() | |
bool | collectStats |
Defines if statistics on the refinement process are collected or not. More... | |
std::shared_ptr< AbstractLevelEvaluator > | combiEval |
CombigridEvaluator (hidden behind an interface to avoid carrying around its template parameter here). More... | |
std::shared_ptr< LevelInfos > | infoOnAddedLevels |
this object stores information on the levels during adaptive refinement More... | |
std::shared_ptr< TreeStorage< std::shared_ptr< LevelInfo > > > | levelData |
Stores level information for already visited (!= computed) levels. More... | |
std::shared_ptr< std::recursive_mutex > | managerMutex |
Mutex that is shared with all involved objects for evaluation parts that require mutual exclusion. More... | |
size_t | numDimensions |
Dimensionality of the problem. More... | |
MultiIndexQueue | queue |
Priority queue ranking levels that are not yet evaluated but ready for evaluation by their priority. More... | |
This class provides an adaption strategy that is equivalent to adding levels regularly.
It can be used to polymorphically switch between regular and adaptive level generation by using this LevelManager or another LevelManager.
|
explicit |
sgpp::combigrid::RegularLevelManager::RegularLevelManager | ( | ) |
|
virtual |
|
virtual |
Implements sgpp::combigrid::LevelManager.