47template <
int dim,
class VectorType,
int spacedim>
49 const unsigned int degree,
51 const VectorType & euler_vector,
52 const unsigned int level)
54 , euler_vector(&euler_vector)
55 , euler_dof_handler(&euler_dof_handler)
57 , support_quadrature(degree)
58 , fe_values(euler_dof_handler.get_fe(),
65template <
int dim,
class VectorType,
int spacedim>
66std::unique_ptr<Mapping<dim, spacedim>>
69 return std::make_unique<MappingQEulerian<dim, VectorType, spacedim>>(
70 this->get_degree(), *euler_dof_handler, *euler_vector, this->
level);
77template <
int dim,
class VectorType,
int spacedim>
86 const unsigned int n_q_points = q_iterated.
size();
90 const std::vector<unsigned int> renumber =
91 FETools::lexicographic_to_hierarchic_numbering<dim>(map_degree);
94 for (
unsigned int q = 0; q < n_q_points; ++q)
102template <
int dim,
class VectorType,
int spacedim>
103boost::container::small_vector<Point<spacedim>,
111 boost::container::small_vector<Point<spacedim>,
113 vertex_locations(a.begin(),
116 return vertex_locations;
121template <
int dim,
class VectorType,
int spacedim>
122std::vector<Point<spacedim>>
158 Assert(n_components >= spacedim,
161 std::vector<Vector<typename VectorType::value_type>> shift_vector(
164 std::vector<types::global_dof_index> dof_indices(
173 dof_cell->get_mg_dof_indices(dof_indices);
181 std::vector<Point<spacedim>> a(n_support_pts);
182 for (
unsigned int q = 0; q < n_support_pts; ++q)
185 for (
unsigned int d = 0; d < spacedim; ++d)
186 a[q](d) += shift_vector[q](d);
194template <
int dim,
class VectorType,
int spacedim>
220#include "mapping_q_eulerian.inst"
SupportQuadrature(const unsigned int map_degree)
FEValues< dim, spacedim > fe_values
SmartPointer< const DoFHandler< dim, spacedim >, MappingQEulerian< dim, VectorType, spacedim > > euler_dof_handler
virtual std::vector< Point< spacedim > > compute_mapping_support_points(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
virtual CellSimilarity::Similarity fill_fe_values(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const CellSimilarity::Similarity cell_similarity, const Quadrature< dim > &quadrature, const typename Mapping< dim, spacedim >::InternalDataBase &internal_data, internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &output_data) const override
virtual std::unique_ptr< Mapping< dim, spacedim > > clone() const override
virtual boost::container::small_vector< Point< spacedim >, GeometryInfo< dim >::vertices_per_cell > get_vertices(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
MappingQEulerian(const unsigned int degree, const DoFHandler< dim, spacedim > &euler_dof_handler, const VectorType &euler_vector, const unsigned int level=numbers::invalid_unsigned_int)
SmartPointer< const VectorType, MappingQEulerian< dim, VectorType, spacedim > > euler_vector
Threads::Mutex fe_values_mutex
const SupportQuadrature support_quadrature
virtual CellSimilarity::Similarity fill_fe_values(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const CellSimilarity::Similarity cell_similarity, const Quadrature< dim > &quadrature, const typename Mapping< dim, spacedim >::InternalDataBase &internal_data, internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &output_data) const override
std::vector< Point< dim > > quadrature_points
const Point< dim > & point(const unsigned int i) const
unsigned int size() const
void reinit(const TriaIterator< DoFCellAccessor< dim, spacedim, lda > > &cell, const unsigned int q_index=numbers::invalid_unsigned_int, const unsigned int mapping_index=numbers::invalid_unsigned_int, const unsigned int fe_index=numbers::invalid_unsigned_int)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
#define AssertDimension(dim1, dim2)
static ::ExceptionBase & ExcInactiveCell()
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
typename ActiveSelector::cell_iterator cell_iterator
@ update_values
Shape function values.
@ update_quadrature_points
Transformed quadrature points.
static const unsigned int invalid_unsigned_int