deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
fe_p1nc.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2016 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_fe_p1nc_h
16#define dealii_fe_p1nc_h
17
18#include <deal.II/base/config.h>
19
22
23#include <deal.II/fe/fe.h>
24
25
27
28
258class FE_P1NC : public FiniteElement<2, 2>
259{
260public:
265 FE_P1NC();
266
267 virtual std::string
268 get_name() const override;
269
270 virtual UpdateFlags
271 requires_update_flags(const UpdateFlags flags) const override;
272
273 virtual std::unique_ptr<FiniteElement<2, 2>>
274 clone() const override;
275
279 virtual ~FE_P1NC() override = default;
280
281
282
283private:
288 static std::vector<unsigned int>
290
298
307 virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
308 get_data(
309 const UpdateFlags update_flags,
310 const Mapping<2, 2> &,
311 const Quadrature<2> &quadrature,
313 &output_data) const override;
314
316
317 virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
319 const UpdateFlags update_flags,
320 const Mapping<2, 2> &,
321 const hp::QCollection<1> &quadrature,
323 &output_data) const override;
324
325 virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
327 const UpdateFlags update_flags,
328 const Mapping<2, 2> &,
329 const Quadrature<1> &quadrature,
331 &output_data) const override;
332
336 virtual void
339 const CellSimilarity::Similarity cell_similarity,
340 const Quadrature<2> &quadrature,
341 const Mapping<2, 2> &mapping,
342 const Mapping<2, 2>::InternalDataBase &mapping_internal,
344 &mapping_data,
345 const FiniteElement<2, 2>::InternalDataBase &fe_internal,
347 &output_data) const override;
348
350
354 virtual void
357 const unsigned int face_no,
358 const hp::QCollection<1> &quadrature,
359 const Mapping<2, 2> &mapping,
360 const Mapping<2, 2>::InternalDataBase &mapping_internal,
362 &mapping_data,
363 const InternalDataBase &fe_internal,
365 &output_data) const override;
366
370 virtual void
373 const unsigned int face_no,
374 const unsigned int sub_no,
375 const Quadrature<1> &quadrature,
376 const Mapping<2, 2> &mapping,
377 const Mapping<2, 2>::InternalDataBase &mapping_internal,
379 &mapping_data,
380 const InternalDataBase &fe_internal,
382 &output_data) const override;
383
387 void
389};
390
391
392
397
398#endif
FE_P1NC()
Definition fe_p1nc.cc:23
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
Definition fe_p1nc.cc:159
static ndarray< double, 4, 3 > get_linear_shape_coefficients(const Triangulation< 2, 2 >::cell_iterator &cell)
Definition fe_p1nc.cc:88
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
Definition fe_p1nc.cc:293
virtual std::unique_ptr< FiniteElement< 2, 2 > > clone() const override
Definition fe_p1nc.cc:68
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
Definition fe_p1nc.cc:246
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
Definition fe_p1nc.cc:209
void initialize_constraints()
Definition fe_p1nc.cc:339
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
Definition fe_p1nc.cc:135
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
Definition fe_p1nc.cc:185
virtual UpdateFlags requires_update_flags(const UpdateFlags flags) const override
Definition fe_p1nc.cc:49
static std::vector< unsigned int > get_dpo_vector()
Definition fe_p1nc.cc:76
virtual std::string get_name() const override
Definition fe_p1nc.cc:41
virtual ~FE_P1NC() override=default
friend class InternalDataBase
Definition fe.h:3120
Abstract base class for mapping classes.
Definition mapping.h:318
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
UpdateFlags
typename internal::ndarray::HelperArray< T, Ns... >::type ndarray
Definition ndarray.h:107