12#ifndef __VEM_PCC_2D_LocalSpace_HPP
13#define __VEM_PCC_2D_LocalSpace_HPP
32 const Eigen::MatrixXd &polygonVertices,
33 const Eigen::Vector3d &polygonCentroid,
34 const double &polygonMeasure,
35 const double &polygonDiameter,
36 const Eigen::MatrixXd &internalQuadraturePoints,
37 const Eigen::VectorXd &internalQuadratureWeights,
38 const Eigen::MatrixXd &boundaryQuadraturePoints,
42 const double &polygonMeasure,
43 const double &polygonDiameter,
44 const Eigen::VectorXd &internalQuadratureWeights,
45 const Eigen::VectorXd &boundaryQuadratureWeights,
46 const std::vector<Eigen::VectorXd> &boundaryQuadratureWeightsTimesNormal,
50 const double &polygonMeasure,
51 const double &polygonDiameter,
52 const std::vector<Eigen::VectorXd> &boundaryQuadratureWeightsTimesNormal,
73 const unsigned int &l,
74 const Eigen::MatrixXd &polygonVertices,
75 const Eigen::Vector3d &polygonCentroid,
76 const double &polygonMeasure,
77 const double &polygonDiameter,
78 const Eigen::MatrixXd &internalQuadraturePoints,
79 const Eigen::VectorXd &internalQuadratureWeights,
80 const Eigen::MatrixXd &internalQuadratureKLPoints,
81 const Eigen::VectorXd &internalQuadratureKLWeights,
82 const Eigen::MatrixXd &boundaryQuadraturePoints,
94 switch (projectionType)
101 throw std::runtime_error(
"not valid projection type");
140 const Eigen::MatrixXd &points)
const
153 const Eigen::MatrixXd &points)
const
178 const Eigen::MatrixXd &points)
const
204 const Eigen::MatrixXd &points)
const
223 const Eigen::MatrixXd &points)
const
232 const Eigen::MatrixXd &points)
const
241 const Eigen::VectorXd &pointsCurvilinearCoordinates)
const
243 Eigen::RowVectorXd edgeInternalPoints;
246 const Eigen::VectorXd edgeBasisCoefficients =
249 return utilities.
ComputeValuesOnEdge(edgeInternalPoints, reference_element_data.
Order, edgeBasisCoefficients, pointsCurvilinearCoordinates);
Definition Monomials_2D.hpp:22
Interface class for Primal Conforming Constant degree 2D Virtual Element Methods .
Definition I_VEM_PCC_2D_LocalSpace.hpp:30
Definition VEM_PCC_2D_LocalSpace_Data.hpp:44
unsigned int Dimension
Definition VEM_PCC_2D_LocalSpace_Data.hpp:46
unsigned int Nkm2
Definition VEM_PCC_2D_LocalSpace_Data.hpp:59
Eigen::MatrixXd VanderInternal
Definition VEM_PCC_2D_LocalSpace_Data.hpp:72
Eigen::MatrixXd PiNabla
Definition VEM_PCC_2D_LocalSpace_Data.hpp:79
Eigen::MatrixXd Hmatrix
Definition VEM_PCC_2D_LocalSpace_Data.hpp:85
Eigen::MatrixXd Cmatrix
Definition VEM_PCC_2D_LocalSpace_Data.hpp:88
unsigned int NumInternalBasisFunctions
Definition VEM_PCC_2D_LocalSpace_Data.hpp:54
unsigned int Nkm1
Definition VEM_PCC_2D_LocalSpace_Data.hpp:58
Eigen::Vector3d Centroid
Definition VEM_PCC_2D_LocalSpace_Data.hpp:70
Eigen::MatrixXd Pi0klm1
Definition VEM_PCC_2D_LocalSpace_Data.hpp:82
unsigned int NumBasisFunctions
Definition VEM_PCC_2D_LocalSpace_Data.hpp:55
unsigned int NumProjectorBasisFunctions
Definition VEM_PCC_2D_LocalSpace_Data.hpp:57
Eigen::MatrixXd Dmatrix
Definition VEM_PCC_2D_LocalSpace_Data.hpp:91
Eigen::MatrixXd Pi0k
Definition VEM_PCC_2D_LocalSpace_Data.hpp:81
double Diameter
Definition VEM_PCC_2D_LocalSpace_Data.hpp:68
std::vector< Eigen::MatrixXd > Pi0km1Der
Definition VEM_PCC_2D_LocalSpace_Data.hpp:83
Eigen::MatrixXd VanderInternalKL
Definition VEM_PCC_2D_LocalSpace_Data.hpp:73
Eigen::MatrixXd Pi0km1
Definition VEM_PCC_2D_LocalSpace_Data.hpp:80
unsigned int Order
Definition VEM_PCC_2D_LocalSpace_Data.hpp:47
double Measure
Definition VEM_PCC_2D_LocalSpace_Data.hpp:69
std::vector< Eigen::MatrixXd > VanderInternalDerivatives
Definition VEM_PCC_2D_LocalSpace_Data.hpp:74
Definition VEM_PCC_2D_LocalSpace.hpp:26
Eigen::MatrixXd ComputePolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const
Compute values of the polynomial basis at given points.
Definition VEM_PCC_2D_LocalSpace.hpp:202
Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType) const
Compute values of a suitable projection of laplacian of basis functions at default quadrature points.
Definition VEM_PCC_2D_LocalSpace.hpp:165
Eigen::MatrixXd ComputeValuesOnEdge(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Eigen::VectorXd &pointsCurvilinearCoordinates) const
Compute values of the trace of VEM basis functions at given points on an edge.
Definition VEM_PCC_2D_LocalSpace.hpp:240
Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data Compute3DUtilities(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_Polygon_Geometry &polygon) const
Definition VEM_PCC_2D_LocalSpace.cpp:74
Eigen::MatrixXd ComputeScaledPolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace) const
Definition VEM_PCC_2D_LocalSpace.hpp:197
Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data CreateLocalSpace(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_Polygon_Geometry &polygon) const
Compute data of VEM space on a polygon.
Definition VEM_PCC_2D_LocalSpace.cpp:24
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType) const
Compute values of a suitable projection of derivatives of basis functions at default quadrature point...
Definition VEM_PCC_2D_LocalSpace.hpp:125
std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const
Compute values of the derivatives of the polynomial basis at given points.
Definition VEM_PCC_2D_LocalSpace.hpp:221
std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace) const
Compute values of the derivatives of the polynomial basis at default quadrature points.
Definition VEM_PCC_2D_LocalSpace.hpp:213
Eigen::MatrixXd ComputePolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace) const
Compute values of the polynomial basis at default quadrature points.
Definition VEM_PCC_2D_LocalSpace.hpp:188
Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data Compute3DUtilities_DF_PCC(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_Polygon_Geometry &polygon) const
Definition VEM_PCC_2D_LocalSpace.cpp:116
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType, const Eigen::MatrixXd &points) const
Compute values of a suitable projection of derivatives of basis functions at given points.
Definition VEM_PCC_2D_LocalSpace.hpp:149
Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType) const
Compute matrix representation of dofi-dofi stabilization.
Definition VEM_PCC_2D_LocalSpace.hpp:91
Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType, const Eigen::MatrixXd &points) const
Compute values of a suitable projection of laplacian of basis functions at default quadrature points.
Definition VEM_PCC_2D_LocalSpace.hpp:175
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType, const Eigen::MatrixXd &points) const
Compute values of a suitable projection of basis functions at given points.
Definition VEM_PCC_2D_LocalSpace.hpp:137
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType) const
Compute values of a suitable projection of basis functions at default quadrature points.
Definition VEM_PCC_2D_LocalSpace.hpp:112
Eigen::MatrixXd ComputePolynomialsLaplacianValues(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const
Compute values of the laplacian of the polynomial basis at given points.
Definition VEM_PCC_2D_LocalSpace.hpp:230
Definition VEM_PCC_2D_LocalSpace_Data.hpp:27
ProjectionTypes
Definition VEM_PCC_Utilities.hpp:28
Definition FEM_MCC_2D_LocalSpace.cpp:17
Definition I_VEM_PCC_2D_ReferenceElement.hpp:26
Quadrature::VEM_QuadratureData_2D Quadrature
Definition I_VEM_PCC_2D_ReferenceElement.hpp:34
Utilities::Monomials_Data Monomials
Definition I_VEM_PCC_2D_ReferenceElement.hpp:33
unsigned int Order
Definition I_VEM_PCC_2D_ReferenceElement.hpp:28
Definition VEM_PCC_Utilities.hpp:37
Eigen::MatrixXd ComputePolynomialsValues(const Eigen::MatrixXd &vanderInternal) const
Definition VEM_PCC_Utilities.hpp:176
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const unsigned int dimension, const Polydim::VEM::PCC::ProjectionTypes &projectionType, const unsigned int &Nkm1, const Eigen::MatrixXd &vanderInternal, const std::vector< Eigen::MatrixXd > &vanderInternalDerivatives, const Eigen::MatrixXd &piNabla, const std::vector< Eigen::MatrixXd > &pi0km1Der) const
Definition VEM_PCC_Utilities.hpp:101
Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const unsigned int dimension, const Polydim::VEM::PCC::ProjectionTypes &projectionType, const unsigned int &Nkm1, const std::vector< Eigen::MatrixXd > &vanderInternalDerivatives, const std::vector< Eigen::MatrixXd > &pi0km1Der) const
Definition VEM_PCC_Utilities.hpp:132
std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const std::vector< Eigen::MatrixXd > &vanderInternalDerivatives) const
Definition VEM_PCC_Utilities.hpp:200
void ComputeL2Projectors(const double &measure, const unsigned int &order, const unsigned int &Nkm1, const unsigned int &Nk, const unsigned int &NumInternalBasisFunctions, const unsigned int &NumBasisFunctions, const Eigen::MatrixXd &Hmatrix, const Eigen::MatrixXd &PiNabla, Eigen::MatrixXd &Cmatrix, Eigen::MatrixXd &Pi0km1, Eigen::MatrixXd &Pi0k) const
Definition VEM_PCC_Utilities.hpp:46
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::VEM::PCC::ProjectionTypes &projectionType, const unsigned int &Nkm1, const Eigen::MatrixXd &pi0km1, const Eigen::MatrixXd &pi0k, const Eigen::MatrixXd &vanderInternal) const
Definition VEM_PCC_Utilities.hpp:152
Eigen::VectorXd ComputeEdgeBasisCoefficients(const unsigned int &order, const Eigen::VectorXd &edgeInternalPoints) const
Definition VEM_PCC_Utilities.hpp:38
Eigen::MatrixXd ComputeValuesOnEdge(const Eigen::RowVectorXd &edgeInternalPoints, const unsigned int &order, const Eigen::VectorXd &edgeBasisCoefficients, const Eigen::VectorXd &pointsCurvilinearCoordinates) const
Definition VEM_PCC_Utilities.hpp:224
Eigen::MatrixXd ComputePolynomialsLaplacianValues(const Polydim::Utilities::Monomials_Data &data, const MonomialType &monomials, const double &diameter, const Eigen::MatrixXd &vander) const
Definition VEM_PCC_Utilities.hpp:216
Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const Eigen::MatrixXd &projector, const double &coefficient, const Eigen::MatrixXd &Dmatrix) const
Definition VEM_PCC_Utilities.hpp:234
Eigen::MatrixXd ReferenceEdgeDOFsInternalPoints
Definition VEM_Quadrature_2D.hpp:34