Reference documentation for deal.II version 9.1.0-pre
Public Attributes | List of all members
FE_NedelecSZ< dim, spacedim >::InternalData Class Reference

#include <deal.II/fe/fe_nedelec_sz.h>

Inheritance diagram for FE_NedelecSZ< dim, spacedim >::InternalData:
[legend]

Public Attributes

std::vector< std::vector< Tensor< 1, dim > > > shape_values
 
std::vector< std::vector< DerivativeForm< 1, dim, dim > > > shape_grads
 
std::vector< std::vector< std::vector< double > > > sigma_imj_values
 
std::vector< std::vector< std::vector< double > > > sigma_imj_grads
 
std::vector< std::vector< double > > edge_sigma_values
 
std::vector< std::vector< double > > edge_sigma_grads
 
std::vector< std::vector< double > > edge_lambda_values
 
std::vector< std::vector< double > > edge_lambda_grads_2d
 
std::vector< std::vector< std::vector< double > > > edge_lambda_grads_3d
 
std::vector< std::vector< std::vector< double > > > edge_lambda_gradgrads_3d
 
std::vector< std::vector< double > > face_lambda_values
 
std::vector< std::vector< double > > face_lambda_grads
 
- Public Attributes inherited from FiniteElement< dim, spacedim >::InternalDataBase
UpdateFlags update_each
 

Additional Inherited Members

- Public Member Functions inherited from FiniteElement< dim, spacedim >::InternalDataBase
 InternalDataBase ()
 
virtual ~InternalDataBase ()=default
 
virtual std::size_t memory_consumption () const
 

Detailed Description

template<int dim, int spacedim = dim>
class FE_NedelecSZ< dim, spacedim >::InternalData

Derived Internal data which is used to store cell-independent data. Note that due to the nature of this element, a number of useful pre-computed quantities are stored for the computation of cell-dependent shape functions.

The main quantities which are stored are associated with edge and face parameterizations. These are:

The definitions of these functionals, as well as the edge and face parameterizations and edge and face extension parameters, can be found on page 82 of Zaglmayr's thesis. The details of the definition of the globally-defined edge and face orientations can be found on page 67.

Definition at line 241 of file fe_nedelec_sz.h.

Member Data Documentation

template<int dim, int spacedim = dim>
std::vector<std::vector<Tensor<1, dim> > > FE_NedelecSZ< dim, spacedim >::InternalData::shape_values
mutable

Storage for shape functions on the reference element. We only pre-compute cell-based DoFs, as the edge- and face-based DoFs depend on the cell.

Due to the cell-dependent DoFs, this variable is declared mutable.

Definition at line 250 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<DerivativeForm<1, dim, dim> > > FE_NedelecSZ< dim, spacedim >::InternalData::shape_grads
mutable

Storage for shape function gradients on the reference element. We only pre-compute cell-based DoFs, as the edge- and face-based DoFs depend on the cell.

Due to the cell-dependent DoFs, this variable is declared mutable.

Definition at line 259 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<std::vector<double> > > FE_NedelecSZ< dim, spacedim >::InternalData::sigma_imj_values

Storage for all possible edge parameterization between vertices. These are required in the computation of edge- and face-based DoFs, which are cell-dependent.

The edge parameterization of an edge, E, starting at vertex i and ending at vertex \(j\) is given by \(\sigma_{E} = \sigma_{i} - \sigma{j}\).

sigma_imj_values[q][i][j] stores the value of the edge parameterization connected by vertices \(i\) and \(j\) at the q-th quadrature point.

Note that not all of the \(i\) and \(j\) combinations result in valid edges on the hexahedral cell, but they are computed in this fashion for use with non-standard edge and face orientations.

Definition at line 276 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<std::vector<double> > > FE_NedelecSZ< dim, spacedim >::InternalData::sigma_imj_grads

Storage for gradients of all possible edge parameterizations between vertices. These are required in the computation of edge- and face-based DoFs, which are cell-dependent. Note that the components of the gradient are constant.

The edge parameterization of an edge, \(E\), starting at vertex \(i\) and ending at vertex \(j\) is given by \(\sigma_{E} = \sigma_{i} - \sigma{j}\).

sigma_imj_grads[i][j][d] stores the gradient of the edge parameterization connected by vertices \(i\) and \(j\) in component \(d\).

Note that the gradient of the edge parameterization is constant on an edge, so we do not need to store it at every quadrature point.

Definition at line 293 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<double> > FE_NedelecSZ< dim, spacedim >::InternalData::edge_sigma_values

Storage for values of edge parameterizations at quadrature points. These are stored for the 12 edges such that the global vertex numbering would follow the order defined by the "standard" deal.II cell.

edge_sigma_values[m][q] stores the edge parameterization value at the q-th quadrature point on edge m.

These values change with the orientation of the edges of a physical cell and so must take the "sign" into account when used for computation.

Definition at line 306 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<double> > FE_NedelecSZ< dim, spacedim >::InternalData::edge_sigma_grads

Storage for gradients of edge parameterization at quadrature points. These are stored for the 12 edges such that the global vertex numbering would follow the order defined by the "standard" deal.II cell.

edge_sigma_grads[m][d] stores the gradient of the edge parameterization for component d on edge m.

These values change with the orientation of the edges of a physical cell and so must take the "sign" into account when used for computation.

Definition at line 320 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<double> > FE_NedelecSZ< dim, spacedim >::InternalData::edge_lambda_values

Storage for edge extension parameters at quadrature points. These are stored for the 12 edges such that the global vertex numbering would follow the order defined by the "standard" deal.II cell.

The edge extension parameter of an edge, \(E\), starting at vertex \(i\) and ending at vertex \(j\) is given by \(\lambda_{E} = \lambda_{i} + \lambda_{j}\).

Note that under this definition, the values of \(\lambda_{E}\) do not change with the orientation of the edge.

edge_lambda_values[m][q] stores the edge extension parameter value at the \(q\)-th quadrature point on edge \(m\).

Definition at line 337 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<double> > FE_NedelecSZ< dim, spacedim >::InternalData::edge_lambda_grads_2d

Storage for gradients of edge extension parameters in 2D. In this case they are constant. These are stored for the 12 edges such that the global vertex numbering* would follow the order defined by the "standard" deal.II cell.

edge_lambda_grads_2d[m][d] stores the gradient of the edge extension parameter for component \(d\) on edge \(m\).

Definition at line 348 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<std::vector<double> > > FE_NedelecSZ< dim, spacedim >::InternalData::edge_lambda_grads_3d

Storage for gradients of edge extension parameters in 3D. In this case they are non-constant. These are stored for the 12 edges such that the global vertex numbering* would follow the order defined by the "standard" deal.II cell.

edge_lambda_grads_3d[m][q][d] stores the gradient of the edge extension parameter for component \(d\) at the \(q\)-th quadrature point on edge m.

Definition at line 359 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<std::vector<double> > > FE_NedelecSZ< dim, spacedim >::InternalData::edge_lambda_gradgrads_3d

Storage for 2nd derivatives of edge extension parameters in 3D, which are constant across the cell. These are stored for the 12 edges such that the global vertex numbering* would follow the order defined by the "standard" deal.II cell.

edge_lambda_gradgrads_3d[m][d1][d2] stores the 2nd derivatives of the edge extension parameters with respect to components d1 and d2 on edge \(m\).

Definition at line 371 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<double> > FE_NedelecSZ< dim, spacedim >::InternalData::face_lambda_values

Storage for the face extension parameters. These are stored for the 6 faces such that the global vertex numbering would follow the order defined by the "standard" deal.II cell.

The face extension parameter of a face, F, defined by the vertices v1, v2, v3, v4 is given by \(\lambda_{F} = \lambda_{v1} + \lambda_{v2} + \lambda_{v3} + \lambda_{v4}\).

Note that under this definition, the values of \(\lambda_{F}\) do not change with the orientation of the face.

face_lambda_values[m][q] stores the face extension parameter value at the \(q\)-th quadrature point on face \(m\).

Definition at line 389 of file fe_nedelec_sz.h.

template<int dim, int spacedim = dim>
std::vector<std::vector<double> > FE_NedelecSZ< dim, spacedim >::InternalData::face_lambda_grads

Storage for gradients of face extension parameters. These are stored for the 6 faces such that the global vertex numbering would follow the order defined by the "standard" deal.II cell.

face_lambda_grads[m][d] stores the gradient of the face extension parameters for component \(d\) on face \(m\).

Definition at line 399 of file fe_nedelec_sz.h.


The documentation for this class was generated from the following file: