12#ifndef __ZFEM_PCC_2D_LocalSpace_HPP
13#define __ZFEM_PCC_2D_LocalSpace_HPP
37 const unsigned int &NumBasisFunctions,
38 const unsigned int &NumTotalBasisFunctions,
39 const unsigned int &NumVirtualBasisFunctions,
40 const std::vector<Polydim::FEM::PCC::FEM_Triangle_PCC_2D_LocalSpace_Data> &fem_local_space_data,
41 const Eigen::MatrixXi &local_to_total,
42 Eigen::MatrixXd &CoarseNodes,
43 Eigen::MatrixXd &VirtualNodes,
44 Eigen::MatrixXd &FinerNodes)
const;
50 const Eigen::Vector3d &internal_points,
51 const double &diameter,
66 const std::vector<Eigen::MatrixXd> &points)
const
68 const Eigen::MatrixXd total_fem_basis_functions_values =
78 total_fem_basis_functions_values,
85 const std::vector<Eigen::MatrixXd> &points)
const
88 const std::vector<Eigen::MatrixXd> total_fem_basis_functions_derivative_values =
90 reference_element_data,
100 total_fem_basis_functions_derivative_values,
106 const Eigen::VectorXd &pointsCurvilinearCoordinates)
const
110 reference_element_data.
Order,
112 pointsCurvilinearCoordinates);
Definition FEM_Triangle_PCC_2D_LocalSpace.hpp:27
Definition Monomials_2D.hpp:22
Abstract interface for a 2D primal conforming ZFEM (Zipped FEM) local space.
Definition I_ZFEM_PCC_2D_LocalSpace.hpp:29
This local space implements .
Definition ZFEM_PCC_2D_LocalSpace.hpp:29
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::ZFEM::PCC::ZFEM_PCC_2D_LocalSpace_Data &localSpace, const std::vector< Eigen::MatrixXd > &points) const
Definition ZFEM_PCC_2D_LocalSpace.hpp:64
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_LocalSpace_Data &localSpace) const
Evaluate the basis functions at the cell's internal quadrature points.
Definition ZFEM_PCC_2D_LocalSpace.hpp:54
Eigen::MatrixXd ComputeValuesOnEdge(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::ZFEM::PCC::ZFEM_PCC_2D_LocalSpace_Data &localSpace, const Eigen::VectorXd &pointsCurvilinearCoordinates) const
Evaluate the basis functions on a given edge.
Definition ZFEM_PCC_2D_LocalSpace.hpp:104
void ComputePolynomialsDofs(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Eigen::Vector3d &internal_points, const double &diameter, Polydim::ZFEM::PCC::ZFEM_PCC_2D_LocalSpace_Data &localSpace) const
Definition ZFEM_PCC_2D_LocalSpace.cpp:135
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_LocalSpace_Data &localSpace) const
Evaluate the basis-function derivatives at the cell's internal quadrature points.
Definition ZFEM_PCC_2D_LocalSpace.hpp:59
void PolygonFineNodes(const unsigned int num_vertices, const unsigned int &NumBasisFunctions, const unsigned int &NumTotalBasisFunctions, const unsigned int &NumVirtualBasisFunctions, const std::vector< Polydim::FEM::PCC::FEM_Triangle_PCC_2D_LocalSpace_Data > &fem_local_space_data, const Eigen::MatrixXi &local_to_total, Eigen::MatrixXd &CoarseNodes, Eigen::MatrixXd &VirtualNodes, Eigen::MatrixXd &FinerNodes) const
Definition ZFEM_PCC_2D_LocalSpace.cpp:146
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::ZFEM::PCC::ZFEM_PCC_2D_LocalSpace_Data &localSpace, const std::vector< Eigen::MatrixXd > &points) const
Definition ZFEM_PCC_2D_LocalSpace.hpp:82
ZFEM_PCC_2D_LocalSpace_Data CreateLocalSpace(const Polydim::ZFEM::PCC::ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const Polydim::ZFEM::PCC::ZFEM_PCC_2D_Polygon_Geometry &polygon) const
Build the ZFEM local space on a given polygon.
Definition ZFEM_PCC_2D_LocalSpace.cpp:26
Definition FEM_MCC_2D_LocalSpace.cpp:17
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:43
unsigned int NumBasisFunctions
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:67
unsigned int Dimension
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:44
Eigen::RowVectorXd ReferenceEdgeDOFsInternalPoints
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:76
Eigen::MatrixXd ZFEM_basis_functions_values
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:60
unsigned int NumVirtualBasisFunctions
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:69
Eigen::VectorXd EdgeBasisCoefficients
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:77
Eigen::MatrixXd VirtualWeights
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:80
std::vector< Eigen::MatrixXd > ZFEM_basis_functions_derivative_values
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:61
Eigen::MatrixXi local_to_total
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:49
std::vector< Polydim::FEM::PCC::FEM_Triangle_PCC_2D_LocalSpace_Data > fem_local_space_data
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:54
Definition ZFEM_PCC_2D_LocalSpace_Data.hpp:26
Reference-element data for the 2D primal conforming ZFEM (Zipped FEM) space.
Definition I_ZFEM_PCC_2D_ReferenceElement.hpp:36
unsigned int Order
Definition I_ZFEM_PCC_2D_ReferenceElement.hpp:38
Definition ZFEM_PCC_Utilities.hpp:29
Eigen::MatrixXd ComputeBasisFunctionsValues(const unsigned int &NumBasisFunctions, const unsigned int &NumVirtualBasisFunctions, const Eigen::MatrixXd &fem_basis_functions_values, const Eigen::MatrixXd &VirtualWeights) const
Definition ZFEM_PCC_Utilities.hpp:48
Eigen::MatrixXd ComputeValuesOnEdge(const Eigen::RowVectorXd &edgeInternalPoints, const unsigned int &order, const Eigen::VectorXd &edgeBasisCoefficients, const Eigen::VectorXd &pointsCurvilinearCoordinates) const
Definition ZFEM_PCC_Utilities.hpp:38
std::vector< Eigen::MatrixXd > ComputeFEMBasisFunctionsDerivativeValues(unsigned int dimension, const ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const unsigned int &num_basis_functions, const unsigned int &num_virtual_basis_functions, const std::vector< Polydim::FEM::PCC::FEM_Triangle_PCC_2D_LocalSpace_Data > &fem_local_space_data, const Eigen::MatrixXi &local_to_global) const
Definition ZFEM_PCC_Utilities.hpp:128
Eigen::MatrixXd ComputeFEMBasisFunctionsValues(const ZFEM_PCC_2D_ReferenceElement_Data &reference_element_data, const unsigned int &num_basis_functions, const unsigned int &num_virtual_basis_functions, const std::vector< Polydim::FEM::PCC::FEM_Triangle_PCC_2D_LocalSpace_Data > &fem_local_space_data, const Eigen::MatrixXi &local_to_global) const
Definition ZFEM_PCC_Utilities.hpp:57
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const unsigned int &Dimension, const unsigned int &NumBasisFunctions, const unsigned int &NumVirtualBasisFunctions, const std::vector< Eigen::MatrixXd > &fem_basis_functions_derivative_values, const Eigen::MatrixXd &VirtualWeights) const
Definition ZFEM_PCC_Utilities.hpp:215