12#ifndef __VEM_PCC_3D_LocalSpace_HPP
13#define __VEM_PCC_3D_LocalSpace_HPP
39 const Eigen::MatrixXd &polyhedronVertices,
40 const Eigen::MatrixXi &polyhedronEdges,
41 const std::vector<Eigen::MatrixXi> &polyhedronFaces,
42 const Eigen::Vector3d &polyhedronCentroid,
43 const double &polyhedronMeasure,
44 const double &polyhedronDiameter,
45 const Eigen::MatrixXd &internalQuadraturePoints,
46 const Eigen::VectorXd &internalQuadratureWeights,
47 const Eigen::MatrixXd &boundaryQuadraturePoints,
48 const Eigen::MatrixXd &edgeInternalQuadraturePoints,
52 const double &polyhedronMeasure,
53 const double &polyhedronDiameter,
54 const Eigen::VectorXd &internalQuadratureWeights,
55 const Eigen::VectorXd &boundaryQuadratureWeights,
56 const std::vector<Eigen::VectorXd> &boundaryQuadratureWeightsTimesNormal,
60 const double &polyhedronMeasure,
61 const double &polyhedronDiameter,
62 const std::vector<Eigen::VectorXd> &boundaryQuadratureWeightsTimesNormal,
81 const std::vector<Eigen::MatrixXi> &polyhedronFaces,
82 const std::vector<VEM_PCC_2D_Polygon_Geometry> &polygonalFaces,
83 const Eigen::MatrixXd &boundaryQuadraturePoints,
84 const Eigen::VectorXd &boundaryQuadratureWeights,
98 switch (projectionType)
105 throw std::runtime_error(
"not valid projection type");
111 const Eigen::MatrixXd &coercivity_matrix,
112 const Eigen::VectorXd &vector_coefficients)
const
114 switch (projectionType)
127 throw std::runtime_error(
"not valid projection type");
166 const Eigen::MatrixXd &points)
const
179 const Eigen::MatrixXd &points)
const
194 const Eigen::MatrixXd &points)
const
215 const Eigen::MatrixXd &points)
const
235 const Eigen::MatrixXd &points)
const
245 const Eigen::MatrixXd &points)
const
255 const Eigen::VectorXd &pointsCurvilinearCoordinates)
const
258 reference_element_data.
Order,
260 pointsCurvilinearCoordinates);
264 const unsigned int edge_local_index)
const
Definition Monomials_3D.hpp:22
Interface class for Primal Conforming Constant degree 3D Virtual Element Methods .
Definition I_VEM_PCC_3D_LocalSpace.hpp:31
Definition VEM_PCC_2D_LocalSpace.hpp:26
Definition VEM_PCC_3D_LocalSpace_Data.hpp:53
std::vector< Eigen::MatrixXd > Pi0km1Der
Definition VEM_PCC_3D_LocalSpace_Data.hpp:89
Eigen::MatrixXd PiNabla
Definition VEM_PCC_3D_LocalSpace_Data.hpp:85
Eigen::MatrixXd Dmatrix
Definition VEM_PCC_3D_LocalSpace_Data.hpp:96
unsigned int Dimension
Definition VEM_PCC_3D_LocalSpace_Data.hpp:60
Eigen::MatrixXd Cmatrix
Definition VEM_PCC_3D_LocalSpace_Data.hpp:93
std::vector< Eigen::MatrixXd > EdgesDOFsCoordinates
Definition VEM_PCC_3D_LocalSpace_Data.hpp:84
Eigen::MatrixXd Pi0km1
Definition VEM_PCC_3D_LocalSpace_Data.hpp:86
unsigned int Nkm1
Definition VEM_PCC_3D_LocalSpace_Data.hpp:73
Eigen::MatrixXd Hmatrix
Definition VEM_PCC_3D_LocalSpace_Data.hpp:92
unsigned int NumInternalBasisFunctions
Definition VEM_PCC_3D_LocalSpace_Data.hpp:66
Eigen::VectorXd EdgeBasisCoefficients
Definition VEM_PCC_3D_LocalSpace_Data.hpp:83
Eigen::Vector3d Centroid
Definition VEM_PCC_3D_LocalSpace_Data.hpp:80
unsigned int Order
Definition VEM_PCC_3D_LocalSpace_Data.hpp:61
unsigned int NumBasisFunctions
Definition VEM_PCC_3D_LocalSpace_Data.hpp:67
Eigen::MatrixXd Pi0k
Definition VEM_PCC_3D_LocalSpace_Data.hpp:87
std::vector< Eigen::MatrixXd > VanderInternalDerivatives
Definition VEM_PCC_3D_LocalSpace_Data.hpp:77
double Diameter
Definition VEM_PCC_3D_LocalSpace_Data.hpp:79
Eigen::MatrixXd VanderInternal
Definition VEM_PCC_3D_LocalSpace_Data.hpp:76
Eigen::RowVectorXd EdgeInternalPoints
Definition VEM_PCC_3D_LocalSpace_Data.hpp:120
double Measure
Definition VEM_PCC_3D_LocalSpace_Data.hpp:81
unsigned int NumProjectorBasisFunctions
Definition VEM_PCC_3D_LocalSpace_Data.hpp:71
Definition VEM_PCC_3D_LocalSpace.hpp:33
Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType) const
Compute matrix representation of dofi-dofi stabilization.
Definition VEM_PCC_3D_LocalSpace.hpp:95
Eigen::MatrixXd ComputePolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace) const
Compute values of the polynomial basis at default quadrature points.
Definition VEM_PCC_3D_LocalSpace.hpp:204
Eigen::MatrixXd ComputePolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const
Compute values of the polynomial basis at given points.
Definition VEM_PCC_3D_LocalSpace.hpp:213
Eigen::MatrixXd ComputePolynomialsLaplacianValues(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const
Compute values of the laplacian of the polynomial basis at given points.
Definition VEM_PCC_3D_LocalSpace.hpp:243
Eigen::MatrixXd ComputeValuesOnEdge(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::VectorXd &pointsCurvilinearCoordinates) const
Compute values of the trace of VEM basis functions at given points on an edge.
Definition VEM_PCC_3D_LocalSpace.hpp:253
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::VEM::PCC::VEM_PCC_3D_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_3D_LocalSpace.hpp:131
Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_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_3D_LocalSpace.hpp:191
Eigen::MatrixXd EdgeDOFsCoordinates(const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const unsigned int edge_local_index) const
Definition VEM_PCC_3D_LocalSpace.hpp:263
Eigen::MatrixXd ComputeDRecipeStabilizationMatrix(const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const Polydim::VEM::PCC::ProjectionTypes &projectionType, const Eigen::MatrixXd &coercivity_matrix, const Eigen::VectorXd &vector_coefficients) const
Definition VEM_PCC_3D_LocalSpace.hpp:109
std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const
Compute values of the derivatives of the polynomial basis at given points.
Definition VEM_PCC_3D_LocalSpace.hpp:233
Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data CreateLocalSpace(const Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data &reference_element_data_2D, const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data_3D, const Polydim::VEM::PCC::VEM_PCC_3D_Polyhedron_Geometry &polyhedron) const
Compute data of VEM space on a polygon.
Definition VEM_PCC_3D_LocalSpace.cpp:24
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_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_3D_LocalSpace.hpp:163
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const Polydim::VEM::PCC::VEM_PCC_3D_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_3D_LocalSpace.hpp:175
std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace) const
Compute values of the derivatives of the polynomial basis at default quadrature points.
Definition VEM_PCC_3D_LocalSpace.hpp:224
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::VEM::PCC::VEM_PCC_3D_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_3D_LocalSpace.hpp:141
Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const Polydim::VEM::PCC::VEM_PCC_3D_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_3D_LocalSpace.hpp:153
Definition VEM_PCC_3D_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
Definition I_VEM_PCC_3D_ReferenceElement.hpp:25
unsigned int Order
Definition I_VEM_PCC_3D_ReferenceElement.hpp:27
Utilities::Monomials_Data Monomials
Definition I_VEM_PCC_3D_ReferenceElement.hpp:33
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::MatrixXd ComputeDRecipeStabilizationMatrix(const Eigen::MatrixXd &projector, const Eigen::MatrixXd &coercivity_matrix, const Eigen::VectorXd &vector_coefficients, const Eigen::MatrixXd &Dmatrix) const
Definition VEM_PCC_Utilities.hpp:245
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