deal.II version GIT relicensing-2287-g6548a49e0a 2024-12-20 18:30:00+00:00
|
#include <deal.II/fe/fe_interface_values.h>
Public Types | |
using | value_type = typename FEValuesViews::Vector< dim, spacedim >::value_type |
using | gradient_type = typename FEValuesViews::Vector< dim, spacedim >::gradient_type |
using | hessian_type = typename FEValuesViews::Vector< dim, spacedim >::hessian_type |
using | third_derivative_type = typename FEValuesViews::Vector< dim, spacedim >::third_derivative_type |
template<typename Number > | |
using | solution_value_type = typename ProductType< Number, value_type >::type |
template<typename Number > | |
using | solution_gradient_type = typename ProductType< Number, gradient_type >::type |
template<typename Number > | |
using | solution_hessian_type = typename ProductType< Number, hessian_type >::type |
template<typename Number > | |
using | solution_third_derivative_type = typename ProductType< Number, third_derivative_type >::type |
Public Member Functions | |
Vector (const FEInterfaceValues< dim, spacedim > &fe_interface, const unsigned int first_vector_component) | |
Access to shape functions | |
value_type | value (const bool here_or_there, const unsigned int interface_dof_index, const unsigned int q_point) const |
Access to jumps in shape functions and their derivatives | |
value_type | jump_in_values (const unsigned int interface_dof_index, const unsigned int q_point) const |
gradient_type | jump_in_gradients (const unsigned int interface_dof_index, const unsigned int q_point) const |
gradient_type | jump_gradient (const unsigned int interface_dof_index, const unsigned int q_point) const |
hessian_type | jump_in_hessians (const unsigned int interface_dof_index, const unsigned int q_point) const |
hessian_type | jump_hessian (const unsigned int interface_dof_index, const unsigned int q_point) const |
third_derivative_type | jump_in_third_derivatives (const unsigned int interface_dof_index, const unsigned int q_point) const |
Access to the average of shape functions and their derivatives | |
value_type | average_of_values (const unsigned int interface_dof_index, const unsigned int q_point) const |
gradient_type | average_of_gradients (const unsigned int interface_dof_index, const unsigned int q_point) const |
hessian_type | average_of_hessians (const unsigned int interface_dof_index, const unsigned int q_point) const |
hessian_type | average_hessian (const unsigned int interface_dof_index, const unsigned int q_point) const |
Access to values of global finite element fields | |
template<class InputVector > | |
void | get_function_values (const bool here_or_there, const InputVector &fe_function, std::vector< solution_value_type< typename InputVector::value_type > > &values) const |
template<class InputVector > | |
void | get_function_values_from_local_dof_values (const bool here_or_there, const InputVector &local_dof_values, std::vector< solution_value_type< typename InputVector::value_type > > &values) const |
Access to jumps in global finite element fields | |
template<class InputVector > | |
void | get_jump_in_function_values (const InputVector &fe_function, std::vector< solution_value_type< typename InputVector::value_type > > &values) const |
template<class InputVector > | |
void | get_jump_in_function_values_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_value_type< typename InputVector::value_type > > &values) const |
template<class InputVector > | |
void | get_jump_in_function_gradients (const InputVector &fe_function, std::vector< solution_gradient_type< typename InputVector::value_type > > &gradients) const |
template<class InputVector > | |
void | get_jump_in_function_gradients_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_gradient_type< typename InputVector::value_type > > &gradients) const |
template<class InputVector > | |
void | get_jump_in_function_hessians (const InputVector &fe_function, std::vector< solution_hessian_type< typename InputVector::value_type > > &hessians) const |
template<class InputVector > | |
void | get_jump_in_function_hessians_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_hessian_type< typename InputVector::value_type > > &hessians) const |
template<class InputVector > | |
void | get_jump_in_function_third_derivatives (const InputVector &fe_function, std::vector< solution_third_derivative_type< typename InputVector::value_type > > &third_derivatives) const |
template<class InputVector > | |
void | get_jump_in_function_third_derivatives_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_third_derivative_type< typename InputVector::value_type > > &third_derivatives) const |
Access to the average of global finite element fields | |
template<class InputVector > | |
void | get_average_of_function_values (const InputVector &fe_function, std::vector< solution_value_type< typename InputVector::value_type > > &values) const |
template<class InputVector > | |
void | get_average_of_function_values_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_value_type< typename InputVector::value_type > > &values) const |
template<class InputVector > | |
void | get_average_of_function_gradients (const InputVector &fe_function, std::vector< solution_gradient_type< typename InputVector::value_type > > &gradients) const |
template<class InputVector > | |
void | get_average_of_function_gradients_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_gradient_type< typename InputVector::value_type > > &gradients) const |
template<class InputVector > | |
void | get_average_of_function_hessians (const InputVector &fe_function, std::vector< solution_hessian_type< typename InputVector::value_type > > &hessians) const |
template<class InputVector > | |
void | get_average_of_function_hessians_from_local_dof_values (const InputVector &local_dof_values, std::vector< solution_hessian_type< typename InputVector::value_type > > &hessians) const |
Protected Member Functions | |
template<class InputVector , class OutputVector > | |
void | get_local_dof_values (const InputVector &dof_values, OutputVector &local_dof_values) const |
Protected Attributes | |
const FEInterfaceValues< dim, spacedim > * | fe_interface |
Private Attributes | |
const FEValuesExtractors::Vector | extractor |
The view of a vector-valued variable for FEInterfaceValues.
Definition at line 626 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::value_type = typename FEValuesViews::Vector<dim, spacedim>::value_type |
This is the type returned for values.
Definition at line 632 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::gradient_type = typename FEValuesViews::Vector<dim, spacedim>::gradient_type |
This is the type returned for gradients, for example from average_of_gradients().
Definition at line 639 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::hessian_type = typename FEValuesViews::Vector<dim, spacedim>::hessian_type |
An alias for the type of second derivatives of the view this class represents. Here, for a set of dim
components of the finite element, the Hessian is a Tensor<3,dim>
.
Definition at line 647 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::third_derivative_type = typename FEValuesViews::Vector<dim, spacedim>::third_derivative_type |
An alias for the type of third derivatives of the view this class represents. Here, for a set of dim
components of the finite element, the third derivative is a Tensor<4,dim>
.
Definition at line 655 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::solution_value_type = typename ProductType<Number, value_type>::type |
An alias for the data type of the product of a Number
and the values of the view this class provides. This is the data type of vector components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 665 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::solution_gradient_type = typename ProductType<Number, gradient_type>::type |
An alias for the data type of the product of a Number
and the gradients of the view this class provides. This is the data type of vector components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 674 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::solution_hessian_type = typename ProductType<Number, hessian_type>::type |
An alias for the data type of the product of a Number
and the Hessians of the view this class provides. This is the data type of vector components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 684 of file fe_interface_values.h.
using FEInterfaceViews::Vector< dim, spacedim >::solution_third_derivative_type = typename ProductType<Number, third_derivative_type>::type |
An alias for the data type of the product of a Number
and the third derivatives of the view this class provides. This is the data type of vector components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 694 of file fe_interface_values.h.
FEInterfaceViews::Vector< dim, spacedim >::Vector | ( | const FEInterfaceValues< dim, spacedim > & | fe_interface, |
const unsigned int | first_vector_component | ||
) |
Constructor for an object that represents a vector component
value_type FEInterfaceViews::Vector< dim, spacedim >::value | ( | const bool | here_or_there, |
const unsigned int | interface_dof_index, | ||
const unsigned int | q_point | ||
) | const |
Return the value of the vector components selected by this view with interface dof index interface_dof_index
in quadrature point q_point
.
The argument here_or_there
selects between the upstream value and the downstream value as defined by the direction of the normal vector in this quadrature point. If here_or_there
is true, the shape functions from the first cell of the interface is used.
In other words, this function returns the limit of the value of the shape function in the given quadrature point when approaching it from one of the two cells of the interface.
(direction * normal)>0
as the first argument of this function. value_type FEInterfaceViews::Vector< dim, spacedim >::jump_in_values | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the jump vector \([\mathbf{u}]=\mathbf{u_1} - \mathbf{u_2}\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
.
gradient_type FEInterfaceViews::Vector< dim, spacedim >::jump_in_gradients | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the jump of the gradient (a tensor of rank 2) \(\jump{\nabla
\mathbf{u}}\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
.
gradient_type FEInterfaceViews::Vector< dim, spacedim >::jump_gradient | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
The same as above.
hessian_type FEInterfaceViews::Vector< dim, spacedim >::jump_in_hessians | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the jump in the gradient \(\jump{\nabla u}=\nabla u_{\text{cell0}}
- \nabla u_{\text{cell1}}\) on the interface for the shape function interface_dof_index
at the quadrature point q_point
of the component selected by this view.
hessian_type FEInterfaceViews::Vector< dim, spacedim >::jump_hessian | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
The same as above.
third_derivative_type FEInterfaceViews::Vector< dim, spacedim >::jump_in_third_derivatives | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the jump in the third derivative \(\jump{\nabla^3 u} = \nabla^3
u_{\text{cell0}} - \nabla^3 u_{\text{cell1}}\) on the interface for the shape function interface_dof_index
at the quadrature point q_point
of the component selected by this view.
value_type FEInterfaceViews::Vector< dim, spacedim >::average_of_values | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the average vector \(\average{\mathbf{u}}=\frac{1}{2}(\mathbf{u_1}
+ \mathbf{u_2})\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
.
gradient_type FEInterfaceViews::Vector< dim, spacedim >::average_of_gradients | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the average of the gradient (a tensor of rank 2) \(\average{\nabla
\mathbf{u}}\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
.
hessian_type FEInterfaceViews::Vector< dim, spacedim >::average_of_hessians | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the average of the Hessian \(\average{\nabla^2 u} =
\frac{1}{2}\nabla^2 u_{\text{cell0}} + \frac{1}{2} \nabla^2
u_{\text{cell1}}\) on the interface for the shape function interface_dof_index
at the quadrature point q_point
of the component selected by this view.
hessian_type FEInterfaceViews::Vector< dim, spacedim >::average_hessian | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
The same as above.
void FEInterfaceViews::Vector< dim, spacedim >::get_function_values | ( | const bool | here_or_there, |
const InputVector< dim, spacedim > & | fe_function, | ||
std::vector< solution_value_type< typename InputVector< dim, spacedim >::value_type > > & | values | ||
) | const |
Return the values of the selected vector component of the finite element function characterized by fe_function
at the quadrature points of the cell interface selected the last time the reinit
function of the FEInterfaceValues object was called.
The argument here_or_there
selects between the value on cell 0 (here, true
) and cell 1 (there, false
). You can also interpret it as "upstream" (true
) and "downstream" (false
) as defined by the direction of the normal vector in this quadrature point. If here_or_there
is true, the values from the first cell of the interface is used.
The data type stored by the output vector must be what you get when you multiply the values of shape functions (i.e., value_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_values
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_function_values_from_local_dof_values | ( | const bool | here_or_there, |
const InputVector< dim, spacedim > & | local_dof_values, | ||
std::vector< solution_value_type< typename InputVector< dim, spacedim >::value_type > > & | values | ||
) | const |
Same as above, but using a vector of local degree-of-freedom values. In other words, instead of extracting the nodal values of the degrees of freedom located on the current cell interface from a global vector associated with a DoFHandler object (as the function above does), this function instead takes these local nodal values through its first argument.
[in] | here_or_there | Same as the one in the above function. |
[in] | local_dof_values | A vector of local nodal values. This vector must have a length equal to number of DoFs on the current cell, and must be ordered in the same order as degrees of freedom are numbered on the reference cell. |
[out] | values | A vector of values of the given finite element field, at the quadrature points on the current object. |
InputVector | The InputVector type must allow creation of an ArrayView object from it; this is satisfied by the std::vector class, among others. |
void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_values | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_value_type< typename InputVector< dim, spacedim >::value_type > > & | values | ||
) | const |
Return the jump in the values of the selected vector component of the finite element function characterized by fe_function
at the quadrature points of the cell interface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the values of shape functions (i.e., value_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_values
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_values_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_value_type< typename InputVector< dim, spacedim >::value_type > > & | values | ||
) | const |
This function relates to get_jump_in_function_values() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_gradients | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_gradient_type< typename InputVector< dim, spacedim >::value_type > > & | gradients | ||
) | const |
Return the jump in the gradients of the selected vector components of the finite element function characterized by fe_function
at the quadrature points of the cell interface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the gradients of shape functions (i.e., gradient_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_gradients
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_gradients_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_gradient_type< typename InputVector< dim, spacedim >::value_type > > & | gradients | ||
) | const |
This function relates to get_jump_in_function_gradients() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_hessians | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_hessian_type< typename InputVector< dim, spacedim >::value_type > > & | hessians | ||
) | const |
Return the jump in the Hessians of the selected vector component of the finite element function characterized by fe_function
at the quadrature points of the cell, face or subface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the Hessians of shape functions (i.e., hessian_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_hessians
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_hessians_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_hessian_type< typename InputVector< dim, spacedim >::value_type > > & | hessians | ||
) | const |
This function relates to get_jump_in_function_hessians() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_third_derivatives | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_third_derivative_type< typename InputVector< dim, spacedim >::value_type > > & | third_derivatives | ||
) | const |
Return the jump in the third derivatives of the selected vector component of the finite element function characterized by fe_function
at the quadrature points of the cell, face or subface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the third derivatives of shape functions (i.e., third_derivative_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_third_derivatives
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_jump_in_function_third_derivatives_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_third_derivative_type< typename InputVector< dim, spacedim >::value_type > > & | third_derivatives | ||
) | const |
This function relates to get_jump_in_function_third_derivatives() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
void FEInterfaceViews::Vector< dim, spacedim >::get_average_of_function_values | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_value_type< typename InputVector< dim, spacedim >::value_type > > & | values | ||
) | const |
Return the average of the values of the selected vector component of the finite element function characterized by fe_function
at the quadrature points of the cell interface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the values of shape functions (i.e., value_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_values
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_average_of_function_values_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_value_type< typename InputVector< dim, spacedim >::value_type > > & | values | ||
) | const |
This function relates to get_average_of_function_values() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
void FEInterfaceViews::Vector< dim, spacedim >::get_average_of_function_gradients | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_gradient_type< typename InputVector< dim, spacedim >::value_type > > & | gradients | ||
) | const |
Return the average of the gradients of the selected vector components of the finite element function characterized by fe_function
at the quadrature points of the cell interface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the gradients of shape functions (i.e., gradient_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_gradients
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_average_of_function_gradients_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_gradient_type< typename InputVector< dim, spacedim >::value_type > > & | gradients | ||
) | const |
This function relates to get_average_of_function_gradients() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
void FEInterfaceViews::Vector< dim, spacedim >::get_average_of_function_hessians | ( | const InputVector< dim, spacedim > & | fe_function, |
std::vector< solution_hessian_type< typename InputVector< dim, spacedim >::value_type > > & | hessians | ||
) | const |
Return the average of the Hessians of the selected vector component of the finite element function characterized by fe_function
at the quadrature points of the cell, face or subface selected the last time the reinit
function of the FEInterfaceValues object was called.
The data type stored by the output vector must be what you get when you multiply the Hessians of shape functions (i.e., hessian_type
) times the type used to store the values of the unknowns \(U_j\) of your finite element vector \(U\) (represented by the fe_function
argument).
update_hessians
flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues for more information. void FEInterfaceViews::Vector< dim, spacedim >::get_average_of_function_hessians_from_local_dof_values | ( | const InputVector< dim, spacedim > & | local_dof_values, |
std::vector< solution_hessian_type< typename InputVector< dim, spacedim >::value_type > > & | hessians | ||
) | const |
This function relates to get_average_of_function_hessians() in the same way as get_function_values_from_local_dof_values() relates to get_function_values(). See the documentation of get_function_values_from_local_dof_values() for more information.
|
protectedinherited |
Get the local degree-of-freedom values associated with the internally initialized cell interface.
|
private |
The extractor for this view.
Definition at line 1193 of file fe_interface_values.h.
|
protectedinherited |
Store a pointer to the FEInterfaceValues instance.
Definition at line 58 of file fe_interface_values.h.