68std::unique_ptr<FiniteElement<2, 2>>
71 return std::make_unique<FE_P1NC>(*
this);
76std::vector<unsigned int>
79 std::vector<unsigned int>
dpo(3);
93 const Point<2> mpt[4] = {(cell->vertex(0) + cell->vertex(2)) / 2,
94 (cell->vertex(1) + cell->vertex(3)) / 2,
95 (cell->vertex(0) + cell->vertex(1)) / 2,
96 (cell->vertex(2) + cell->vertex(3)) / 2};
100 (cell->vertex(0) + cell->vertex(1) + cell->vertex(2) + cell->vertex(3)) / 4;
107 ((
mpt[2](1) -
mpt[3](1)) * (0.5) - (
mpt[0](1) -
mpt[1](1)) * (0.5)) /
det;
109 ((
mpt[2](1) -
mpt[3](1)) * (-0.5) - (
mpt[0](1) -
mpt[1](1)) * (0.5)) /
det;
111 ((
mpt[2](1) -
mpt[3](1)) * (0.5) - (
mpt[0](1) -
mpt[1](1)) * (-0.5)) /
det;
113 ((
mpt[2](1) -
mpt[3](1)) * (-0.5) - (
mpt[0](1) -
mpt[1](1)) * (-0.5)) /
det;
116 (-(
mpt[2](0) -
mpt[3](0)) * (0.5) + (
mpt[0](0) -
mpt[1](0)) * (0.5)) /
det;
118 (-(
mpt[2](0) -
mpt[3](0)) * (-0.5) + (
mpt[0](0) -
mpt[1](0)) * (0.5)) /
det;
120 (-(
mpt[2](0) -
mpt[3](0)) * (0.5) + (
mpt[0](0) -
mpt[1](0)) * (-0.5)) /
det;
122 (-(
mpt[2](0) -
mpt[3](0)) * (-0.5) + (
mpt[0](0) -
mpt[1](0)) * (-0.5)) /
135std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
143 auto data_ptr = std::make_unique<FiniteElement<2, 2>::InternalDataBase>();
147 const unsigned int n_q_points = quadrature.
size();
159std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
169 auto data_ptr = std::make_unique<FiniteElement<2, 2>::InternalDataBase>();
173 const unsigned int n_q_points = quadrature[0].
size();
185std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
193 auto data_ptr = std::make_unique<FiniteElement<2, 2>::InternalDataBase>();
197 const unsigned int n_q_points = quadrature.
size();
231 for (
unsigned int i = 0; i < n_q_points; ++i)
238 for (
unsigned int i = 0; i < n_q_points; ++i)
276 mapping.transform_unit_to_real_cell(cell,
280 (
coeffs[
k][0] * quadrature_point(0) +
297 const unsigned int sub_no,
321 mapping.transform_unit_to_real_cell(
325 (
coeffs[
k][0] * quadrature_point(0) +
virtual std::unique_ptr< FiniteElement< 2, 2 >::InternalDataBase > get_face_data(const UpdateFlags update_flags, const Mapping< 2, 2 > &, const hp::QCollection< 1 > &quadrature, ::internal::FEValuesImplementation::FiniteElementRelatedData< 2, 2 > &output_data) const override
static ndarray< double, 4, 3 > get_linear_shape_coefficients(const Triangulation< 2, 2 >::cell_iterator &cell)
virtual void fill_fe_subface_values(const Triangulation< 2, 2 >::cell_iterator &cell, const unsigned int face_no, const unsigned int sub_no, const Quadrature< 1 > &quadrature, const Mapping< 2, 2 > &mapping, const Mapping< 2, 2 >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< 2, 2 > &mapping_data, const InternalDataBase &fe_internal, ::internal::FEValuesImplementation::FiniteElementRelatedData< 2, 2 > &output_data) const override
virtual std::unique_ptr< FiniteElement< 2, 2 > > clone() const override
virtual void fill_fe_face_values(const Triangulation< 2, 2 >::cell_iterator &cell, const unsigned int face_no, const hp::QCollection< 1 > &quadrature, const Mapping< 2, 2 > &mapping, const Mapping< 2, 2 >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< 2, 2 > &mapping_data, const InternalDataBase &fe_internal, ::internal::FEValuesImplementation::FiniteElementRelatedData< 2, 2 > &output_data) const override
virtual void fill_fe_values(const Triangulation< 2, 2 >::cell_iterator &cell, const CellSimilarity::Similarity cell_similarity, const Quadrature< 2 > &quadrature, const Mapping< 2, 2 > &mapping, const Mapping< 2, 2 >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< 2, 2 > &mapping_data, const FiniteElement< 2, 2 >::InternalDataBase &fe_internal, internal::FEValuesImplementation::FiniteElementRelatedData< 2, 2 > &output_data) const override
void initialize_constraints()
virtual std::unique_ptr< FiniteElement< 2, 2 >::InternalDataBase > get_data(const UpdateFlags update_flags, const Mapping< 2, 2 > &, const Quadrature< 2 > &quadrature, ::internal::FEValuesImplementation::FiniteElementRelatedData< 2, 2 > &output_data) const override
virtual std::unique_ptr< FiniteElement< 2, 2 >::InternalDataBase > get_subface_data(const UpdateFlags update_flags, const Mapping< 2, 2 > &, const Quadrature< 1 > &quadrature, ::internal::FEValuesImplementation::FiniteElementRelatedData< 2, 2 > &output_data) const override
virtual UpdateFlags requires_update_flags(const UpdateFlags flags) const override
static std::vector< unsigned int > get_dpo_vector()
virtual std::string get_name() const override
unsigned int n_dofs_per_cell() const
ReferenceCell reference_cell() const
std::vector< std::vector< Point< dim - 1 > > > unit_face_support_points
TableIndices< 2 > interface_constraints_size() const
FullMatrix< double > interface_constraints
static void project_to_subface(const ReferenceCell &reference_cell, const SubQuadrature &quadrature, const unsigned int face_no, const unsigned int subface_no, std::vector< Point< dim > > &q_points, const RefinementCase< dim - 1 > &ref_case=RefinementCase< dim - 1 >::isotropic_refinement)
static void project_to_face(const ReferenceCell &reference_cell, const SubQuadrature &quadrature, const unsigned int face_no, std::vector< Point< dim > > &q_points)
unsigned int size() const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define AssertDimension(dim1, dim2)
@ update_hessians
Second derivatives of shape functions.
@ update_values
Shape function values.
@ update_normal_vectors
Normal vectors.
@ update_JxW_values
Transformed quadrature weights.
@ update_gradients
Shape function gradients.
@ update_quadrature_points
Transformed quadrature points.
@ update_default
No update.