PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
I_VEM_PCC_2D_LocalSpace.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 __I_VEM_PCC_2D_LocalSpace_HPP
13#define __I_VEM_PCC_2D_LocalSpace_HPP
14
15#include "Eigen/Eigen"
18#include "VEM_PCC_Utilities.hpp"
19#include <vector>
20
21namespace Polydim
22{
23namespace VEM
24{
25namespace PCC
26{
30{
31 public:
34 {
35 }
36
42 const VEM_PCC_2D_Polygon_Geometry &polygon) const = 0;
43
48 virtual Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const VEM_PCC_2D_LocalSpace_Data &localSpace,
49 const ProjectionTypes &projectionType) const = 0;
50
55 virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_2D_LocalSpace_Data &localSpace,
56 const ProjectionTypes &projectionType) const = 0;
57
62 virtual std::vector<Eigen::MatrixXd> ComputeBasisFunctionsDerivativeValues(const VEM_PCC_2D_LocalSpace_Data &localSpace,
63 const ProjectionTypes &projectionType) const = 0;
64
69 virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_2D_LocalSpace_Data &localSpace,
70 const ProjectionTypes &projectionType) const = 0;
71
78 virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
79 const VEM_PCC_2D_LocalSpace_Data &localSpace,
80 const ProjectionTypes &projectionType,
81 const Eigen::MatrixXd &points) const = 0;
82
89 virtual std::vector<Eigen::MatrixXd> ComputeBasisFunctionsDerivativeValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
90 const VEM_PCC_2D_LocalSpace_Data &localSpace,
91 const ProjectionTypes &projectionType,
92 const Eigen::MatrixXd &points) const = 0;
93
100 virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
101 const VEM_PCC_2D_LocalSpace_Data &localSpace,
102 const ProjectionTypes &projectionType,
103 const Eigen::MatrixXd &points) const = 0;
104
108 virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_2D_LocalSpace_Data &localSpace) const = 0;
109
115 virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
116 const VEM_PCC_2D_LocalSpace_Data &localSpace,
117 const Eigen::MatrixXd &points) const = 0;
118
122 virtual std::vector<Eigen::MatrixXd> ComputePolynomialsDerivativeValues(const VEM_PCC_2D_LocalSpace_Data &localSpace) const = 0;
123
129 virtual std::vector<Eigen::MatrixXd> ComputePolynomialsDerivativeValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
130 const VEM_PCC_2D_LocalSpace_Data &localSpace,
131 const Eigen::MatrixXd &points) const = 0;
132
138 virtual Eigen::MatrixXd ComputePolynomialsLaplacianValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
139 const VEM_PCC_2D_LocalSpace_Data &localSpace,
140 const Eigen::MatrixXd &points) const = 0;
141
146 virtual Eigen::MatrixXd ComputeValuesOnEdge(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data,
147 const Eigen::VectorXd &pointsCurvilinearCoordinates) const = 0;
148
149 virtual Eigen::MatrixXd ComputeScaledPolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace) const = 0;
150};
151} // namespace PCC
152} // namespace VEM
153} // namespace Polydim
154
155#endif
Interface class for Primal Conforming Constant degree 2D Virtual Element Methods .
Definition I_VEM_PCC_2D_LocalSpace.hpp:30
virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType, const Eigen::MatrixXd &points) const =0
Compute values of a suitable projection of laplacian of basis functions at default quadrature points.
virtual std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute values of a suitable projection of derivatives of basis functions at default quadrature point...
virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute values of a suitable projection of basis functions at default quadrature points.
virtual Eigen::MatrixXd ComputeScaledPolynomialsValues(const Polydim::VEM::PCC::VEM_PCC_2D_LocalSpace_Data &localSpace) const =0
virtual ~I_VEM_PCC_2D_LocalSpace()
Class destructor.
Definition I_VEM_PCC_2D_LocalSpace.hpp:33
virtual std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const =0
Compute values of the derivatives of the polynomial basis at given points.
virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType, const Eigen::MatrixXd &points) const =0
Compute values of a suitable projection of basis functions at given points.
virtual Eigen::MatrixXd ComputeValuesOnEdge(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Eigen::VectorXd &pointsCurvilinearCoordinates) const =0
Compute values of the trace of VEM basis functions at given points on an edge.
virtual std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType, const Eigen::MatrixXd &points) const =0
Compute values of a suitable projection of derivatives of basis functions at given points.
virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const =0
Compute values of the polynomial basis at given points.
virtual Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute matrix representation of dofi-dofi stabilization.
virtual std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const VEM_PCC_2D_LocalSpace_Data &localSpace) const =0
Compute values of the derivatives of the polynomial basis at default quadrature points.
virtual VEM_PCC_2D_LocalSpace_Data CreateLocalSpace(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_Polygon_Geometry &polygon) const =0
Compute data of VEM space on a polygon.
virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_2D_LocalSpace_Data &localSpace) const =0
Compute values of the polynomial basis at default quadrature points.
virtual Eigen::MatrixXd ComputePolynomialsLaplacianValues(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data, const VEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const =0
Compute values of the laplacian of the polynomial basis at given points.
virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_2D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute values of a suitable projection of laplacian of basis functions at default quadrature points.
Definition VEM_PCC_2D_LocalSpace_Data.hpp:44
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