Reference documentation for deal.II version 9.4.0
\(\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\}}\)
fe_p1nc.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2015 - 2021 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef dealii_fe_p1nc_h
17#define dealii_fe_p1nc_h
18
19#include <deal.II/base/config.h>
20
23
24#include <deal.II/fe/fe.h>
25
26
28
29
32
257class FE_P1NC : public FiniteElement<2, 2>
258{
259public:
264 FE_P1NC();
265
266 virtual std::string
267 get_name() const override;
268
269 virtual UpdateFlags
270 requires_update_flags(const UpdateFlags flags) const override;
271
272 virtual std::unique_ptr<FiniteElement<2, 2>>
273 clone() const override;
274
278 virtual ~FE_P1NC() override = default;
279
280
281
282private:
287 static std::vector<unsigned int>
289
297
306 virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
307 get_data(
308 const UpdateFlags update_flags,
309 const Mapping<2, 2> &,
310 const Quadrature<2> &quadrature,
312 &output_data) const override;
313
315
316 virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
318 const UpdateFlags update_flags,
319 const Mapping<2, 2> &,
320 const hp::QCollection<1> &quadrature,
322 &output_data) const override;
323
324 virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
326 const UpdateFlags update_flags,
327 const Mapping<2, 2> &,
328 const Quadrature<1> &quadrature,
330 &output_data) const override;
331
335 virtual void
338 const CellSimilarity::Similarity cell_similarity,
339 const Quadrature<2> & quadrature,
340 const Mapping<2, 2> & mapping,
341 const Mapping<2, 2>::InternalDataBase & mapping_internal,
343 & mapping_data,
344 const FiniteElement<2, 2>::InternalDataBase &fe_internal,
346 &output_data) const override;
347
349
353 virtual void
356 const unsigned int face_no,
357 const hp::QCollection<1> & quadrature,
358 const Mapping<2, 2> & mapping,
359 const Mapping<2, 2>::InternalDataBase & mapping_internal,
360 const ::internal::FEValuesImplementation::MappingRelatedData<2, 2>
361 & mapping_data,
362 const InternalDataBase &fe_internal,
364 &output_data) const override;
365
369 virtual void
372 const unsigned int face_no,
373 const unsigned int sub_no,
374 const Quadrature<1> & quadrature,
375 const Mapping<2, 2> & mapping,
376 const Mapping<2, 2>::InternalDataBase & mapping_internal,
377 const ::internal::FEValuesImplementation::MappingRelatedData<2, 2>
378 & mapping_data,
379 const InternalDataBase &fe_internal,
381 &output_data) const override;
382
386 void
388};
389
390
391
396
397#endif
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:247
FE_P1NC()
Definition: fe_p1nc.cc:24
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:160
static ndarray< double, 4, 3 > get_linear_shape_coefficients(const Triangulation< 2, 2 >::cell_iterator &cell)
Definition: fe_p1nc.cc:89
virtual std::unique_ptr< FiniteElement< 2, 2 > > clone() const override
Definition: fe_p1nc.cc:69
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:294
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:210
void initialize_constraints()
Definition: fe_p1nc.cc:340
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:136
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:186
virtual UpdateFlags requires_update_flags(const UpdateFlags flags) const override
Definition: fe_p1nc.cc:50
static std::vector< unsigned int > get_dpo_vector()
Definition: fe_p1nc.cc:77
virtual std::string get_name() const override
Definition: fe_p1nc.cc:42
virtual ~FE_P1NC() override=default
friend class InternalDataBase
Definition: fe.h:3075
Abstract base class for mapping classes.
Definition: mapping.h:311
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:442
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:443
UpdateFlags
typename internal::ndarray::HelperArray< T, Ns... >::type ndarray
Definition: ndarray.h:108