15#ifndef dealii_meshworker_scratch_data_h
16#define dealii_meshworker_scratch_data_h
31#include <boost/any.hpp>
208 template <
int dim,
int spacedim = dim>
432 const unsigned int face_no);
446 const unsigned int face_no,
447 const unsigned int subface_no);
465 const unsigned int face_no,
468 const unsigned int face_no_neighbor);
486 const unsigned int face_no,
487 const unsigned int sub_face_no,
490 const unsigned int face_no_neighbor,
491 const unsigned int sub_face_no_neighbor);
515 const std::vector<Point<spacedim>> &
521 const std::vector<double> &
527 const std::vector<Tensor<1, spacedim>> &
534 const std::vector<types::global_dof_index> &
572 const unsigned int face_no);
587 const unsigned int face_no,
588 const unsigned int subface_no);
607 const std::vector<double> &
613 const std::vector<Tensor<1, spacedim>> &
620 const std::vector<types::global_dof_index> &
656 const unsigned int face_no);
680 const unsigned int face_no,
681 const unsigned int subface_no);
703 const unsigned int face_no);
728 const unsigned int face_no,
729 const unsigned int subface_no);
862 template <
typename VectorType,
typename Number =
double>
865 const VectorType &input_vector,
866 const Number dummy = Number(0));
876 template <
typename Number =
double>
877 const std::vector<Number> &
879 Number dummy = Number(0))
const;
902 template <
typename Extractor,
typename Number =
double>
903 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
904 template solution_value_type<Number>> &
906 const Extractor &variable,
907 const Number dummy = Number(0));
930 template <
typename Extractor,
typename Number =
double>
931 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
932 template solution_gradient_type<Number>> &
934 const Extractor &variable,
935 const Number dummy = Number(0));
959 template <
typename Extractor,
typename Number =
double>
960 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
961 template solution_symmetric_gradient_type<Number>> &
963 const Extractor &variable,
964 const Number dummy = Number(0));
987 template <
typename Extractor,
typename Number =
double>
988 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
989 template solution_divergence_type<Number>> &
991 const Extractor &variable,
992 const Number dummy = Number(0));
1015 template <
typename Extractor,
typename Number =
double>
1016 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1017 template solution_curl_type<Number>> &
1019 const Extractor &variable,
1020 const Number dummy = Number(0));
1043 template <
typename Extractor,
typename Number =
double>
1044 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1045 template solution_hessian_type<Number>> &
1047 const Extractor &variable,
1048 const Number dummy = Number(0));
1071 template <
typename Extractor,
typename Number =
double>
1072 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1073 template solution_laplacian_type<Number>> &
1075 const Extractor &variable,
1076 const Number dummy = Number(0));
1099 template <
typename Extractor,
typename Number =
double>
1100 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1101 template solution_third_derivative_type<Number>> &
1103 const Extractor &variable,
1104 const Number dummy = Number(0));
1135 template <
typename Extractor,
typename Number =
double>
1138 template solution_value_type<Number>> &
1140 const Extractor &variable,
1141 const Number dummy = Number(0));
1165 template <
typename Extractor,
typename Number =
double>
1168 template solution_gradient_type<Number>> &
1170 const Extractor &variable,
1171 const Number dummy = Number(0));
1195 template <
typename Extractor,
typename Number =
double>
1198 template solution_hessian_type<Number>> &
1200 const Extractor &variable,
1201 const Number dummy = Number(0));
1225 template <
typename Extractor,
typename Number =
double>
1228 template solution_third_derivative_type<Number>> &
1230 const Extractor &variable,
1231 const Number dummy = Number(0));
1262 template <
typename Extractor,
typename Number =
double>
1265 template solution_value_type<Number>> &
1267 const Extractor &variable,
1268 const Number dummy = Number(0));
1292 template <
typename Extractor,
typename Number =
double>
1295 template solution_gradient_type<Number>> &
1297 const Extractor &variable,
1298 const Number dummy = Number(0));
1322 template <
typename Extractor,
typename Number =
double>
1325 template solution_hessian_type<Number>> &
1327 const Extractor &variable,
1328 const Number dummy = Number(0));
1337 template <
typename Extractor,
typename Number =
double>
1340 const Extractor &variable,
1341 const std::string &object_type,
1342 const unsigned int size,
1343 const Number &exemplar_number)
const;
1348 template <
typename Number =
double>
1351 const unsigned int size,
1352 const Number &exemplar_number)
const;
1485 std::unique_ptr<hp::FESubfaceValues<dim, spacedim>>
1495 "The current function doesn't make sense when used with a "
1496 "ScratchData object with hp-capabilities.");
1505 "The current function doesn't make sense when used with a "
1506 "ScratchData object without hp-capabilities.");
1566 template <
int dim,
int spacedim>
1567 template <
typename Extractor,
typename Number>
1570 const std::string &global_vector_name,
1571 const Extractor &variable,
1572 const std::string &object_type,
1573 const unsigned int size,
1574 const Number &exemplar_number)
const
1576 return global_vector_name +
"_" + variable.get_name() +
"_" + object_type +
1583 template <
int dim,
int spacedim>
1584 template <
typename Number>
1587 const std::string &global_vector_name,
1588 const unsigned int size,
1589 const Number &exemplar_number)
const
1591 return global_vector_name +
"_independent_local_dofs_" +
1598 template <
int dim,
int spacedim>
1599 template <
typename VectorType,
typename Number>
1602 const std::string &global_vector_name,
1603 const VectorType &input_vector,
1606 const unsigned int n_dofs = local_dof_indices.size();
1608 const std::string name =
1609 get_unique_dofs_name(global_vector_name, n_dofs, dummy);
1611 auto &independent_local_dofs =
1612 internal_data_storage
1613 .template get_or_add_object_with_name<std::vector<Number>>(name,
1619 for (
unsigned int i = 0; i < n_dofs; ++i)
1621 input_vector(local_dof_indices[i]),
1624 independent_local_dofs[i]);
1626 for (
unsigned int i = 0; i < n_dofs; ++i)
1627 independent_local_dofs[i] = input_vector(local_dof_indices[i]);
1632 template <
int dim,
int spacedim>
1633 template <
typename Number>
1634 const std::vector<Number> &
1636 const std::string &global_vector_name,
1639 const unsigned int n_dofs = local_dof_indices.size();
1641 const std::string dofs_name =
1642 get_unique_dofs_name(global_vector_name, n_dofs, dummy);
1645 internal_data_storage.stores_object_with_name(dofs_name),
1647 "You did not call yet extract_local_dof_values with the right types!"));
1649 return internal_data_storage
1650 .template get_object_with_name<std::vector<Number>>(dofs_name);
1655 template <
int dim,
int spacedim>
1656 template <
typename Extractor,
typename Number>
1657 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1658 template solution_value_type<Number>> &
1660 const Extractor &variable,
1663 const std::vector<Number> &independent_local_dofs =
1664 get_local_dof_values(global_vector_name, dummy);
1670 const std::string name = get_unique_name(
1671 global_vector_name, variable,
"_values_q", n_q_points, dummy);
1675 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1676 template solution_value_type<Number>>;
1679 internal_data_storage.template get_or_add_object_with_name<RetType>(
1684 fev[variable].get_function_values_from_local_dof_values(
1685 independent_local_dofs, ret);
1691 template <
int dim,
int spacedim>
1692 template <
typename Extractor,
typename Number>
1693 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1694 template solution_gradient_type<Number>> &
1696 const std::string &global_vector_name,
1697 const Extractor &variable,
1700 const std::vector<Number> &independent_local_dofs =
1701 get_local_dof_values(global_vector_name, dummy);
1707 const std::string name = get_unique_name(
1708 global_vector_name, variable,
"_gradients_q", n_q_points, dummy);
1712 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1713 template solution_gradient_type<Number>>;
1716 internal_data_storage.template get_or_add_object_with_name<RetType>(
1721 fev[variable].get_function_gradients_from_local_dof_values(
1722 independent_local_dofs, ret);
1728 template <
int dim,
int spacedim>
1729 template <
typename Extractor,
typename Number>
1730 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1731 template solution_hessian_type<Number>> &
1733 const std::string &global_vector_name,
1734 const Extractor &variable,
1737 const std::vector<Number> &independent_local_dofs =
1738 get_local_dof_values(global_vector_name, dummy);
1744 const std::string name = get_unique_name(
1745 global_vector_name, variable,
"_hessians_q", n_q_points, dummy);
1749 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1750 template solution_hessian_type<Number>>;
1753 internal_data_storage.template get_or_add_object_with_name<RetType>(
1759 fev[variable].get_function_hessians_from_local_dof_values(
1760 independent_local_dofs, ret);
1766 template <
int dim,
int spacedim>
1767 template <
typename Extractor,
typename Number>
1768 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1769 template solution_laplacian_type<Number>> &
1771 const std::string &global_vector_name,
1772 const Extractor &variable,
1775 const std::vector<Number> &independent_local_dofs =
1776 get_local_dof_values(global_vector_name, dummy);
1782 const std::string name = get_unique_name(
1783 global_vector_name, variable,
"_laplacians_q", n_q_points, dummy);
1787 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1788 template solution_laplacian_type<Number>>;
1791 internal_data_storage.template get_or_add_object_with_name<RetType>(
1797 fev[variable].get_function_laplacians_from_local_dof_values(
1798 independent_local_dofs, ret);
1804 template <
int dim,
int spacedim>
1805 template <
typename Extractor,
typename Number>
1806 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1807 template solution_third_derivative_type<Number>> &
1809 const std::string &global_vector_name,
1810 const Extractor &variable,
1813 const std::vector<Number> &independent_local_dofs =
1814 get_local_dof_values(global_vector_name, dummy);
1820 const std::string name = get_unique_name(
1821 global_vector_name, variable,
"_third_derivatives_q", n_q_points, dummy);
1825 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1826 template solution_third_derivative_type<Number>>;
1829 internal_data_storage.template get_or_add_object_with_name<RetType>(
1835 fev[variable].get_function_third_derivatives_from_local_dof_values(
1836 independent_local_dofs, ret);
1842 template <
int dim,
int spacedim>
1843 template <
typename Extractor,
typename Number>
1844 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1845 template solution_symmetric_gradient_type<Number>> &
1847 const std::string &global_vector_name,
1848 const Extractor &variable,
1851 const std::vector<Number> &independent_local_dofs =
1852 get_local_dof_values(global_vector_name, dummy);
1858 const std::string name = get_unique_name(
1859 global_vector_name, variable,
"_symmetric_gradient_q", n_q_points, dummy);
1864 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1865 template solution_symmetric_gradient_type<Number>>;
1868 internal_data_storage.template get_or_add_object_with_name<RetType>(
1874 fev[variable].get_function_symmetric_gradients_from_local_dof_values(
1875 independent_local_dofs, ret);
1880 template <
int dim,
int spacedim>
1881 template <
typename Extractor,
typename Number>
1882 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1883 template solution_divergence_type<Number>> &
1885 const std::string &global_vector_name,
1886 const Extractor &variable,
1889 const std::vector<Number> &independent_local_dofs =
1890 get_local_dof_values(global_vector_name, dummy);
1896 const std::string name = get_unique_name(
1897 global_vector_name, variable,
"_divergence_q", n_q_points, dummy);
1901 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1902 template solution_divergence_type<Number>>;
1905 internal_data_storage.template get_or_add_object_with_name<RetType>(
1911 fev[variable].get_function_divergences_from_local_dof_values(
1912 independent_local_dofs, ret);
1918 template <
int dim,
int spacedim>
1919 template <
typename Extractor,
typename Number>
1920 const std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1921 template solution_curl_type<Number>> &
1923 const Extractor &variable,
1926 const std::vector<Number> &independent_local_dofs =
1927 get_local_dof_values(global_vector_name, dummy);
1933 const std::string name = get_unique_name(
1934 global_vector_name, variable,
"_curl_q", n_q_points, dummy);
1938 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1939 template solution_curl_type<Number>>;
1942 internal_data_storage.template get_or_add_object_with_name<RetType>(
1947 fev[variable].get_function_curls_from_local_dof_values(
1948 independent_local_dofs, ret);
1954 template <
int dim,
int spacedim>
1955 template <
typename Extractor,
typename Number>
1956 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
1957 template solution_value_type<Number>> &
1959 const std::string &global_vector_name,
1960 const Extractor &variable,
1963 const std::vector<Number> &independent_local_dofs =
1964 get_local_dof_values(global_vector_name, dummy);
1967 get_current_interface_fe_values();
1974 const std::string name = get_unique_name(
1975 global_vector_name, variable,
"_jump_values_q", n_q_points, dummy);
1979 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
1980 template solution_value_type<Number>>;
1983 internal_data_storage.template get_or_add_object_with_name<RetType>(
1988 feiv[variable].get_jump_in_function_values_from_local_dof_values(
1989 independent_local_dofs, ret);
1995 template <
int dim,
int spacedim>
1996 template <
typename Extractor,
typename Number>
1997 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
1998 template solution_gradient_type<Number>> &
2000 const std::string &global_vector_name,
2001 const Extractor &variable,
2004 const std::vector<Number> &independent_local_dofs =
2005 get_local_dof_values(global_vector_name, dummy);
2008 get_current_interface_fe_values();
2015 const std::string name = get_unique_name(
2016 global_vector_name, variable,
"_jump_gradients_q", n_q_points, dummy);
2020 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
2021 template solution_gradient_type<Number>>;
2024 internal_data_storage.template get_or_add_object_with_name<RetType>(
2029 feiv[variable].get_jump_in_function_gradients_from_local_dof_values(
2030 independent_local_dofs, ret);
2036 template <
int dim,
int spacedim>
2037 template <
typename Extractor,
typename Number>
2038 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
2039 template solution_hessian_type<Number>> &
2041 const std::string &global_vector_name,
2042 const Extractor &variable,
2045 const std::vector<Number> &independent_local_dofs =
2046 get_local_dof_values(global_vector_name, dummy);
2049 get_current_interface_fe_values();
2056 const std::string name = get_unique_name(
2057 global_vector_name, variable,
"_jump_hessians_q", n_q_points, dummy);
2061 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
2062 template solution_hessian_type<Number>>;
2065 internal_data_storage.template get_or_add_object_with_name<RetType>(
2070 feiv[variable].get_jump_in_function_hessians_from_local_dof_values(
2071 independent_local_dofs, ret);
2077 template <
int dim,
int spacedim>
2078 template <
typename Extractor,
typename Number>
2079 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
2080 template solution_third_derivative_type<Number>> &
2082 const std::string &global_vector_name,
2083 const Extractor &variable,
2086 const std::vector<Number> &independent_local_dofs =
2087 get_local_dof_values(global_vector_name, dummy);
2090 get_current_interface_fe_values();
2097 const std::string name = get_unique_name(global_vector_name,
2099 "_jump_third_derivatives_q",
2105 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
2106 template solution_third_derivative_type<Number>>;
2109 internal_data_storage.template get_or_add_object_with_name<RetType>(
2114 feiv[variable].get_jump_in_function_third_derivatives_from_local_dof_values(
2115 independent_local_dofs, ret);
2121 template <
int dim,
int spacedim>
2122 template <
typename Extractor,
typename Number>
2123 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
2124 template solution_value_type<Number>> &
2126 const std::string &global_vector_name,
2127 const Extractor &variable,
2130 const std::vector<Number> &independent_local_dofs =
2131 get_local_dof_values(global_vector_name, dummy);
2134 get_current_interface_fe_values();
2141 const std::string name = get_unique_name(
2142 global_vector_name, variable,
"_average_values_q", n_q_points, dummy);
2146 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
2147 template solution_value_type<Number>>;
2150 internal_data_storage.template get_or_add_object_with_name<RetType>(
2155 feiv[variable].get_average_of_function_values_from_local_dof_values(
2156 independent_local_dofs, ret);
2162 template <
int dim,
int spacedim>
2163 template <
typename Extractor,
typename Number>
2164 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
2165 template solution_gradient_type<Number>> &
2167 const std::string &global_vector_name,
2168 const Extractor &variable,
2171 const std::vector<Number> &independent_local_dofs =
2172 get_local_dof_values(global_vector_name, dummy);
2175 get_current_interface_fe_values();
2182 const std::string name = get_unique_name(
2183 global_vector_name, variable,
"_average_gradients_q", n_q_points, dummy);
2187 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
2188 template solution_gradient_type<Number>>;
2191 internal_data_storage.template get_or_add_object_with_name<RetType>(
2196 feiv[variable].get_average_of_function_gradients_from_local_dof_values(
2197 independent_local_dofs, ret);
2203 template <
int dim,
int spacedim>
2204 template <
typename Extractor,
typename Number>
2205 const std::vector<typename FEInterfaceViews::View<dim, spacedim, Extractor>::
2206 template solution_hessian_type<Number>> &
2208 const std::string &global_vector_name,
2209 const Extractor &variable,
2212 const std::vector<Number> &independent_local_dofs =
2213 get_local_dof_values(global_vector_name, dummy);
2216 get_current_interface_fe_values();
2223 const std::string name = get_unique_name(
2224 global_vector_name, variable,
"_average_hessians_q", n_q_points, dummy);
2228 std::vector<typename FEValuesViews::View<dim, spacedim, Extractor>::
2229 template solution_hessian_type<Number>>;
2232 internal_data_storage.template get_or_add_object_with_name<RetType>(
2237 feiv[variable].get_average_of_function_hessians_from_local_dof_values(
2238 independent_local_dofs, ret);
const unsigned int n_quadrature_points
unsigned n_current_interface_dofs() const
const unsigned int n_quadrature_points
Abstract base class for mapping classes.
GeneralDataStorage user_data_storage
hp::QCollection< dim - 1 > face_quadrature_collection
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_gradient_type< Number > > & get_jumps_in_gradients(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
bool has_hp_capabilities() const
const hp::MappingCollection< dim, spacedim > & get_mapping_collection() const
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_value_type< Number > > & get_values(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const FEValuesBase< dim, spacedim > & get_current_fe_values() const
GeneralDataStorage & get_general_data_storage()
const Quadrature< dim - 1 > & get_face_quadrature() const
std::string get_unique_name(const std::string &global_vector_name, const Extractor &variable, const std::string &object_type, const unsigned int size, const Number &exemplar_number) const
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_value_type< Number > > & get_jumps_in_values(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_divergence_type< Number > > & get_divergences(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const std::vector< Tensor< 1, spacedim > > & get_neighbor_normal_vectors()
unsigned int n_dofs_per_cell() const
std::unique_ptr< hp::FESubfaceValues< dim, spacedim > > hp_fe_subface_values
unsigned int n_neighbor_dofs_per_cell() const
std::unique_ptr< FEValues< dim, spacedim > > neighbor_fe_values
std::unique_ptr< FEFaceValues< dim, spacedim > > fe_face_values
std::string get_unique_dofs_name(const std::string &global_vector_name, const unsigned int size, const Number &exemplar_number) const
void extract_local_dof_values(const std::string &global_vector_name, const VectorType &input_vector, const Number dummy=Number(0))
std::unique_ptr< FEValues< dim, spacedim > > fe_values
UpdateFlags cell_update_flags
const std::vector< double > & get_JxW_values() const
const Mapping< dim, spacedim > & get_mapping() const
std::unique_ptr< FEInterfaceValues< dim, spacedim > > interface_fe_values
const std::vector< double > & get_neighbor_JxW_values() const
Quadrature< dim > cell_quadrature
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_value_type< Number > > & get_averages_of_values(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const FiniteElement< dim, spacedim > & get_fe() const
SmartPointer< const hp::FECollection< dim, spacedim > > fe_collection
std::unique_ptr< FEFaceValues< dim, spacedim > > neighbor_fe_face_values
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_gradient_type< Number > > & get_averages_of_gradients(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const hp::QCollection< dim > & get_cell_quadrature_collection() const
std::vector< types::global_dof_index > neighbor_dof_indices
SmartPointer< const FiniteElement< dim, spacedim > > fe
UpdateFlags face_update_flags
const std::vector< types::global_dof_index > & get_neighbor_dof_indices() const
UpdateFlags get_face_update_flags() const
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_hessian_type< Number > > & get_jumps_in_hessians(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_laplacian_type< Number > > & get_laplacians(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
std::unique_ptr< hp::FEValues< dim, spacedim > > hp_fe_values
SmartPointer< const hp::MappingCollection< dim, spacedim > > mapping_collection
UpdateFlags neighbor_cell_update_flags
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_third_derivative_type< Number > > & get_third_derivatives(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
bool hp_capability_enabled
UpdateFlags get_neighbor_cell_update_flags() const
const hp::FECollection< dim, spacedim > & get_fe_collection() const
const std::vector< Tensor< 1, spacedim > > & get_normal_vectors() const
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_curl_type< Number > > & get_curls(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const FEValues< dim, spacedim > & reinit_neighbor(const typename DoFHandler< dim, spacedim >::active_cell_iterator &cell)
std::unique_ptr< hp::FEFaceValues< dim, spacedim > > neighbor_hp_fe_face_values
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_hessian_type< Number > > & get_hessians(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
std::vector< types::global_dof_index > local_dof_indices
SmartPointer< const Mapping< dim, spacedim > > mapping
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_third_derivative_type< Number > > & get_jumps_in_third_derivatives(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
SmartPointer< const FEValuesBase< dim, spacedim > > current_fe_values
const std::vector< Number > & get_local_dof_values(const std::string &global_vector_name, Number dummy=Number(0)) const
const std::vector< Point< spacedim > > & get_quadrature_points() const
std::unique_ptr< hp::FEValues< dim, spacedim > > neighbor_hp_fe_values
const FEValuesBase< dim, spacedim > & get_current_neighbor_fe_values() const
const std::vector< types::global_dof_index > & get_local_dof_indices() const
SmartPointer< const FEValuesBase< dim, spacedim > > current_neighbor_fe_values
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_symmetric_gradient_type< Number > > & get_symmetric_gradients(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
Quadrature< dim - 1 > face_quadrature
const std::vector< typename FEInterfaceViews::View< dim, spacedim, Extractor >::template solution_hessian_type< Number > > & get_averages_of_hessians(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
const FEInterfaceValues< dim, spacedim > & get_current_interface_fe_values() const
hp::QCollection< dim > cell_quadrature_collection
UpdateFlags get_cell_update_flags() const
const std::vector< typename FEValuesViews::View< dim, spacedim, Extractor >::template solution_gradient_type< Number > > & get_gradients(const std::string &global_vector_name, const Extractor &variable, const Number dummy=Number(0))
UpdateFlags neighbor_face_update_flags
const Quadrature< dim > & get_cell_quadrature() const
const hp::QCollection< dim - 1 > & get_face_quadrature_collection() const
ScratchData(const Mapping< dim, spacedim > &mapping, const FiniteElement< dim, spacedim > &fe, const Quadrature< dim > &quadrature, const UpdateFlags &update_flags, const Quadrature< dim - 1 > &face_quadrature=Quadrature< dim - 1 >(), const UpdateFlags &face_update_flags=update_default)
std::unique_ptr< FESubfaceValues< dim, spacedim > > neighbor_fe_subface_values
const FEValues< dim, spacedim > & reinit(const typename DoFHandler< dim, spacedim >::active_cell_iterator &cell)
std::unique_ptr< hp::FESubfaceValues< dim, spacedim > > neighbor_hp_fe_subface_values
std::unique_ptr< FESubfaceValues< dim, spacedim > > fe_subface_values
GeneralDataStorage internal_data_storage
UpdateFlags get_neighbor_face_update_flags() const
std::unique_ptr< hp::FEFaceValues< dim, spacedim > > hp_fe_face_values
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
#define AssertDimension(dim1, dim2)
static ::ExceptionBase & ExcOnlyAvailableWithoutHP()
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcMessage(std::string arg1)
static ::ExceptionBase & ExcOnlyAvailableWithHP()
typename ActiveSelector::active_cell_iterator active_cell_iterator
@ update_default
No update.
typename ::internal::FEInterfaceViews:: ViewType< dim, spacedim, Extractor >::type View
std::string type_to_string(const T &t)
std::string int_to_string(const unsigned int value, const unsigned int digits=numbers::invalid_unsigned_int)