12#ifndef __FEM_PCC_1D_LocalSpace_HPP
13#define __FEM_PCC_1D_LocalSpace_HPP
57 Eigen::MatrixXd points(3, x.cols());
59 for (
unsigned int p = 0; p < x.cols(); ++p)
67 Eigen::MatrixXd points(3, x.cols());
69 for (
unsigned int p = 0; p < x.cols(); ++p)
76 const Eigen::MatrixXd &x)
const
78 return Eigen::VectorXd::Constant(x.cols(), mapData.
Length);
82 const Eigen::MatrixXd &referenceValues)
const;
85 const std::vector<Eigen::MatrixXd> &referenceDerivateValues)
const;
109 const Eigen::MatrixXd &points)
const
111 const Eigen::MatrixXd referencePoints = FInv(local_space.
MapData, points);
115 return MapValues(local_space, reference_element.
EvaluateBasisFunctions(referencePoints, reference_element_data));
121 const Eigen::MatrixXd &points)
const
123 const Eigen::MatrixXd referencePoints = FInv(local_space.
MapData, points);
133 const auto &dof_coordinates = local_space.
Dofs;
135 const unsigned int starting_index = local_space.
Dof1DsIndex.at(0);
136 const unsigned int num_internal_dofs = reference_element_data.
NumDofs1D;
138 if (num_internal_dofs == 0)
139 return Eigen::MatrixXd(0, 0);
141 const Eigen::MatrixXd edge_dofs_coordinates = dof_coordinates.block(0, starting_index, 3, num_internal_dofs);
143 return edge_dofs_coordinates;
Definition FEM_PCC_1D_LocalSpace.hpp:53
Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data CreateLocalSpace(const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data, const Polydim::FEM::PCC::FEM_PCC_1D_Segment_Geometry &segment) const
Definition FEM_PCC_1D_LocalSpace.cpp:23
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data, const Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data &local_space) const
Definition FEM_PCC_1D_LocalSpace.hpp:100
std::vector< Eigen::MatrixXd > ComputeBasisFunctionsDerivativeValues(const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data, const Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data &local_space, const Eigen::MatrixXd &points) const
Definition FEM_PCC_1D_LocalSpace.hpp:118
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data, const Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data &local_space) const
Definition FEM_PCC_1D_LocalSpace.hpp:94
Eigen::MatrixXd ComputeBasisFunctionsValues(const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data, const Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data &local_space, const Eigen::MatrixXd &points) const
Definition FEM_PCC_1D_LocalSpace.hpp:107
Eigen::MatrixXd InternalDOFsCoordinates(const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data, const Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data &local_space) const
Definition FEM_PCC_1D_LocalSpace.hpp:130
Factory that builds the reference element data for a 1D PCC finite element.
Definition FEM_PCC_1D_ReferenceElement.hpp:67
Eigen::MatrixXd EvaluateBasisFunctions(const Eigen::MatrixXd &points, const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data) const
Definition FEM_PCC_1D_ReferenceElement.hpp:199
std::vector< Eigen::MatrixXd > EvaluateBasisFunctionDerivatives(const Eigen::MatrixXd &points, const Polydim::FEM::PCC::FEM_PCC_1D_ReferenceElement_Data &reference_element_data) const
Definition FEM_PCC_1D_ReferenceElement.hpp:207
Definition FEM_MCC_2D_LocalSpace.cpp:17
Definition QuadratureData.hpp:22
Definition FEM_PCC_1D_LocalSpace.hpp:35
Eigen::Vector3d Origin
Definition FEM_PCC_1D_LocalSpace.hpp:36
double SquaredLength
Definition FEM_PCC_1D_LocalSpace.hpp:39
Eigen::Vector3d Tangent
Definition FEM_PCC_1D_LocalSpace.hpp:37
double Length
Definition FEM_PCC_1D_LocalSpace.hpp:38
Definition FEM_PCC_1D_LocalSpace.hpp:33
std::array< unsigned int, 2 > Dof1DsIndex
Definition FEM_PCC_1D_LocalSpace.hpp:48
std::array< unsigned int, 3 > Dof0DsIndex
Definition FEM_PCC_1D_LocalSpace.hpp:47
std::vector< unsigned int > DofsMeshOrder
Definition FEM_PCC_1D_LocalSpace.hpp:46
unsigned int Order
Definition FEM_PCC_1D_LocalSpace.hpp:43
Eigen::MatrixXd Dofs
Definition FEM_PCC_1D_LocalSpace.hpp:45
Polydim::FEM::PCC::FEM_PCC_1D_LocalSpace_Data::SegmentMapData MapData
Definition FEM_PCC_1D_LocalSpace.hpp:42
unsigned int NumberOfBasisFunctions
Definition FEM_PCC_1D_LocalSpace.hpp:44
Gedim::Quadrature::QuadratureData InternalQuadrature
Definition FEM_PCC_1D_LocalSpace.hpp:49
Reference element data for a 1D PCC finite element.
Definition FEM_PCC_1D_ReferenceElement.hpp:46
unsigned int NumDofs1D
Definition FEM_PCC_1D_ReferenceElement.hpp:50
Eigen::MatrixXd ReferenceBasisFunctionValues
Definition FEM_PCC_1D_ReferenceElement.hpp:58
std::vector< Eigen::MatrixXd > ReferenceBasisFunctionDerivativeValues
Definition FEM_PCC_1D_ReferenceElement.hpp:59
Definition FEM_PCC_1D_LocalSpace.hpp:24
double Tolerance1D
Definition FEM_PCC_1D_LocalSpace.hpp:25
Eigen::Vector3d Origin
Definition FEM_PCC_1D_LocalSpace.hpp:27
Eigen::Vector3d Tangent
Definition FEM_PCC_1D_LocalSpace.hpp:28
double Length
Definition FEM_PCC_1D_LocalSpace.hpp:29