Reference documentation for deal.II version 9.1.0-pre
Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
FEFaceValues< dim, spacedim > Class Template Reference

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

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

Public Member Functions

 FEFaceValues (const Mapping< dim, spacedim > &mapping, const FiniteElement< dim, spacedim > &fe, const Quadrature< dim-1 > &quadrature, const UpdateFlags update_flags)
 
 FEFaceValues (const FiniteElement< dim, spacedim > &fe, const Quadrature< dim-1 > &quadrature, const UpdateFlags update_flags)
 
template<template< int, int > class DoFHandlerType, bool level_dof_access>
void reinit (const TriaIterator< DoFCellAccessor< DoFHandlerType< dim, spacedim >, level_dof_access >> &cell, const unsigned int face_no)
 
void reinit (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no)
 
const FEFaceValues< dim, spacedim > & get_present_fe_values () const
 
- Public Member Functions inherited from FEFaceValuesBase< dim, spacedim >
 FEFaceValuesBase (const unsigned int n_q_points, const unsigned int dofs_per_cell, const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const FiniteElement< dim, spacedim > &fe, const Quadrature< dim-1 > &quadrature)
 
const Tensor< 1, spacedim > & boundary_form (const unsigned int i) const
 
const std::vector< Tensor< 1, spacedim > > & get_boundary_forms () const
 
unsigned int get_face_index () const
 
const Quadrature< dim-1 > & get_quadrature () const
 
std::size_t memory_consumption () const
 
- Public Member Functions inherited from FEValuesBase< dim, spacedim >
 FEValuesBase (const unsigned int n_q_points, const unsigned int dofs_per_cell, const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const FiniteElement< dim, spacedim > &fe)
 
virtual ~FEValuesBase () override
 
const double & shape_value (const unsigned int function_no, const unsigned int point_no) const
 
double shape_value_component (const unsigned int function_no, const unsigned int point_no, const unsigned int component) const
 
const Tensor< 1, spacedim > & shape_grad (const unsigned int function_no, const unsigned int quadrature_point) const
 
Tensor< 1, spacedim > shape_grad_component (const unsigned int function_no, const unsigned int point_no, const unsigned int component) const
 
const Tensor< 2, spacedim > & shape_hessian (const unsigned int function_no, const unsigned int point_no) const
 
Tensor< 2, spacedim > shape_hessian_component (const unsigned int function_no, const unsigned int point_no, const unsigned int component) const
 
const Tensor< 3, spacedim > & shape_3rd_derivative (const unsigned int function_no, const unsigned int point_no) const
 
Tensor< 3, spacedim > shape_3rd_derivative_component (const unsigned int function_no, const unsigned int point_no, const unsigned int component) const
 
template<class InputVector >
void get_function_values (const InputVector &fe_function, std::vector< typename InputVector::value_type > &values) const
 
template<class InputVector >
void get_function_values (const InputVector &fe_function, std::vector< Vector< typename InputVector::value_type >> &values) const
 
template<class InputVector >
void get_function_values (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< typename InputVector::value_type > &values) const
 
template<class InputVector >
void get_function_values (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< Vector< typename InputVector::value_type >> &values) const
 
template<class InputVector >
void get_function_values (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, VectorSlice< std::vector< std::vector< typename InputVector::value_type >>> values, const bool quadrature_points_fastest) const
 
template<class InputVector >
void get_function_gradients (const InputVector &fe_function, std::vector< Tensor< 1, spacedim, typename InputVector::value_type >> &gradients) const
 
template<class InputVector >
void get_function_gradients (const InputVector &fe_function, std::vector< std::vector< Tensor< 1, spacedim, typename InputVector::value_type >>> &gradients) const
 
template<class InputVector >
void get_function_gradients (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< Tensor< 1, spacedim, typename InputVector::value_type >> &gradients) const
 
template<class InputVector >
void get_function_gradients (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, VectorSlice< std::vector< std::vector< Tensor< 1, spacedim, typename InputVector::value_type >>>> gradients, bool quadrature_points_fastest=false) const
 
template<class InputVector >
void get_function_hessians (const InputVector &fe_function, std::vector< Tensor< 2, spacedim, typename InputVector::value_type >> &hessians) const
 
template<class InputVector >
void get_function_hessians (const InputVector &fe_function, std::vector< std::vector< Tensor< 2, spacedim, typename InputVector::value_type >>> &hessians, bool quadrature_points_fastest=false) const
 
template<class InputVector >
void get_function_hessians (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< Tensor< 2, spacedim, typename InputVector::value_type >> &hessians) const
 
template<class InputVector >
void get_function_hessians (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, VectorSlice< std::vector< std::vector< Tensor< 2, spacedim, typename InputVector::value_type >>>> hessians, bool quadrature_points_fastest=false) const
 
template<class InputVector >
void get_function_laplacians (const InputVector &fe_function, std::vector< typename InputVector::value_type > &laplacians) const
 
template<class InputVector >
void get_function_laplacians (const InputVector &fe_function, std::vector< Vector< typename InputVector::value_type >> &laplacians) const
 
template<class InputVector >
void get_function_laplacians (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< typename InputVector::value_type > &laplacians) const
 
template<class InputVector >
void get_function_laplacians (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< Vector< typename InputVector::value_type >> &laplacians) const
 
template<class InputVector >
void get_function_laplacians (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< std::vector< typename InputVector::value_type >> &laplacians, bool quadrature_points_fastest=false) const
 
template<class InputVector >
void get_function_third_derivatives (const InputVector &fe_function, std::vector< Tensor< 3, spacedim, typename InputVector::value_type >> &third_derivatives) const
 
template<class InputVector >
void get_function_third_derivatives (const InputVector &fe_function, std::vector< std::vector< Tensor< 3, spacedim, typename InputVector::value_type >>> &third_derivatives, bool quadrature_points_fastest=false) const
 
template<class InputVector >
void get_function_third_derivatives (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, std::vector< Tensor< 3, spacedim, typename InputVector::value_type >> &third_derivatives) const
 
template<class InputVector >
void get_function_third_derivatives (const InputVector &fe_function, const VectorSlice< const std::vector< types::global_dof_index >> &indices, VectorSlice< std::vector< std::vector< Tensor< 3, spacedim, typename InputVector::value_type >>>> third_derivatives, bool quadrature_points_fastest=false) const
 
const Point< spacedim > & quadrature_point (const unsigned int q) const
 
const std::vector< Point< spacedim > > & get_quadrature_points () const
 
double JxW (const unsigned int quadrature_point) const
 
const std::vector< double > & get_JxW_values () const
 
const DerivativeForm< 1, dim, spacedim > & jacobian (const unsigned int quadrature_point) const
 
const std::vector< DerivativeForm< 1, dim, spacedim > > & get_jacobians () const
 
const DerivativeForm< 2, dim, spacedim > & jacobian_grad (const unsigned int quadrature_point) const
 
const std::vector< DerivativeForm< 2, dim, spacedim > > & get_jacobian_grads () const
 
const Tensor< 3, spacedim > & jacobian_pushed_forward_grad (const unsigned int quadrature_point) const
 
const std::vector< Tensor< 3, spacedim > > & get_jacobian_pushed_forward_grads () const
 
const DerivativeForm< 3, dim, spacedim > & jacobian_2nd_derivative (const unsigned int quadrature_point) const
 
const std::vector< DerivativeForm< 3, dim, spacedim > > & get_jacobian_2nd_derivatives () const
 
const Tensor< 4, spacedim > & jacobian_pushed_forward_2nd_derivative (const unsigned int quadrature_point) const
 
const std::vector< Tensor< 4, spacedim > > & get_jacobian_pushed_forward_2nd_derivatives () const
 
const DerivativeForm< 4, dim, spacedim > & jacobian_3rd_derivative (const unsigned int quadrature_point) const
 
const std::vector< DerivativeForm< 4, dim, spacedim > > & get_jacobian_3rd_derivatives () const
 
const Tensor< 5, spacedim > & jacobian_pushed_forward_3rd_derivative (const unsigned int quadrature_point) const
 
const std::vector< Tensor< 5, spacedim > > & get_jacobian_pushed_forward_3rd_derivatives () const
 
const DerivativeForm< 1, spacedim, dim > & inverse_jacobian (const unsigned int quadrature_point) const
 
const std::vector< DerivativeForm< 1, spacedim, dim > > & get_inverse_jacobians () const
 
const Tensor< 1, spacedim > & normal_vector (const unsigned int i) const
 
const std::vector< Tensor< 1, spacedim > > & get_all_normal_vectors () const
 
const std::vector< Tensor< 1, spacedim > > & get_normal_vectors () const
 
const FEValuesViews::Scalar< dim, spacedim > & operator[] (const FEValuesExtractors::Scalar &scalar) const
 
const FEValuesViews::Vector< dim, spacedim > & operator[] (const FEValuesExtractors::Vector &vector) const
 
const FEValuesViews::SymmetricTensor< 2, dim, spacedim > & operator[] (const FEValuesExtractors::SymmetricTensor< 2 > &tensor) const
 
const FEValuesViews::Tensor< 2, dim, spacedim > & operator[] (const FEValuesExtractors::Tensor< 2 > &tensor) const
 
const Mapping< dim, spacedim > & get_mapping () const
 
const FiniteElement< dim, spacedim > & get_fe () const
 
UpdateFlags get_update_flags () const
 
const Triangulation< dim, spacedim >::cell_iterator get_cell () const
 
CellSimilarity::Similarity get_cell_similarity () const
 
std::size_t memory_consumption () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (const char *identifier=nullptr) const
 
void unsubscribe (const char *identifier=nullptr) const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Static Public Attributes

static const unsigned int dimension = dim
 
static const unsigned int integral_dimension = dim - 1
 
- Static Public Attributes inherited from FEFaceValuesBase< dim, spacedim >
static const unsigned int integral_dimension = dim - 1
 
- Static Public Attributes inherited from FEValuesBase< dim, spacedim >
static const unsigned int dimension = dim
 
static const unsigned int space_dimension = spacedim
 

Private Member Functions

void initialize (const UpdateFlags update_flags)
 
void do_reinit (const unsigned int face_no)
 

Additional Inherited Members

- Static Public Member Functions inherited from FEValuesBase< dim, spacedim >
static::ExceptionBase & ExcAccessToUninitializedField (std::string arg1)
 
static::ExceptionBase & ExcFEDontMatch ()
 
static::ExceptionBase & ExcShapeFunctionNotPrimitive (int arg1)
 
static::ExceptionBase & ExcFENotPrimitive ()
 
- Static Public Member Functions inherited from Subscriptor
static::ExceptionBase & ExcInUse (int arg1, std::string arg2, std::string arg3)
 
static::ExceptionBase & ExcNoSubscriber (std::string arg1, std::string arg2)
 
- Public Attributes inherited from FEValuesBase< dim, spacedim >
const unsigned int n_quadrature_points
 
const unsigned int dofs_per_cell
 
- Protected Member Functions inherited from FEValuesBase< dim, spacedim >
void invalidate_present_cell ()
 
void maybe_invalidate_previous_present_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell)
 
UpdateFlags compute_update_flags (const UpdateFlags update_flags) const
 
void check_cell_similarity (const typename Triangulation< dim, spacedim >::cell_iterator &cell)
 
- Protected Attributes inherited from FEFaceValuesBase< dim, spacedim >
unsigned int present_face_index
 
const Quadrature< dim-1 > quadrature
 
- Protected Attributes inherited from FEValuesBase< dim, spacedim >
std::unique_ptr< const CellIteratorBase > present_cell
 
boost::signals2::connection tria_listener_refinement
 
boost::signals2::connection tria_listener_mesh_transform
 
const SmartPointer< const Mapping< dim, spacedim >, FEValuesBase< dim, spacedim > > mapping
 
std::unique_ptr< typename Mapping< dim, spacedim >::InternalDataBase > mapping_data
 
::internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > mapping_output
 
const SmartPointer< const FiniteElement< dim, spacedim >, FEValuesBase< dim, spacedim > > fe
 
std::unique_ptr< typename FiniteElement< dim, spacedim >::InternalDataBase > fe_data
 
::internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > finite_element_output
 
UpdateFlags update_flags
 
CellSimilarity::Similarity cell_similarity
 

Detailed Description

template<int dim, int spacedim = dim>
class FEFaceValues< dim, spacedim >

Finite element evaluated in quadrature points on a face.

This class adds the functionality of FEFaceValuesBase to FEValues; see there for more documentation.

Since finite element functions and their derivatives may be discontinuous at cell boundaries, there is no restriction of this function to a mesh face. But, there are limits of these values approaching the face from either of the neighboring cells.

Author
Wolfgang Bangerth, 1998, Guido Kanschat, 2000, 2001

Definition at line 38 of file fe.h.

Constructor & Destructor Documentation

template<int dim, int spacedim>
FEFaceValues< dim, spacedim >::FEFaceValues ( const Mapping< dim, spacedim > &  mapping,
const FiniteElement< dim, spacedim > &  fe,
const Quadrature< dim-1 > &  quadrature,
const UpdateFlags  update_flags 
)

Constructor. Gets cell independent data from mapping and finite element objects, matching the quadrature rule and update flags.

Definition at line 4762 of file fe_values.cc.

template<int dim, int spacedim>
FEFaceValues< dim, spacedim >::FEFaceValues ( const FiniteElement< dim, spacedim > &  fe,
const Quadrature< dim-1 > &  quadrature,
const UpdateFlags  update_flags 
)

Constructor. This constructor is equivalent to the other one except that it makes the object use a \(Q_1\) mapping (i.e., an object of type MappingQGeneric(1)) implicitly.

Definition at line 4780 of file fe_values.cc.

Member Function Documentation

template<int dim, int spacedim>
template<template< int, int > class DoFHandlerType, bool lda>
void FEFaceValues< dim, spacedim >::reinit ( const TriaIterator< DoFCellAccessor< DoFHandlerType< dim, spacedim >, lda >> &  cell,
const unsigned int  face_no 
)

Reinitialize the gradients, Jacobi determinants, etc for the face with number face_no of cell and the given finite element.

Definition at line 4845 of file fe_values.cc.

template<int dim, int spacedim>
void FEFaceValues< dim, spacedim >::reinit ( const typename Triangulation< dim, spacedim >::cell_iterator &  cell,
const unsigned int  face_no 
)

Reinitialize the gradients, Jacobi determinants, etc for the given face on given cell of type "iterator into a Triangulation object", and the given finite element. Since iterators into triangulation alone only convey information about the geometry of a cell, but not about degrees of freedom possibly associated with this cell, you will not be able to call some functions of this class if they need information about degrees of freedom. These functions are, above all, the get_function_value/gradients/hessians/third_derivatives functions. If you want to call these functions, you have to call the reinit variants that take iterators into DoFHandler or other DoF handler type objects.

Definition at line 4875 of file fe_values.cc.

template<int dim, int spacedim = dim>
const FEFaceValues<dim, spacedim>& FEFaceValues< dim, spacedim >::get_present_fe_values ( ) const

Return a reference to this very object.

Though it seems that it is not very useful, this function is there to provide capability to the hp::FEValues class, in which case it provides the FEValues object for the present cell (remember that for hp finite elements, the actual FE object used may change from cell to cell, so we also need different FEValues objects for different cells; once you reinitialize the hp::FEValues object for a specific cell, it retrieves the FEValues object for the FE on that cell and returns it through a function of the same name as this one; this function here therefore only provides the same interface so that one can templatize on FEValues and hp::FEValues).

template<int dim, int spacedim>
void FEFaceValues< dim, spacedim >::initialize ( const UpdateFlags  update_flags)
private

Do work common to the two constructors.

Definition at line 4798 of file fe_values.cc.

template<int dim, int spacedim>
void FEFaceValues< dim, spacedim >::do_reinit ( const unsigned int  face_no)
private

The reinit() functions do only that part of the work that requires knowledge of the type of iterator. After setting present_cell(), they pass on to this function, which does the real work, and which is independent of the actual type of the cell iterator.

Definition at line 4897 of file fe_values.cc.

Member Data Documentation

template<int dim, int spacedim = dim>
const unsigned int FEFaceValues< dim, spacedim >::dimension = dim
static

Dimension in which this object operates.

Definition at line 3658 of file fe_values.h.

template<int dim, int spacedim = dim>
const unsigned int FEFaceValues< dim, spacedim >::integral_dimension = dim - 1
static

Dimension of the object over which we integrate. For the present class, this is equal to dim-1.

Definition at line 3666 of file fe_values.h.


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