Reference documentation for deal.II version 9.1.0-pre
fe_p1nc.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2015 - 2018 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 
21 #include <deal.II/base/qprojector.h>
22 #include <deal.II/base/quadrature.h>
23 
24 #include <deal.II/fe/fe.h>
25 
26 
27 DEAL_II_NAMESPACE_OPEN
28 
29 
32 
272 class FE_P1NC : public FiniteElement<2, 2>
273 {
274 public:
279  FE_P1NC();
280 
281  virtual std::string
282  get_name() const override;
283 
284  virtual UpdateFlags
285  requires_update_flags(const UpdateFlags flags) const override;
286 
287  virtual std::unique_ptr<FiniteElement<2, 2>>
288  clone() const override;
289 
293  virtual ~FE_P1NC() override = default;
294 
295 
296 
297 private:
302  static std::vector<unsigned int>
303  get_dpo_vector();
304 
310  static std::array<std::array<double, 3>, 4>
312 
321  virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
322  get_data(
323  const UpdateFlags update_flags,
324  const Mapping<2, 2> &,
325  const Quadrature<2> &quadrature,
327  &output_data) const override;
328 
329  virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
330  get_face_data(
331  const UpdateFlags update_flags,
332  const Mapping<2, 2> &,
333  const Quadrature<1> &quadrature,
335  &output_data) const override;
336 
337  virtual std::unique_ptr<FiniteElement<2, 2>::InternalDataBase>
338  get_subface_data(
339  const UpdateFlags update_flags,
340  const Mapping<2, 2> &,
341  const Quadrature<1> &quadrature,
343  &output_data) const override;
344 
348  virtual void
351  const CellSimilarity::Similarity cell_similarity,
352  const Quadrature<2> & quadrature,
353  const Mapping<2, 2> & mapping,
354  const Mapping<2, 2>::InternalDataBase & mapping_internal,
356  & mapping_data,
357  const FiniteElement<2, 2>::InternalDataBase &fe_internal,
359  &output_data) const override;
360 
364  virtual void
367  const unsigned int face_no,
368  const Quadrature<1> & quadrature,
369  const Mapping<2, 2> & mapping,
370  const Mapping<2, 2>::InternalDataBase & mapping_internal,
371  const ::internal::FEValuesImplementation::MappingRelatedData<2, 2>
372  & mapping_data,
373  const InternalDataBase &fe_internal,
375  &output_data) const override;
376 
380  virtual void
383  const unsigned int face_no,
384  const unsigned int sub_no,
385  const Quadrature<1> & quadrature,
386  const Mapping<2, 2> & mapping,
387  const Mapping<2, 2>::InternalDataBase & mapping_internal,
388  const ::internal::FEValuesImplementation::MappingRelatedData<2, 2>
389  & mapping_data,
390  const InternalDataBase &fe_internal,
392  &output_data) const override;
393 
397  void
399 };
400 
401 
402 
406 DEAL_II_NAMESPACE_CLOSE
407 
408 #endif
FE_P1NC()
Definition: fe_p1nc.cc:24
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 void fill_fe_face_values(const Triangulation< 2, 2 >::cell_iterator &cell, const unsigned int face_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:246
virtual std::unique_ptr< FiniteElement< 2, 2 > > clone() const override
Definition: fe_p1nc.cc:69
static std::vector< unsigned int > get_dpo_vector()
Definition: fe_p1nc.cc:77
virtual UpdateFlags requires_update_flags(const UpdateFlags flags) const override
Definition: fe_p1nc.cc:50
static std::array< std::array< double, 3 >, 4 > get_linear_shape_coefficients(const Triangulation< 2, 2 >::cell_iterator &cell)
Definition: fe_p1nc.cc:89
UpdateFlags
Abstract base class for mapping classes.
Definition: dof_tools.h:57
virtual std::string get_name() const override
Definition: fe_p1nc.cc:42
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:290
virtual ~FE_P1NC() override=default
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:208
void initialize_constraints()
Definition: fe_p1nc.cc:337