PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
LocalSpace_PCC_3D.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 __LocalSpace_PCC_3D_H
13#define __LocalSpace_PCC_3D_H
14
15#include "DOFsManager.hpp"
19#include "MeshMatricesDAO.hpp"
20#include "MeshUtilities.hpp"
21#include "QuadratureData.hpp"
26
27namespace Polydim
28{
29namespace PDETools
30{
31
40namespace LocalSpace_PCC_3D
41{
42enum class MethodTypes
43{
44 FEM_PCC = 0,
45 VEM_PCC = 1,
46 VEM_PCC_Inertia = 2,
47 VEM_PCC_Ortho = 3
48};
49
51{
52 public:
54 unsigned int Order;
55
56 std::unique_ptr<Polydim::VEM::PCC::I_VEM_PCC_2D_ReferenceElement> VEM_ReferenceElement_2D;
58 std::unique_ptr<Polydim::VEM::PCC::I_VEM_PCC_3D_ReferenceElement> VEM_ReferenceElement_3D;
61 std::unique_ptr<Polydim::VEM::PCC::I_VEM_PCC_3D_LocalSpace> VEM_LocalSpace;
62
63 std::unique_ptr<Polydim::FEM::PCC::FEM_PCC_3D_ReferenceElement> FEM_ReferenceElement_3D;
65 std::unique_ptr<Polydim::FEM::PCC::FEM_PCC_3D_LocalSpace> FEM_LocalSpace;
66};
67
77
91
93 const unsigned int method_order);
94
97 const Gedim::MeshMatricesDAO &mesh,
98 const std::map<unsigned int, Polydim::PDETools::DOFs::DOFsManager::MeshDOFsInfo::BoundaryInfo> &boundary_info);
99
101 const double &geometric_tolerance_1D,
102 const double &geometric_tolerance_2D,
103 const double &geometric_tolerance_3D,
104 const Gedim::MeshUtilities::MeshGeometricData3D &mesh_geometric_data,
105 const unsigned int cell3D_index,
107
111
112Eigen::MatrixXd BasisFunctionsValuesOnFace(const unsigned int &face_local_index,
115 const Eigen::MatrixXd &quadrature_points);
116
117std::vector<Eigen::MatrixXd> BasisFunctionsDerivativeValues(
121
122Eigen::MatrixXd StabilizationMatrix(const Polydim::PDETools::LocalSpace_PCC_3D::ReferenceElement_Data &reference_element_data,
125
126Eigen::MatrixXd EdgeDofsCoordinates(const Polydim::PDETools::LocalSpace_PCC_3D::ReferenceElement_Data &reference_element_data,
128 const unsigned int edge_local_index);
129
132 const unsigned int face_local_index,
133 unsigned int &quadrature_offset);
134
135Eigen::VectorXd FaceDofs(const Polydim::PDETools::LocalSpace_PCC_3D::ReferenceElement_Data &reference_element_data,
137 const unsigned int face_local_index,
138 const Eigen::VectorXd &strong_values,
139 const Gedim::Quadrature::QuadratureData &quadrature_offset);
140
143 const unsigned int face_local_index,
144 unsigned int &quadrature_offset);
145
148
149unsigned int Size(const Polydim::PDETools::LocalSpace_PCC_3D::ReferenceElement_Data &reference_element_data,
151
155} // namespace LocalSpace_PCC_3D
156} // namespace PDETools
157} // namespace Polydim
158
159#endif
Definition IMeshDAO.hpp:1068
Polydim::VEM::PCC::VEM_PCC_3D_Polyhedron_Geometry VEM_Geometry
Definition LocalSpace_PCC_3D.hpp:71
Polydim::FEM::PCC::FEM_PCC_3D_Polyhedron_Geometry FEM_Geometry
Definition LocalSpace_PCC_3D.hpp:74
Polydim::FEM::PCC::FEM_PCC_3D_LocalSpace_Data FEM_LocalSpace_Data
Definition LocalSpace_PCC_3D.hpp:75
Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Data VEM_LocalSpace_Data
Definition LocalSpace_PCC_3D.hpp:72
unsigned int NumInternalQuadraturePoints
Definition LocalSpace_PCC_3D.hpp:85
unsigned int NumBoundaryQuadraturePoints
Definition LocalSpace_PCC_3D.hpp:84
Polydim::VEM::PCC::VEM_PCC_PerformanceAnalysis_Data Analysis
Definition LocalSpace_PCC_3D.hpp:86
Polydim::PDETools::LocalSpace_PCC_3D::Performance_Data::Cell3D_Performance VEM_Performance_Data
Definition LocalSpace_PCC_3D.hpp:89
Polydim::VEM::PCC::VEM_PCC_3D_LocalSpace_Types VEM_Type
Definition LocalSpace_PCC_3D.hpp:60
std::unique_ptr< Polydim::VEM::PCC::I_VEM_PCC_3D_ReferenceElement > VEM_ReferenceElement_3D
Definition LocalSpace_PCC_3D.hpp:58
std::unique_ptr< Polydim::FEM::PCC::FEM_PCC_3D_ReferenceElement > FEM_ReferenceElement_3D
Definition LocalSpace_PCC_3D.hpp:63
Polydim::VEM::PCC::VEM_PCC_2D_ReferenceElement_Data VEM_ReferenceElement_Data_2D
Definition LocalSpace_PCC_3D.hpp:57
std::unique_ptr< Polydim::VEM::PCC::I_VEM_PCC_2D_ReferenceElement > VEM_ReferenceElement_2D
Definition LocalSpace_PCC_3D.hpp:56
Polydim::VEM::PCC::VEM_PCC_3D_ReferenceElement_Data VEM_ReferenceElement_Data_3D
Definition LocalSpace_PCC_3D.hpp:59
std::unique_ptr< Polydim::VEM::PCC::I_VEM_PCC_3D_LocalSpace > VEM_LocalSpace
Definition LocalSpace_PCC_3D.hpp:61
Polydim::FEM::PCC::FEM_PCC_3D_ReferenceElement_Data FEM_ReferenceElement_Data_3D
Definition LocalSpace_PCC_3D.hpp:64
Polydim::PDETools::LocalSpace_PCC_3D::MethodTypes Method_Type
Definition LocalSpace_PCC_3D.hpp:53
unsigned int Order
Definition LocalSpace_PCC_3D.hpp:54
std::unique_ptr< Polydim::FEM::PCC::FEM_PCC_3D_LocalSpace > FEM_LocalSpace
Definition LocalSpace_PCC_3D.hpp:65
Definition VEM_PCC_3D_LocalSpace_Data.hpp:53
Definition VEM_PCC_3D_LocalSpace_Data.hpp:27
ReferenceElement_Data CreateReferenceElement(const MethodTypes &method_type, const unsigned int method_order)
Definition LocalSpace_PCC_3D.cpp:23
Gedim::Quadrature::QuadratureData FaceQuadrature(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const unsigned int face_local_index, unsigned int &quadrature_offset)
Definition LocalSpace_PCC_3D.cpp:266
LocalSpace_Data CreateLocalSpace(const double &geometric_tolerance_1D, const double &geometric_tolerance_2D, const double &geometric_tolerance_3D, const Gedim::MeshUtilities::MeshGeometricData3D &mesh_geometric_data, const unsigned int cell3D_index, const ReferenceElement_Data &reference_element_data)
Definition LocalSpace_PCC_3D.cpp:74
Eigen::MatrixXd BasisFunctionsValues(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const Polydim::VEM::PCC::ProjectionTypes &projectionType)
Definition LocalSpace_PCC_3D.cpp:169
PDETools::DOFs::DOFsManager::MeshDOFsInfo SetMeshDOFsInfo(const ReferenceElement_Data &reference_element_data, const Gedim::MeshMatricesDAO &mesh, const std::map< unsigned int, Polydim::PDETools::DOFs::DOFsManager::MeshDOFsInfo::BoundaryInfo > &boundary_info)
Definition LocalSpace_PCC_3D.cpp:401
Eigen::VectorXd FaceDofs(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const unsigned int face_local_index, const Eigen::VectorXd &strong_values, const Gedim::Quadrature::QuadratureData &face_dofs_coordinates)
Definition LocalSpace_PCC_3D.cpp:358
Eigen::MatrixXd EdgeDofsCoordinates(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const unsigned int edge_local_index)
Definition LocalSpace_PCC_3D.cpp:380
Performance_Data ComputePerformance(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data)
Definition LocalSpace_PCC_3D.cpp:526
Eigen::MatrixXd BasisFunctionsValuesOnFace(const unsigned int &face_local_index, const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const Eigen::MatrixXd &quadrature_points)
Definition LocalSpace_PCC_3D.cpp:296
Gedim::Quadrature::QuadratureData FaceDofsCoordinates(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const unsigned int face_local_index, unsigned int &quadrature_offset)
Definition LocalSpace_PCC_3D.cpp:321
Gedim::Quadrature::QuadratureData InternalQuadrature(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data)
Definition LocalSpace_PCC_3D.cpp:210
unsigned int Size(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data)
Definition LocalSpace_PCC_3D.cpp:228
std::vector< Eigen::MatrixXd > BasisFunctionsDerivativeValues(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const VEM::PCC::ProjectionTypes &projectionType)
Definition LocalSpace_PCC_3D.cpp:189
Eigen::MatrixXd StabilizationMatrix(const ReferenceElement_Data &reference_element_data, const LocalSpace_Data &local_space_data, const VEM::PCC::ProjectionTypes &projectionType)
Definition LocalSpace_PCC_3D.cpp:245
MethodTypes
Definition LocalSpace_PCC_3D.hpp:43
@ VEM_PCC_Inertia
VEM with an inertia-based (principal-axes) monomial basis. .
@ VEM_PCC_Ortho
VEM with an -orthonormalized monomial basis. .
@ VEM_PCC
Virtual Element Method (standard monomial basis). .
ProjectionTypes
Definition VEM_PCC_Utilities.hpp:28
VEM_PCC_3D_LocalSpace_Types
Definition VEM_PCC_3D_Creator.hpp:32
Definition FEM_MCC_2D_LocalSpace.cpp:17
Definition MeshUtilities.hpp:215
Definition QuadratureData.hpp:22
Definition FEM_PCC_3D_LocalSpace_Data.hpp:100
Definition FEM_PCC_3D_LocalSpace_Data.hpp:41
Definition FEM_PCC_3D_ReferenceElement.hpp:26
Definition I_VEM_PCC_2D_ReferenceElement.hpp:26
Definition I_VEM_PCC_3D_ReferenceElement.hpp:25
Definition VEM_PCC_PerformanceAnalysis.hpp:28