PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
GBasis_2D.hpp
Go to the documentation of this file.
1// _LICENSE_HEADER_
2//
3// Copyright (C) 2019 - 2025.
4// Terms register on the GPL-3.0 license.
5//
6// This file can be redistributed and/or modified under the license terms.
7//
8// See top level LICENSE file for more details.
9//
10// This file can be used citing references in CITATION.cff file.
11
12#ifndef __GBasis_2D_HPP
13#define __GBasis_2D_HPP
14
15#include "GBasis_Data.hpp"
16#include "Monomials_2D.hpp"
17
18namespace Polydim
19{
20namespace Utilities
21{
22class GBasis_2D final
23{
24 private:
27
40 std::vector<Eigen::Vector2i> VectorDecompositionIndices(const Polydim::Utilities::GBasis_Data &data,
41 const Eigen::VectorXi &expo) const;
42
43 public:
58 Polydim::Utilities::GBasis_Data Compute(const unsigned int polynomial_degree);
59
79 std::vector<Eigen::MatrixXd> VanderGBigOPlus(const Polydim::Utilities::GBasis_Data &data, const Eigen::MatrixXd &vander) const
80 {
81 std::vector<Eigen::MatrixXd> vanderGBigOPlus(2, Eigen::MatrixXd::Zero(vander.rows(), data.Nkm1));
82 vanderGBigOPlus[0] = vander.leftCols(data.Nkm1).array().colwise() * vander.col(2).array();
83 vanderGBigOPlus[1] = vander.leftCols(data.Nkm1).array().colwise() * (-1.0 * vander.col(1).array());
84 return vanderGBigOPlus;
85 };
86};
87} // namespace Utilities
88} // namespace Polydim
89
90#endif
Definition GBasis_2D.hpp:23
std::vector< Eigen::MatrixXd > VanderGBigOPlus(const Polydim::Utilities::GBasis_Data &data, const Eigen::MatrixXd &vander) const
Evaluate the Vandermonde matrix of the block.
Definition GBasis_2D.hpp:79
Polydim::Utilities::GBasis_Data Compute(const unsigned int polynomial_degree)
Build the vector polynomial G-basis of a given degree.
Definition GBasis_2D.cpp:22
Definition Monomials_2D.hpp:22
Definition FEM_MCC_2D_LocalSpace.cpp:17
Definition GBasis_Data.hpp:24
unsigned int Nkm1
Definition GBasis_Data.hpp:31