Loading [MathJax]/extensions/TeX/newcommand.js
 deal.II version GIT relicensing-2684-gc61376a70f 2025-02-22 15:30:00+00:00
\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\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
mapping_q1_eulerian.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2001 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_mapping_q1_eulerian_h
16#define dealii_mapping_q1_eulerian_h
17
18#include <deal.II/base/config.h>
19
21
23
25
26#include <boost/container/small_vector.hpp>
27
28#include <array>
29
31
32template <typename>
33class Vector;
34
35
95template <int dim, typename VectorType = Vector<double>, int spacedim = dim>
96class MappingQ1Eulerian : public MappingQ<dim, spacedim>
97{
98public:
113 MappingQ1Eulerian(const DoFHandler<dim, spacedim> &euler_dof_handler,
114 const VectorType &euler_vector);
115
122 virtual boost::container::small_vector<Point<spacedim>,
123#ifndef _MSC_VER
124 ReferenceCells::max_n_vertices<dim>()
125#else
127#endif
128 >
130 const override;
131
136 virtual std::unique_ptr<Mapping<dim, spacedim>>
137 clone() const override;
138
144 virtual bool
146
151
152
153
154protected:
166 const CellSimilarity::Similarity cell_similarity,
167 const Quadrature<dim> &quadrature,
168 const typename Mapping<dim, spacedim>::InternalDataBase &internal_data,
170 &output_data) const override;
171
178 virtual std::vector<Point<spacedim>>
181 const override;
182
186 ObserverPointer<const VectorType,
189
196};
197
200/*----------------------------------------------------------------------*/
201
202#ifndef DOXYGEN
203
204template <int dim, typename VectorType, int spacedim>
205inline bool
207{
208 return false;
209}
210
211#endif // DOXYGEN
212
214
215#endif
virtual bool preserves_vertex_locations() const override
ObserverPointer< const DoFHandler< dim, spacedim >, MappingQ1Eulerian< dim, VectorType, spacedim > > shiftmap_dof_handler
virtual std::vector< Point< spacedim > > compute_mapping_support_points(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
virtual std::unique_ptr< Mapping< dim, spacedim > > clone() const override
ObserverPointer< const VectorType, MappingQ1Eulerian< dim, VectorType, spacedim > > euler_transform_vectors
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 boost::container::small_vector< Point< spacedim >, ReferenceCells::max_n_vertices< dim >() > get_vertices(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:522
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:523
#define DeclException0(Exception0)
static ::ExceptionBase & ExcInactiveCell()