PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
pbat::sim::vbd::multigrid::HyperReduction Struct Reference

Public Member Functions

 HyperReduction (Hierarchy const &hierarchy, Index clusterSize=5)
 
void Construct (Hierarchy const &hierarchy, Index clusterSize=5)
 
void AllocateWorkspace (std::size_t nLevels)
 
void ConstructHierarchicalClustering (Hierarchy const &hierarchy, Index clusterSize)
 Construct the hierarchical clustering of mesh elements.
 
void ComputeClusterQuadratureWeights (Hierarchy const &hierarchy)
 Compute the quadrature weights for each cluster.
 
void PrecomputeInversePolynomialMatrices (Hierarchy const &hierarchy)
 
void ComputeLinearPolynomialErrors (Hierarchy const &hierarchy, Eigen::Ref< MatrixX const > const &u)
 

Public Attributes

std::vector< IndexVectorXC
 Hierarchical clustering of mesh elements.
 
std::vector< IndexVectorXCptr
 
std::vector< IndexVectorXCadj
 
std::vector< MatrixXApInvC
 
std::vector< MatrixXbC
 #dimsx|#elements| array of integrated target fields
 
std::vector< VectorXwC
 |#levels| cluster quad. weights
 
std::vector< IndexVectorXeC
 |#levels| Representative elements of each cluster
 
std::vector< MatrixXup
 |#levels| list of |#clusters| cluster polynomials
 
std::vector< VectorXEp
 |#levels| linear polynomial errors at each level
 
Scalar EpMax {1e-6}
 Maximum allowable linear polynomial error in any cluster.
 

Static Public Attributes

static constexpr auto kPolynomialOrder = 1
 
static constexpr auto kDims = 3
 

Constructor & Destructor Documentation

◆ HyperReduction()

pbat::sim::vbd::multigrid::HyperReduction::HyperReduction ( Hierarchy const & hierarchy,
Index clusterSize = 5 )
Parameters
hierarchy
clusterSize

Member Function Documentation

◆ AllocateWorkspace()

void pbat::sim::vbd::multigrid::HyperReduction::AllocateWorkspace ( std::size_t nLevels)
Parameters
nLevels

◆ ComputeLinearPolynomialErrors()

void pbat::sim::vbd::multigrid::HyperReduction::ComputeLinearPolynomialErrors ( Hierarchy const & hierarchy,
Eigen::Ref< MatrixX const > const & u )
Parameters
u
hierarchy

◆ Construct()

void pbat::sim::vbd::multigrid::HyperReduction::Construct ( Hierarchy const & hierarchy,
Index clusterSize = 5 )
Parameters
hierarchy
clusterSize

◆ ConstructHierarchicalClustering()

void pbat::sim::vbd::multigrid::HyperReduction::ConstructHierarchicalClustering ( Hierarchy const & hierarchy,
Index clusterSize )

Construct the hierarchical clustering of mesh elements.

Parameters
hierarchy
clusterSize

◆ PrecomputeInversePolynomialMatrices()

void pbat::sim::vbd::multigrid::HyperReduction::PrecomputeInversePolynomialMatrices ( Hierarchy const & hierarchy)
Parameters
hierarchy

Member Data Documentation

◆ ApInvC

std::vector<MatrixX> pbat::sim::vbd::multigrid::HyperReduction::ApInvC

|#levels| list of 4x|4*#clusters| of A_p^{-1} matrices, such that A_p's coefficients are \int_{\Omega^c} P_i(X) P_j(X) dx, where \Omega^c is cluster c's domain, and P_k(X) is the k^{th} polynomial basis.

◆ C

std::vector<IndexVectorX> pbat::sim::vbd::multigrid::HyperReduction::C

Hierarchical clustering of mesh elements.

|#levels| list of clustering maps from fine level to coarse level, i.e. maps u^{l} to u^{l+1}


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