|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
46 template <
int dim,
class VectorType,
int spacedim>
49 const unsigned int degree,
52 , mapping_q_eulerian(mapping_q_eulerian)
53 , support_quadrature(degree)
54 , fe_values(mapping_q_eulerian.euler_dof_handler->get_fe(),
61 template <
int dim,
class VectorType,
int spacedim>
63 const unsigned int degree,
66 const unsigned int level)
67 :
MappingQ<dim, spacedim>(degree, true)
76 std::make_shared<MappingQ1Eulerian<dim, VectorType, spacedim>>(
80 this->
qp_mapping = std::make_shared<MappingQEulerianGeneric>(degree, *
this);
85 template <
int dim,
class VectorType,
int spacedim>
86 std::unique_ptr<Mapping<dim, spacedim>>
89 return std_cxx14::make_unique<MappingQEulerian<dim, VectorType, spacedim>>(
90 this->get_degree(), *euler_dof_handler, *euler_vector);
97 template <
int dim,
class VectorType,
int spacedim>
106 const unsigned int n_q_points = q_iterated.
size();
110 const std::vector<unsigned int> renumber =
111 FETools::lexicographic_to_hierarchic_numbering<dim>(map_degree);
114 for (
unsigned int q = 0; q < n_q_points; ++q)
122 template <
int dim,
class VectorType,
int spacedim>
128 const std::vector<Point<spacedim>> a =
136 vertex_locations.begin());
138 return vertex_locations;
143 template <
int dim,
class VectorType,
int spacedim>
154 template <
int dim,
class VectorType,
int spacedim>
164 template <
int dim,
class VectorType,
int spacedim>
165 std::vector<Point<spacedim>>
170 const bool mg_vector =
210 std::vector<Vector<typename VectorType::value_type>> shift_vector(
213 std::vector<types::global_dof_index> dof_indices(
222 dof_cell->get_mg_dof_indices(dof_indices);
233 std::vector<Point<spacedim>> a(n_support_pts);
234 for (
unsigned int q = 0; q < n_support_pts; ++q)
237 for (
unsigned int d = 0;
d < spacedim; ++
d)
238 a[q](
d) += shift_vector[q](
d);
246 template <
int dim,
class VectorType,
int spacedim>
273 #include "mapping_q_eulerian.inst"
typename ActiveSelector::cell_iterator cell_iterator
@ update_quadrature_points
Transformed quadrature points.
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
static ::ExceptionBase & ExcInactiveCell()
virtual std::unique_ptr< Mapping< dim, spacedim > > clone() const override
virtual bool preserves_vertex_locations() const override
std::vector< Point< dim > > quadrature_points
SmartPointer< const DoFHandler< dim, spacedim >, MappingQEulerian< dim, VectorType, spacedim > > euler_dof_handler
@ update_values
Shape function values.
const MappingQEulerian< dim, VectorType, spacedim > & mapping_q_eulerian
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
const Point< dim > & point(const unsigned int i) const
MappingQEulerian(const unsigned int degree, const DoFHandler< dim, spacedim > &euler_dof_handler, const VectorType &euler_vector, const unsigned int level=numbers::invalid_unsigned_int)
std::shared_ptr< const MappingQGeneric< dim, spacedim > > qp_mapping
Threads::Mutex fe_values_mutex
SmartPointer< const VectorType, MappingQEulerian< dim, VectorType, spacedim > > euler_vector
SupportQuadrature(const unsigned int map_degree)
#define DEAL_II_NAMESPACE_OPEN
#define AssertDimension(dim1, dim2)
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
#define Assert(cond, exc)
static const unsigned int invalid_unsigned_int
virtual std::array< Point< spacedim >, GeometryInfo< dim >::vertices_per_cell > get_vertices(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
unsigned int size() const
FEValues< dim, spacedim > fe_values
#define DEAL_II_NAMESPACE_CLOSE
std::shared_ptr< const MappingQGeneric< dim, spacedim > > q1_mapping
virtual std::array< Point< spacedim >, GeometryInfo< dim >::vertices_per_cell > get_vertices(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
MappingQEulerianGeneric(const unsigned int degree, const MappingQEulerian< dim, VectorType, spacedim > &mapping_q_eulerian)
void copy(const T *begin, const T *end, U *dest)
virtual std::vector< Point< spacedim > > compute_mapping_support_points(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override