PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
I_VEM_PCC_3D_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_3D_LocalSpace_HPP
13#define __I_VEM_PCC_3D_LocalSpace_HPP
14
15#include "Eigen/Eigen"
19#include "VEM_PCC_Utilities.hpp"
20#include <vector>
21
22namespace Polydim
23{
24namespace VEM
25{
26namespace PCC
27{
31{
32 public:
34 {
35 }
36
41 const VEM_PCC_3D_ReferenceElement_Data &reference_element_data_3D,
42 const VEM_PCC_3D_Polyhedron_Geometry &polyhedron) const = 0;
47 virtual Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const VEM_PCC_3D_LocalSpace_Data &localSpace,
48 const ProjectionTypes &projectionType) const = 0;
49
50 virtual Eigen::MatrixXd ComputeDRecipeStabilizationMatrix(const VEM_PCC_3D_LocalSpace_Data &localSpace,
51 const ProjectionTypes &projectionType,
52 const Eigen::MatrixXd &coercivity_matrix,
53 const Eigen::VectorXd &vector_coefficients) const = 0;
54
59 virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_3D_LocalSpace_Data &localSpace,
60 const ProjectionTypes &projectionType) const = 0;
61
66 virtual std::vector<Eigen::MatrixXd> ComputeBasisFunctionsDerivativeValues(const VEM_PCC_3D_LocalSpace_Data &localSpace,
67 const ProjectionTypes &projectionType) const = 0;
68
73 virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_3D_LocalSpace_Data &localSpace,
74 const ProjectionTypes &projectionType) const = 0;
75
82 virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
83 const VEM_PCC_3D_LocalSpace_Data &localSpace,
84 const ProjectionTypes &projectionType,
85 const Eigen::MatrixXd &points) const = 0;
86
93 virtual std::vector<Eigen::MatrixXd> ComputeBasisFunctionsDerivativeValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
94 const VEM_PCC_3D_LocalSpace_Data &localSpace,
95 const ProjectionTypes &projectionType,
96 const Eigen::MatrixXd &points) const = 0;
103 virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
104 const VEM_PCC_3D_LocalSpace_Data &localSpace,
105 const ProjectionTypes &projectionType,
106 const Eigen::MatrixXd &points) const = 0;
107
111 virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_3D_LocalSpace_Data &localSpace) const = 0;
112
118 virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
119 const VEM_PCC_3D_LocalSpace_Data &localSpace,
120 const Eigen::MatrixXd &points) const = 0;
121
125 virtual std::vector<Eigen::MatrixXd> ComputePolynomialsDerivativeValues(const VEM_PCC_3D_LocalSpace_Data &localSpace) const = 0;
126
132 virtual std::vector<Eigen::MatrixXd> ComputePolynomialsDerivativeValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
133 const VEM_PCC_3D_LocalSpace_Data &localSpace,
134 const Eigen::MatrixXd &points) const = 0;
135
141 virtual Eigen::MatrixXd ComputePolynomialsLaplacianValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
142 const VEM_PCC_3D_LocalSpace_Data &localSpace,
143 const Eigen::MatrixXd &points) const = 0;
144
150 virtual Eigen::MatrixXd ComputeValuesOnEdge(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data,
151 const VEM_PCC_3D_LocalSpace_Data &localSpace,
152 const Eigen::VectorXd &pointsCurvilinearCoordinates) const = 0;
153
155 const unsigned int edge_local_index) const = 0;
156};
157} // namespace PCC
158} // namespace VEM
159} // namespace Polydim
160
161#endif
Interface class for Primal Conforming Constant degree 3D Virtual Element Methods .
Definition I_VEM_PCC_3D_LocalSpace.hpp:31
virtual std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_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 ComputeValuesOnEdge(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::VectorXd &pointsCurvilinearCoordinates) const =0
Compute values of the trace of VEM basis functions at given points on an edge.
virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_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 ComputeDRecipeStabilizationMatrix(const VEM_PCC_3D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType, const Eigen::MatrixXd &coercivity_matrix, const Eigen::VectorXd &vector_coefficients) const =0
virtual Eigen::MatrixXd ComputeDofiDofiStabilizationMatrix(const VEM_PCC_3D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute matrix representation of dofi-dofi stabilization.
virtual std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const VEM_PCC_3D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute values of a suitable projection of derivatives of basis functions at default quadrature point...
virtual std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const VEM_PCC_3D_LocalSpace_Data &localSpace) const =0
Compute values of the derivatives of the polynomial basis at default quadrature points.
virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_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 ~I_VEM_PCC_3D_LocalSpace()
Definition I_VEM_PCC_3D_LocalSpace.hpp:33
virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_3D_LocalSpace_Data &localSpace) const =0
Compute values of the polynomial basis at default quadrature points.
virtual Eigen::MatrixXd ComputeBasisFunctionsLaplacianValues(const VEM_PCC_3D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute values of a suitable projection of laplacian of basis functions at default quadrature points.
virtual Eigen::MatrixXd ComputePolynomialsLaplacianValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const =0
Compute values of the laplacian of the polynomial basis at given points.
virtual Eigen::MatrixXd ComputeBasisFunctionsValues(const VEM_PCC_3D_LocalSpace_Data &localSpace, const ProjectionTypes &projectionType) const =0
Compute values of a suitable projection of basis functions at default quadrature points.
virtual std::vector< Eigen::MatrixXd > ComputePolynomialsDerivativeValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const =0
Compute values of the derivatives of the polynomial basis at given points.
virtual Eigen::MatrixXd ComputePolynomialsValues(const VEM_PCC_3D_ReferenceElement_Data &reference_element_data, const VEM_PCC_3D_LocalSpace_Data &localSpace, const Eigen::MatrixXd &points) const =0
Compute values of the polynomial basis at given points.
virtual Eigen::MatrixXd EdgeDOFsCoordinates(const Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data &localSpace, const unsigned int edge_local_index) const =0
virtual VEM_PCC_3D_LocalSpace_Data CreateLocalSpace(const VEM_PCC_2D_ReferenceElement_Data &reference_element_data_2D, const VEM_PCC_3D_ReferenceElement_Data &reference_element_data_3D, const VEM_PCC_3D_Polyhedron_Geometry &polyhedron) const =0
Compute data of VEM space on a polygon.
Definition VEM_PCC_3D_LocalSpace_Data.hpp:53
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