MUQ  0.4.3
muq::Utilities::AnisotropicLimiter Class Reference

Declares multiindices as feasible if their entries for less important dimensions are not too high. More...

#include <MultiIndexLimiter.h>

Inheritance diagram for muq::Utilities::AnisotropicLimiter:

Detailed Description

Declares multiindices as feasible if their entries for less important dimensions are not too high.

Given a weight vector \( w = (w_i)_{i=1}^d \) with \( w_i \in [0,1] \) and a cutoff threshold \( \epsilon \in (0,1)\), this limiter declares a multiindex \( \nu = (\nu_i)_{i=1}^d \) as feasible if \( w^\nu := \prod_{i=1}^d w_i^{\nu_i} > \epsilon \). It thus implements the multiindex selection criterion for the construction of a priori anisotropic sparse grids as described in Algorithm 2 in

  • Zech, Jakob. Sparse-grid approximation of high-dimensional parametric PDEs. ETH Zurich, 2018.
See also
muq::Utilities::MultiIndexFactory::CreateAnisotropic

Definition at line 81 of file MultiIndexLimiter.h.

Public Member Functions

 AnisotropicLimiter (const Eigen::RowVectorXf &weightsIn, const double epsilonIn)
 
virtual bool IsFeasible (std::shared_ptr< MultiIndex > multi) const override
 
- Public Member Functions inherited from muq::Utilities::MultiIndexLimiter
virtual ~MultiIndexLimiter ()=default
 

Constructor & Destructor Documentation

◆ AnisotropicLimiter()

muq::Utilities::AnisotropicLimiter::AnisotropicLimiter ( const Eigen::RowVectorXf &  weightsIn,
const double  epsilonIn 
)

Definition at line 13 of file MultiIndexLimiter.cpp.

References epsilon, nlohmann::to_string(), and weights.

Member Function Documentation

◆ IsFeasible()

bool muq::Utilities::AnisotropicLimiter::IsFeasible ( std::shared_ptr< MultiIndex >  multi) const
overridevirtual

This function is overloaded by children to define what terms are included.

Implements muq::Utilities::MultiIndexLimiter.

Definition at line 25 of file MultiIndexLimiter.cpp.

Member Data Documentation

◆ epsilon

const double muq::Utilities::AnisotropicLimiter::epsilon
private

Definition at line 91 of file MultiIndexLimiter.h.

Referenced by AnisotropicLimiter().

◆ weights

const Eigen::RowVectorXf& muq::Utilities::AnisotropicLimiter::weights
private

Definition at line 90 of file MultiIndexLimiter.h.

Referenced by AnisotropicLimiter().


The documentation for this class was generated from the following files: