Reference documentation for deal.II version Git 1206453fa0 2020-07-09 18:20:27 -0600
\(\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_abf.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2003 - 2019 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_abf_h
17 #define dealii_fe_abf_h
18 
19 #include <deal.II/base/config.h>
20 
24 #include <deal.II/base/table.h>
26 
27 #include <deal.II/fe/fe.h>
29 
30 #include <vector>
31 
33 
34 
37 
98 template <int dim>
99 class FE_ABF : public FE_PolyTensor<dim>
100 {
101 public:
105  FE_ABF(const unsigned int p);
106 
112  virtual std::string
113  get_name() const override;
114 
122  virtual bool
123  has_support_on_face(const unsigned int shape_index,
124  const unsigned int face_index) const override;
125 
126  // documentation inherited from the base class
127  virtual void
129  const std::vector<Vector<double>> &support_point_values,
130  std::vector<double> & nodal_values) const override;
131 
132  virtual std::size_t
133  memory_consumption() const override;
134 
135  virtual std::unique_ptr<FiniteElement<dim, dim>>
136  clone() const override;
137 
138 private:
144  const unsigned int rt_order;
145 
152  static std::vector<unsigned int>
153  get_dpo_vector(const unsigned int degree);
154 
164  void
165  initialize_support_points(const unsigned int rt_degree);
166 
173  void
175 
183  {
184  public:
196  std::vector<std::vector<Tensor<1, dim>>> shape_values;
197 
207  std::vector<std::vector<Tensor<2, dim>>> shape_gradients;
208  };
209 
224 
225 
226 
241 
242 
243  // Allow access from other dimensions.
244  template <int dim1>
245  friend class FE_ABF;
246 };
247 
248 
249 
254 
255 #endif
void initialize_restriction()
Definition: fe_abf.cc:321
Table< 3, double > interior_weights
Definition: fe_abf.h:223
virtual void convert_generalized_support_point_values_to_dof_values(const std::vector< Vector< double >> &support_point_values, std::vector< double > &nodal_values) const override
Definition: fe_abf.cc:533
Table< 2, double > boundary_weights
Definition: fe_abf.h:216
virtual std::string get_name() const override
Definition: fe_abf.cc:116
const unsigned int degree
Definition: fe_base.h:296
friend class FE_ABF
Definition: fe_abf.h:245
std::vector< std::vector< Tensor< 1, dim > > > shape_values
Definition: fe_abf.h:196
Definition: fe_abf.h:99
Table< 2, double > boundary_weights_abf
Definition: fe_abf.h:233
virtual std::unique_ptr< FiniteElement< dim, dim > > clone() const override
Definition: fe_abf.cc:136
Table< 3, double > interior_weights_abf
Definition: fe_abf.h:240
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:363
friend class InternalDataBase
Definition: fe.h:3028
std::vector< std::vector< Tensor< 2, dim > > > shape_gradients
Definition: fe_abf.h:207
const unsigned int rt_order
Definition: fe_abf.h:144
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:362
virtual std::size_t memory_consumption() const override
Definition: fe_abf.cc:610
static std::vector< unsigned int > get_dpo_vector(const unsigned int degree)
Definition: fe_abf.cc:458
void initialize_support_points(const unsigned int rt_degree)
Definition: fe_abf.cc:151
virtual bool has_support_on_face(const unsigned int shape_index, const unsigned int face_index) const override
Definition: fe_abf.cc:491