PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Polydim::Utilities::GBasis_2D Class Referencefinal

#include <GBasis_2D.hpp>

Public Member Functions

Polydim::Utilities::GBasis_Data Compute (const unsigned int polynomial_degree)
 Build the vector polynomial G-basis of a given degree.
 
std::vector< Eigen::MatrixXd > VanderGBigOPlus (const Polydim::Utilities::GBasis_Data &data, const Eigen::MatrixXd &vander) const
 Evaluate the Vandermonde matrix of the \(\mathcal{G}_k^\oplus\) block.
 

Member Function Documentation

◆ Compute()

GBasis_Data Polydim::Utilities::GBasis_2D::Compute ( const unsigned int  polynomial_degree)

Build the vector polynomial G-basis of a given degree.

Assembles all quantities needed to represent the vector polynomial space \([\mathbb{P}_k]^2\) through its decomposition \(\mathcal{G}_k^\nabla \oplus \mathcal{G}_k^\oplus\), where \(\mathcal{G}_k^\nabla = \nabla \mathbb{P}_{k+1}\) and \(\mathcal{G}_k^\oplus = \boldsymbol{x}^{\perp}\,\mathbb{P}_{k-1}\) with \(\boldsymbol{x}^{\perp} = (x_2, -x_1)\).

Parameters
polynomial_degreeMaximum polynomial degree \(k\) of the basis.
Returns
A fully populated Polydim::Utilities::GBasis_Data structure, including the space dimensions ( \(N_k\), \(N_{k-1}\), \(N_{k+1}\), and the sizes of the \(\mathcal{G}^\oplus\) and \(\mathcal{G}^\nabla\) blocks), the exponent matrix, and the vector-decomposition maps.

◆ VanderGBigOPlus()

std::vector< Eigen::MatrixXd > Polydim::Utilities::GBasis_2D::VanderGBigOPlus ( const Polydim::Utilities::GBasis_Data data,
const Eigen::MatrixXd &  vander 
) const
inline

Evaluate the Vandermonde matrix of the \(\mathcal{G}_k^\oplus\) block.

Builds the two Cartesian components of the Vandermonde matrix of \(\mathcal{G}_k^\oplus = \boldsymbol{x}^{\perp}\,\mathbb{P}_{k-1}\), obtained by multiplying each scalar monomial of \(\mathbb{P}_{k-1}\) by \(\boldsymbol{x}^{\perp} = (x_2, -x_1)\). Concretely, the first \(N_{k-1}\) columns of vander (the \(\mathbb{P}_{k-1}\) monomials) are scaled column-wise by \(x_2\) for the first component and by \(-x_1\) for the second, where \(x_1\) and \(x_2\) are the linear monomials stored in columns 1 and 2 of vander.

Parameters
dataPrecomputed G-basis data; only Nkm1 ( \(N_{k-1}\)) is used here.
vanderVandermonde matrix of the scalar monomial basis evaluated at the evaluation points (one row per point); column 1 holds \(x_1\), column 2 holds \(x_2\), and the leading \(N_{k-1}\) columns hold the \(\mathbb{P}_{k-1}\) monomials.
Returns
A vector of two Eigen::MatrixXd (x- and y-components), each of size vander.rows() \(\times\) data.Nkm1, forming the Vandermonde matrix of \(\mathcal{G}_k^\oplus\).

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