deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+00:00
|
#include <deal.II/fe/fe_interface_values.h>
Public Types | |
using | value_type = double |
using | gradient_type = typename FEValuesViews::Scalar< dim, spacedim >::gradient_type |
using | hessian_type = typename FEValuesViews::Scalar< dim, spacedim >::hessian_type |
using | third_derivative_type = typename FEValuesViews::Scalar< 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 | |
Scalar (const FEInterfaceValues< dim, spacedim > &fe_interface, const unsigned int 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 |
hessian_type | jump_in_hessians (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 |
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::Scalar | extractor |
The view of a scalar variable for FEInterfaceValues.
Definition at line 76 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< dim, spacedim >::value_type = double |
This is the type returned for values.
Definition at line 82 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< dim, spacedim >::gradient_type = typename FEValuesViews::Scalar<dim, spacedim>::gradient_type |
This is the type returned for gradients, for example from average_of_gradients().
Definition at line 88 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< dim, spacedim >::hessian_type = typename FEValuesViews::Scalar<dim, spacedim>::hessian_type |
This is the type returned for hessians, for example from jump_in_hessians().
Definition at line 95 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< dim, spacedim >::third_derivative_type = typename FEValuesViews::Scalar<dim, spacedim>::third_derivative_type |
This is the type returned for third derivatives, for example from jump_in_hessians().
Definition at line 102 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< 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 scalar components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 112 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< 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 scalar components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 121 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< 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 scalar components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 131 of file fe_interface_values.h.
using FEInterfaceViews::Scalar< 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 scalar components of a finite element field whose degrees of freedom are described by a vector with elements of type Number
.
Definition at line 141 of file fe_interface_values.h.
FEInterfaceViews::Scalar< dim, spacedim >::Scalar | ( | const FEInterfaceValues< dim, spacedim > & | fe_interface, |
const unsigned int | component | ||
) |
Constructor for an object that represents a single scalar component
value_type FEInterfaceViews::Scalar< 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 shape function with interface dof index interface_dof_index
in quadrature point q_point
of the component selected by this view.
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::Scalar< dim, spacedim >::jump_in_values | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the jump \(\jump{u}=u_1 - u_2\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
of the component selected by this view.
gradient_type FEInterfaceViews::Scalar< dim, spacedim >::jump_in_gradients | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the jump of the gradient \(\jump{nabla u}\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
of the component selected by this view.
hessian_type FEInterfaceViews::Scalar< 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.
third_derivative_type FEInterfaceViews::Scalar< 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::Scalar< dim, spacedim >::average_of_values | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the average value \(\average{u}=\frac{1}{2}(u_1 + u_2)\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
of the component selected by this view.
gradient_type FEInterfaceViews::Scalar< dim, spacedim >::average_of_gradients | ( | const unsigned int | interface_dof_index, |
const unsigned int | q_point | ||
) | const |
Return the average of the gradient \(\average{\nabla u}\) on the interface for the shape function interface_dof_index
in the quadrature point q_point
of the component selected by this view.
hessian_type FEInterfaceViews::Scalar< 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.
void FEInterfaceViews::Scalar< dim, spacedim >::get_function_values | ( | const bool | here_or_there, |
const InputVector & | fe_function, | ||
std::vector< solution_value_type< typename InputVector::value_type > > & | values | ||
) | const |
Return the values of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_jump_in_function_values | ( | const InputVector & | fe_function, |
std::vector< solution_value_type< typename InputVector::value_type > > & | values | ||
) | const |
Return the jump in the values of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_jump_in_function_gradients | ( | const InputVector & | fe_function, |
std::vector< solution_gradient_type< typename InputVector::value_type > > & | gradients | ||
) | const |
Return the jump in the gradients of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_jump_in_function_hessians | ( | const InputVector & | fe_function, |
std::vector< solution_hessian_type< typename InputVector::value_type > > & | hessians | ||
) | const |
Return the jump in the Hessians of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_jump_in_function_third_derivatives | ( | const InputVector & | fe_function, |
std::vector< solution_third_derivative_type< typename InputVector::value_type > > & | third_derivatives | ||
) | const |
Return the jump in the third derivatives of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_average_of_function_values | ( | const InputVector & | fe_function, |
std::vector< solution_value_type< typename InputVector::value_type > > & | values | ||
) | const |
Return the average of the values of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_average_of_function_gradients | ( | const InputVector & | fe_function, |
std::vector< solution_gradient_type< typename InputVector::value_type > > & | gradients | ||
) | const |
Return the average of the gradients of the selected scalar 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::Scalar< dim, spacedim >::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 |
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::Scalar< dim, spacedim >::get_average_of_function_hessians | ( | const InputVector & | fe_function, |
std::vector< solution_hessian_type< typename InputVector::value_type > > & | hessians | ||
) | const |
Return the average of the Hessians of the selected scalar 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::Scalar< dim, spacedim >::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 |
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 617 of file fe_interface_values.h.
|
protectedinherited |
Store a pointer to the FEInterfaceValues instance.
Definition at line 58 of file fe_interface_values.h.