Reference documentation for deal.II version 9.0.0
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 at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_fe_p1nc_h
17 #define dealii_fe_p1nc_h
18 
19 #include <deal.II/base/config.h>
20 #include <deal.II/fe/fe.h>
21 #include <deal.II/base/quadrature.h>
22 #include <deal.II/base/qprojector.h>
23 
24 
25 DEAL_II_NAMESPACE_OPEN
26 
27 
30 
254 class FE_P1NC : public FiniteElement<2,2>
255 {
256 
257 public:
262  FE_P1NC();
263 
264  virtual std::string get_name () const;
265 
266  virtual UpdateFlags requires_update_flags (const UpdateFlags flags) const;
267 
268  virtual
269  std::unique_ptr<FiniteElement<2,2>>
270  clone() const;
271 
275  virtual ~FE_P1NC () = default;
276 
277 
278 
279 private:
280 
284  static std::vector<unsigned int> get_dpo_vector ();
285 
290  static std::array<std::array<double,3>,4>
292 
300  virtual
301  std::unique_ptr<FiniteElement<2,2>::InternalDataBase>
302  get_data (const UpdateFlags update_flags,
303  const Mapping<2,2> &,
304  const Quadrature<2> &quadrature,
306 
307  virtual
308  std::unique_ptr<FiniteElement<2,2>::InternalDataBase>
309  get_face_data (const UpdateFlags update_flags,
310  const Mapping<2,2> &,
311  const Quadrature<1> &quadrature,
313 
314  virtual
315  std::unique_ptr<FiniteElement<2,2>::InternalDataBase>
316  get_subface_data (const UpdateFlags update_flags,
317  const Mapping<2,2> &,
318  const Quadrature<1> &quadrature,
320 
324  virtual void
326  const CellSimilarity::Similarity cell_similarity,
327  const Quadrature<2> &quadrature,
328  const Mapping<2,2> &mapping,
329  const Mapping<2,2>::InternalDataBase &mapping_internal,
331  const FiniteElement<2,2>::InternalDataBase &fe_internal,
333 
337  virtual void
339  const unsigned int face_no,
340  const Quadrature<1> &quadrature,
341  const Mapping<2,2> &mapping,
342  const Mapping<2,2>::InternalDataBase &mapping_internal,
343  const ::internal::FEValuesImplementation::MappingRelatedData<2,2> &mapping_data,
344  const InternalDataBase &fe_internal,
346 
350  virtual void
352  const unsigned int face_no,
353  const unsigned int sub_no,
354  const Quadrature<1> &quadrature,
355  const Mapping<2,2> &mapping,
356  const Mapping<2,2>::InternalDataBase &mapping_internal,
357  const ::internal::FEValuesImplementation::MappingRelatedData<2,2> &mapping_data,
358  const InternalDataBase &fe_internal,
360 
364  void initialize_constraints ();
365 
366 };
367 
368 
369 
370 
374 DEAL_II_NAMESPACE_CLOSE
375 
376 #endif
FE_P1NC()
Definition: fe_p1nc.cc:23
virtual std::unique_ptr< FiniteElement< 2, 2 > > clone() const
Definition: fe_p1nc.cc:69
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
Definition: fe_p1nc.cc:194
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
Definition: fe_p1nc.cc:268
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
Definition: fe_p1nc.cc:128
static std::vector< unsigned int > get_dpo_vector()
Definition: fe_p1nc.cc:77
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
virtual UpdateFlags requires_update_flags(const UpdateFlags flags) const
Definition: fe_p1nc.cc:50
Abstract base class for mapping classes.
Definition: dof_tools.h:46
virtual std::string get_name() const
Definition: fe_p1nc.cc:43
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
Definition: fe_p1nc.cc:228
virtual ~FE_P1NC()=default
void initialize_constraints()
Definition: fe_p1nc.cc:310