DEAL_II_NAMESPACE_OPEN
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::InternalData::
- InternalData(const FiniteElement<dim, spacedim> &fe,
- const ComponentMask & mask)
+template <int dim, int spacedim, typename VectorType>
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::InternalData(
+ const FiniteElement<dim, spacedim> &fe,
+ const ComponentMask & mask)
: unit_tangentials()
, n_shape_functions(fe.n_dofs_per_cell())
, mask(mask)
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
std::size_t
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::InternalData::
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::
memory_consumption() const
{
Assert(false, ExcNotImplemented());
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
double &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::shape(
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::shape(
const unsigned int qpoint,
const unsigned int shape_nr)
{
}
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
const Tensor<1, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
- derivative(const unsigned int qpoint, const unsigned int shape_nr) const
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::derivative(
+ const unsigned int qpoint,
+ const unsigned int shape_nr) const
{
AssertIndexRange(qpoint * n_shape_functions + shape_nr,
shape_derivatives.size());
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
Tensor<1, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
- derivative(const unsigned int qpoint, const unsigned int shape_nr)
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::derivative(
+ const unsigned int qpoint,
+ const unsigned int shape_nr)
{
AssertIndexRange(qpoint * n_shape_functions + shape_nr,
shape_derivatives.size());
}
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
const Tensor<2, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::
second_derivative(const unsigned int qpoint,
const unsigned int shape_nr) const
{
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
Tensor<2, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::
second_derivative(const unsigned int qpoint, const unsigned int shape_nr)
{
AssertIndexRange(qpoint * n_shape_functions + shape_nr,
}
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
const Tensor<3, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
- third_derivative(const unsigned int qpoint, const unsigned int shape_nr) const
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::third_derivative(
+ const unsigned int qpoint,
+ const unsigned int shape_nr) const
{
AssertIndexRange(qpoint * n_shape_functions + shape_nr,
shape_third_derivatives.size());
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
Tensor<3, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
- third_derivative(const unsigned int qpoint, const unsigned int shape_nr)
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::third_derivative(
+ const unsigned int qpoint,
+ const unsigned int shape_nr)
{
AssertIndexRange(qpoint * n_shape_functions + shape_nr,
shape_third_derivatives.size());
}
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
const Tensor<4, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::
fourth_derivative(const unsigned int qpoint,
const unsigned int shape_nr) const
{
-template <int dim, int spacedim, typename DoFHandlerType, typename VectorType>
+template <int dim, int spacedim, typename VectorType>
Tensor<4, dim> &
-MappingFEField<dim, spacedim, DoFHandlerType, VectorType>::InternalData::
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::
fourth_derivative(const unsigned int qpoint, const unsigned int shape_nr)
{
AssertIndexRange(qpoint * n_shape_functions + shape_nr,
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::MappingFEField(
- const DoFHandlerType &euler_dof_handler,
- const VectorType & euler_vector,
- const ComponentMask & mask)
+template <int dim, int spacedim, typename VectorType>
+MappingFEField<dim, spacedim, VectorType, void>::MappingFEField(
+ const DoFHandler<dim, spacedim> &euler_dof_handler,
+ const VectorType & euler_vector,
+ const ComponentMask & mask)
: uses_level_dofs(false)
, euler_vector({&euler_vector})
, euler_dof_handler(&euler_dof_handler)
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::MappingFEField(
- const DoFHandlerType & euler_dof_handler,
- const std::vector<VectorType> &euler_vector,
- const ComponentMask & mask)
+template <int dim, int spacedim, typename VectorType>
+MappingFEField<dim, spacedim, VectorType, void>::MappingFEField(
+ const DoFHandler<dim, spacedim> &euler_dof_handler,
+ const std::vector<VectorType> & euler_vector,
+ const ComponentMask & mask)
: uses_level_dofs(true)
, euler_dof_handler(&euler_dof_handler)
, fe_mask(mask.size() ?
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::MappingFEField(
- const DoFHandlerType & euler_dof_handler,
+template <int dim, int spacedim, typename VectorType>
+MappingFEField<dim, spacedim, VectorType, void>::MappingFEField(
+ const DoFHandler<dim, spacedim> &euler_dof_handler,
const MGLevelObject<VectorType> &euler_vector,
const ComponentMask & mask)
: uses_level_dofs(true)
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::MappingFEField(
- const MappingFEField<dim, spacedim, VectorType, DoFHandlerType> &mapping)
+template <int dim, int spacedim, typename VectorType>
+MappingFEField<dim, spacedim, VectorType, void>::MappingFEField(
+ const MappingFEField<dim, spacedim, VectorType, void> &mapping)
: uses_level_dofs(mapping.uses_level_dofs)
, euler_vector(mapping.euler_vector)
, euler_dof_handler(mapping.euler_dof_handler)
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
inline const double &
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::InternalData::shape(
+MappingFEField<dim, spacedim, VectorType, void>::InternalData::shape(
const unsigned int qpoint,
const unsigned int shape_nr) const
{
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
bool
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- preserves_vertex_locations() const
+MappingFEField<dim, spacedim, VectorType, void>::preserves_vertex_locations()
+ const
{
return false;
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
boost::container::small_vector<Point<spacedim>,
GeometryInfo<dim>::vertices_per_cell>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::get_vertices(
+MappingFEField<dim, spacedim, VectorType, void>::get_vertices(
const typename Triangulation<dim, spacedim>::cell_iterator &cell) const
{
// we transform our tria iterator into a dof iterator so we can access
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- compute_shapes_virtual(
- const std::vector<Point<dim>> &unit_points,
- typename MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData &data) const
+MappingFEField<dim, spacedim, VectorType, void>::compute_shapes_virtual(
+ const std::vector<Point<dim>> &unit_points,
+ typename MappingFEField<dim, spacedim, VectorType, void>::InternalData &data)
+ const
{
const auto fe = &euler_dof_handler->get_fe();
const unsigned int n_points = unit_points.size();
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
UpdateFlags
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- requires_update_flags(const UpdateFlags in) const
+MappingFEField<dim, spacedim, VectorType, void>::requires_update_flags(
+ const UpdateFlags in) const
{
// add flags if the respective quantities are necessary to compute
// what we need. note that some flags appear in both conditions and
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::compute_data(
+MappingFEField<dim, spacedim, VectorType, void>::compute_data(
const UpdateFlags update_flags,
const Quadrature<dim> &q,
const unsigned int n_original_q_points,
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::compute_face_data(
+MappingFEField<dim, spacedim, VectorType, void>::compute_face_data(
const UpdateFlags update_flags,
const Quadrature<dim> &q,
const unsigned int n_original_q_points,
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
typename std::unique_ptr<typename Mapping<dim, spacedim>::InternalDataBase>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::get_data(
+MappingFEField<dim, spacedim, VectorType, void>::get_data(
const UpdateFlags update_flags,
const Quadrature<dim> &quadrature) const
{
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
std::unique_ptr<typename Mapping<dim, spacedim>::InternalDataBase>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::get_face_data(
+MappingFEField<dim, spacedim, VectorType, void>::get_face_data(
const UpdateFlags update_flags,
const Quadrature<dim - 1> &quadrature) const
{
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
std::unique_ptr<typename Mapping<dim, spacedim>::InternalDataBase>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::get_subface_data(
+MappingFEField<dim, spacedim, VectorType, void>::get_subface_data(
const UpdateFlags update_flags,
const Quadrature<dim - 1> &quadrature) const
{
* have already been set), but only if the update_flags of the @p data
* argument indicate so.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_compute_q_points(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> &fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_Jacobians(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> &fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real)
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_jacobian_grads(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> & fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_jacobian_pushed_forward_grads(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> &fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_jacobian_2nd_derivatives(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> & fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_jacobian_pushed_forward_2nd_derivatives(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> &fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_jacobian_3rd_derivatives(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> & fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* Skip the computation if possible as indicated by the first argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_update_jacobian_pushed_forward_3rd_derivatives(
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> &fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
*
* The resulting data is put into the @p output_data argument.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
maybe_compute_face_data(
const dealii::Mapping<dim, spacedim> &mapping,
const unsigned int face_no,
const unsigned int subface_no,
const std::vector<double> &weights,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData &data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData &data,
internal::FEValuesImplementation::MappingRelatedData<dim, spacedim>
&output_data)
{
* 'data_set' to differentiate whether we will work on a face (and if so,
* which one) or subface.
*/
- template <int dim,
- int spacedim,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, typename VectorType>
void
do_fill_fe_face_values(
const dealii::Mapping<dim, spacedim> &mapping,
const unsigned int subface_no,
const typename dealii::QProjector<dim>::DataSetDescriptor data_set,
const Quadrature<dim - 1> & quadrature,
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData & data,
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData & data,
const FiniteElement<dim, spacedim> &fe,
const ComponentMask & fe_mask,
const std::vector<unsigned int> & fe_to_real,
internal::FEValuesImplementation::MappingRelatedData<dim, spacedim>
&output_data)
{
- maybe_compute_q_points<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_compute_q_points<dim, spacedim, VectorType>(
data_set,
data,
fe,
fe_to_real,
output_data.quadrature_points);
- maybe_update_Jacobians<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_update_Jacobians<dim, spacedim, VectorType>(
data_set, data, fe, fe_mask, fe_to_real);
- maybe_update_jacobian_grads<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_update_jacobian_grads<dim, spacedim, VectorType>(
data_set, data, fe, fe_mask, fe_to_real, output_data.jacobian_grads);
- maybe_update_jacobian_pushed_forward_grads<dim,
- spacedim,
- VectorType,
- DoFHandlerType>(
+ maybe_update_jacobian_pushed_forward_grads<dim, spacedim, VectorType>(
data_set,
data,
fe,
fe_to_real,
output_data.jacobian_pushed_forward_grads);
- maybe_update_jacobian_2nd_derivatives<dim,
- spacedim,
- VectorType,
- DoFHandlerType>(
+ maybe_update_jacobian_2nd_derivatives<dim, spacedim, VectorType>(
data_set,
data,
fe,
maybe_update_jacobian_pushed_forward_2nd_derivatives<dim,
spacedim,
- VectorType,
- DoFHandlerType>(
+ VectorType>(
data_set,
data,
fe,
fe_to_real,
output_data.jacobian_pushed_forward_2nd_derivatives);
- maybe_update_jacobian_3rd_derivatives<dim,
- spacedim,
- VectorType,
- DoFHandlerType>(
+ maybe_update_jacobian_3rd_derivatives<dim, spacedim, VectorType>(
data_set,
data,
fe,
maybe_update_jacobian_pushed_forward_3rd_derivatives<dim,
spacedim,
- VectorType,
- DoFHandlerType>(
+ VectorType>(
data_set,
data,
fe,
fe_to_real,
output_data.jacobian_pushed_forward_3rd_derivatives);
- maybe_compute_face_data<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_compute_face_data<dim, spacedim, VectorType>(
mapping,
cell,
face_no,
// Note that the CellSimilarity flag is modifiable, since MappingFEField can
// need to recalculate data even when cells are similar.
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
CellSimilarity::Similarity
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::fill_fe_values(
+MappingFEField<dim, spacedim, VectorType, void>::fill_fe_values(
const typename Triangulation<dim, spacedim>::cell_iterator &cell,
const CellSimilarity::Similarity,
const Quadrature<dim> & quadrature,
update_internal_dofs(cell, data);
internal::MappingFEFieldImplementation::
- maybe_compute_q_points<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_compute_q_points<dim, spacedim, VectorType>(
QProjector<dim>::DataSetDescriptor::cell(),
data,
euler_dof_handler->get_fe(),
output_data.quadrature_points);
internal::MappingFEFieldImplementation::
- maybe_update_Jacobians<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_update_Jacobians<dim, spacedim, VectorType>(
QProjector<dim>::DataSetDescriptor::cell(),
data,
euler_dof_handler->get_fe(),
// calculate derivatives of the Jacobians
internal::MappingFEFieldImplementation::
- maybe_update_jacobian_grads<dim, spacedim, VectorType, DoFHandlerType>(
+ maybe_update_jacobian_grads<dim, spacedim, VectorType>(
QProjector<dim>::DataSetDescriptor::cell(),
data,
euler_dof_handler->get_fe(),
// calculate derivatives of the Jacobians pushed forward to real cell
// coordinates
internal::MappingFEFieldImplementation::
- maybe_update_jacobian_pushed_forward_grads<dim,
- spacedim,
- VectorType,
- DoFHandlerType>(
+ maybe_update_jacobian_pushed_forward_grads<dim, spacedim, VectorType>(
QProjector<dim>::DataSetDescriptor::cell(),
data,
euler_dof_handler->get_fe(),
output_data.jacobian_pushed_forward_grads);
// calculate hessians of the Jacobians
- internal::MappingFEFieldImplementation::maybe_update_jacobian_2nd_derivatives<
- dim,
- spacedim,
- VectorType,
- DoFHandlerType>(QProjector<dim>::DataSetDescriptor::cell(),
- data,
- euler_dof_handler->get_fe(),
- fe_mask,
- fe_to_real,
- output_data.jacobian_2nd_derivatives);
+ internal::MappingFEFieldImplementation::
+ maybe_update_jacobian_2nd_derivatives<dim, spacedim, VectorType>(
+ QProjector<dim>::DataSetDescriptor::cell(),
+ data,
+ euler_dof_handler->get_fe(),
+ fe_mask,
+ fe_to_real,
+ output_data.jacobian_2nd_derivatives);
// calculate hessians of the Jacobians pushed forward to real cell coordinates
internal::MappingFEFieldImplementation::
maybe_update_jacobian_pushed_forward_2nd_derivatives<dim,
spacedim,
- VectorType,
- DoFHandlerType>(
+ VectorType>(
QProjector<dim>::DataSetDescriptor::cell(),
data,
euler_dof_handler->get_fe(),
output_data.jacobian_pushed_forward_2nd_derivatives);
// calculate gradients of the hessians of the Jacobians
- internal::MappingFEFieldImplementation::maybe_update_jacobian_3rd_derivatives<
- dim,
- spacedim,
- VectorType,
- DoFHandlerType>(QProjector<dim>::DataSetDescriptor::cell(),
- data,
- euler_dof_handler->get_fe(),
- fe_mask,
- fe_to_real,
- output_data.jacobian_3rd_derivatives);
+ internal::MappingFEFieldImplementation::
+ maybe_update_jacobian_3rd_derivatives<dim, spacedim, VectorType>(
+ QProjector<dim>::DataSetDescriptor::cell(),
+ data,
+ euler_dof_handler->get_fe(),
+ fe_mask,
+ fe_to_real,
+ output_data.jacobian_3rd_derivatives);
// calculate gradients of the hessians of the Jacobians pushed forward to real
// cell coordinates
internal::MappingFEFieldImplementation::
maybe_update_jacobian_pushed_forward_3rd_derivatives<dim,
spacedim,
- VectorType,
- DoFHandlerType>(
+ VectorType>(
QProjector<dim>::DataSetDescriptor::cell(),
data,
euler_dof_handler->get_fe(),
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::fill_fe_face_values(
+MappingFEField<dim, spacedim, VectorType, void>::fill_fe_face_values(
const typename Triangulation<dim, spacedim>::cell_iterator &cell,
const unsigned int face_no,
const Quadrature<dim - 1> & quadrature,
update_internal_dofs(cell, data);
- internal::MappingFEFieldImplementation::
- do_fill_fe_face_values<dim, spacedim, VectorType, DoFHandlerType>(
- *this,
- cell,
- face_no,
- numbers::invalid_unsigned_int,
- QProjector<dim>::DataSetDescriptor::face(ReferenceCell::get_hypercube(
- dim),
- face_no,
- cell->face_orientation(face_no),
- cell->face_flip(face_no),
- cell->face_rotation(face_no),
- quadrature.size()),
- quadrature,
- data,
- euler_dof_handler->get_fe(),
- fe_mask,
- fe_to_real,
- output_data);
+ internal::MappingFEFieldImplementation::do_fill_fe_face_values<dim,
+ spacedim,
+ VectorType>(
+ *this,
+ cell,
+ face_no,
+ numbers::invalid_unsigned_int,
+ QProjector<dim>::DataSetDescriptor::face(ReferenceCell::get_hypercube(dim),
+ face_no,
+ cell->face_orientation(face_no),
+ cell->face_flip(face_no),
+ cell->face_rotation(face_no),
+ quadrature.size()),
+ quadrature,
+ data,
+ euler_dof_handler->get_fe(),
+ fe_mask,
+ fe_to_real,
+ output_data);
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- fill_fe_subface_values(
- const typename Triangulation<dim, spacedim>::cell_iterator &cell,
- const unsigned int face_no,
- const unsigned int subface_no,
- const Quadrature<dim - 1> & quadrature,
- const typename Mapping<dim, spacedim>::InternalDataBase & internal_data,
- internal::FEValuesImplementation::MappingRelatedData<dim, spacedim>
- &output_data) const
+MappingFEField<dim, spacedim, VectorType, void>::fill_fe_subface_values(
+ const typename Triangulation<dim, spacedim>::cell_iterator &cell,
+ const unsigned int face_no,
+ const unsigned int subface_no,
+ const Quadrature<dim - 1> & quadrature,
+ const typename Mapping<dim, spacedim>::InternalDataBase & internal_data,
+ internal::FEValuesImplementation::MappingRelatedData<dim, spacedim>
+ &output_data) const
{
// convert data object to internal data for this class. fails with an
// exception if that is not possible
update_internal_dofs(cell, data);
- internal::MappingFEFieldImplementation::
- do_fill_fe_face_values<dim, spacedim, VectorType, DoFHandlerType>(
- *this,
- cell,
- face_no,
- numbers::invalid_unsigned_int,
- QProjector<dim>::DataSetDescriptor::subface(
- ReferenceCell::get_hypercube(dim),
- face_no,
- subface_no,
- cell->face_orientation(face_no),
- cell->face_flip(face_no),
- cell->face_rotation(face_no),
- quadrature.size(),
- cell->subface_case(face_no)),
- quadrature,
- data,
- euler_dof_handler->get_fe(),
- fe_mask,
- fe_to_real,
- output_data);
+ internal::MappingFEFieldImplementation::do_fill_fe_face_values<dim,
+ spacedim,
+ VectorType>(
+ *this,
+ cell,
+ face_no,
+ numbers::invalid_unsigned_int,
+ QProjector<dim>::DataSetDescriptor::subface(ReferenceCell::get_hypercube(
+ dim),
+ face_no,
+ subface_no,
+ cell->face_orientation(face_no),
+ cell->face_flip(face_no),
+ cell->face_rotation(face_no),
+ quadrature.size(),
+ cell->subface_case(face_no)),
+ quadrature,
+ data,
+ euler_dof_handler->get_fe(),
+ fe_mask,
+ fe_to_real,
+ output_data);
}
{
namespace
{
- template <int dim,
- int spacedim,
- int rank,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, int rank, typename VectorType>
void
transform_fields(
const ArrayView<const Tensor<rank, dim>> & input,
const ArrayView<Tensor<rank, spacedim>> & output)
{
AssertDimension(input.size(), output.size());
- Assert((dynamic_cast<
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData *>(&mapping_data) != nullptr),
- ExcInternalError());
- const typename dealii::MappingFEField<dim,
- spacedim,
- VectorType,
- DoFHandlerType>::InternalData
- &data = static_cast<
+ Assert(
+ (dynamic_cast<
+ const typename dealii::
+ MappingFEField<dim, spacedim, VectorType, void>::InternalData *>(
+ &mapping_data) != nullptr),
+ ExcInternalError());
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData &data = static_cast<
const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData &>(mapping_data);
+ MappingFEField<dim, spacedim, VectorType, void>::InternalData &>(
+ mapping_data);
switch (mapping_kind)
{
}
- template <int dim,
- int spacedim,
- int rank,
- typename VectorType,
- typename DoFHandlerType>
+ template <int dim, int spacedim, int rank, typename VectorType>
void
transform_differential_forms(
const ArrayView<const DerivativeForm<rank, dim, spacedim>> &input,
const ArrayView<Tensor<rank + 1, spacedim>> & output)
{
AssertDimension(input.size(), output.size());
- Assert((dynamic_cast<
- const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData *>(&mapping_data) != nullptr),
- ExcInternalError());
- const typename dealii::MappingFEField<dim,
- spacedim,
- VectorType,
- DoFHandlerType>::InternalData
- &data = static_cast<
+ Assert(
+ (dynamic_cast<
+ const typename dealii::
+ MappingFEField<dim, spacedim, VectorType, void>::InternalData *>(
+ &mapping_data) != nullptr),
+ ExcInternalError());
+ const typename dealii::MappingFEField<dim, spacedim, VectorType, void>::
+ InternalData &data = static_cast<
const typename dealii::
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData &>(mapping_data);
+ MappingFEField<dim, spacedim, VectorType, void>::InternalData &>(
+ mapping_data);
switch (mapping_kind)
{
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::transform(
+MappingFEField<dim, spacedim, VectorType, void>::transform(
const ArrayView<const Tensor<1, dim>> & input,
const MappingKind mapping_kind,
const typename Mapping<dim, spacedim>::InternalDataBase &mapping_data,
AssertDimension(input.size(), output.size());
internal::MappingFEFieldImplementation::
- transform_fields<dim, spacedim, 1, VectorType, DoFHandlerType>(input,
- mapping_kind,
- mapping_data,
- output);
+ transform_fields<dim, spacedim, 1, VectorType>(input,
+ mapping_kind,
+ mapping_data,
+ output);
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::transform(
+MappingFEField<dim, spacedim, VectorType, void>::transform(
const ArrayView<const DerivativeForm<1, dim, spacedim>> &input,
const MappingKind mapping_kind,
const typename Mapping<dim, spacedim>::InternalDataBase &mapping_data,
AssertDimension(input.size(), output.size());
internal::MappingFEFieldImplementation::
- transform_differential_forms<dim, spacedim, 1, VectorType, DoFHandlerType>(
- input, mapping_kind, mapping_data, output);
+ transform_differential_forms<dim, spacedim, 1, VectorType>(input,
+ mapping_kind,
+ mapping_data,
+ output);
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::transform(
+MappingFEField<dim, spacedim, VectorType, void>::transform(
const ArrayView<const Tensor<2, dim>> &input,
const MappingKind,
const typename Mapping<dim, spacedim>::InternalDataBase &mapping_data,
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::transform(
+MappingFEField<dim, spacedim, VectorType, void>::transform(
const ArrayView<const DerivativeForm<2, dim, spacedim>> &input,
const MappingKind mapping_kind,
const typename Mapping<dim, spacedim>::InternalDataBase &mapping_data,
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::transform(
+MappingFEField<dim, spacedim, VectorType, void>::transform(
const ArrayView<const Tensor<3, dim>> &input,
const MappingKind /*mapping_kind*/,
const typename Mapping<dim, spacedim>::InternalDataBase &mapping_data,
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
Point<spacedim>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- transform_unit_to_real_cell(
- const typename Triangulation<dim, spacedim>::cell_iterator &cell,
- const Point<dim> & p) const
+MappingFEField<dim, spacedim, VectorType, void>::transform_unit_to_real_cell(
+ const typename Triangulation<dim, spacedim>::cell_iterator &cell,
+ const Point<dim> & p) const
{
// Use the get_data function to create an InternalData with data vectors of
// the right size and transformation shape values already computed at point
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
Point<spacedim>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- do_transform_unit_to_real_cell(const InternalData &data) const
+MappingFEField<dim, spacedim, VectorType, void>::do_transform_unit_to_real_cell(
+ const InternalData &data) const
{
Point<spacedim> p_real;
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
Point<dim>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- transform_real_to_unit_cell(
- const typename Triangulation<dim, spacedim>::cell_iterator &cell,
- const Point<spacedim> & p) const
+MappingFEField<dim, spacedim, VectorType, void>::transform_real_to_unit_cell(
+ const typename Triangulation<dim, spacedim>::cell_iterator &cell,
+ const Point<spacedim> & p) const
{
// first a Newton iteration based on the real mapping. It uses the center
// point of the cell as a starting point
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
Point<dim>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- do_transform_real_to_unit_cell(
- const typename Triangulation<dim, spacedim>::cell_iterator &cell,
- const Point<spacedim> & p,
- const Point<dim> & initial_p_unit,
- InternalData & mdata) const
+MappingFEField<dim, spacedim, VectorType, void>::do_transform_real_to_unit_cell(
+ const typename Triangulation<dim, spacedim>::cell_iterator &cell,
+ const Point<spacedim> & p,
+ const Point<dim> & initial_p_unit,
+ InternalData & mdata) const
{
const unsigned int n_shapes = mdata.shape_values.size();
(void)n_shapes;
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
unsigned int
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::get_degree() const
+MappingFEField<dim, spacedim, VectorType, void>::get_degree() const
{
return euler_dof_handler->get_fe().degree;
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
ComponentMask
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::get_component_mask()
- const
+MappingFEField<dim, spacedim, VectorType, void>::get_component_mask() const
{
return this->fe_mask;
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
std::unique_ptr<Mapping<dim, spacedim>>
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::clone() const
+MappingFEField<dim, spacedim, VectorType, void>::clone() const
{
- return std::make_unique<
- MappingFEField<dim, spacedim, VectorType, DoFHandlerType>>(*this);
+ return std::make_unique<MappingFEField<dim, spacedim, VectorType, void>>(
+ *this);
}
-template <int dim, int spacedim, typename VectorType, typename DoFHandlerType>
+template <int dim, int spacedim, typename VectorType>
void
-MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::update_internal_dofs(
+MappingFEField<dim, spacedim, VectorType, void>::update_internal_dofs(
const typename Triangulation<dim, spacedim>::cell_iterator &cell,
- const typename MappingFEField<dim, spacedim, VectorType, DoFHandlerType>::
- InternalData &data) const
+ const typename MappingFEField<dim, spacedim, VectorType, void>::InternalData
+ &data) const
{
Assert(euler_dof_handler != nullptr,
ExcMessage("euler_dof_handler is empty"));
- typename DoFHandlerType::cell_iterator dof_cell(*cell, euler_dof_handler);
+ typename DoFHandler<dim, spacedim>::cell_iterator dof_cell(*cell,
+ euler_dof_handler);
Assert(uses_level_dofs || dof_cell->is_active() == true, ExcInactiveCell());
if (uses_level_dofs)
{