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\}}\)
Classes | Public Member Functions | Private Attributes | List of all members
MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric Class Reference
Inheritance diagram for MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric:
[legend]

Classes

class  SupportQuadrature
 

Public Member Functions

 MappingQEulerianGeneric (const unsigned int degree, const MappingQEulerian< dim, VectorType, spacedim > &mapping_q_eulerian)
 
virtual std::array< Point< spacedim >, GeometryInfo< dim >::vertices_per_cell > get_vertices (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
 
virtual std::vector< Point< spacedim > > compute_mapping_support_points (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const override
 
virtual bool preserves_vertex_locations () const override
 
- Public Member Functions inherited from MappingQGeneric< dim, spacedim >
 MappingQGeneric (const unsigned int polynomial_degree)
 
 MappingQGeneric (const MappingQGeneric< dim, spacedim > &mapping)
 
virtual std::unique_ptr< Mapping< dim, spacedim > > clone () const override
 
unsigned int get_degree () const
 
virtual Point< spacedim > transform_unit_to_real_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const Point< dim > &p) const override
 
virtual Point< dim > transform_real_to_unit_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const Point< spacedim > &p) const override
 
virtual void transform (const ArrayView< const Tensor< 1, dim >> &input, const MappingKind kind, const typename Mapping< dim, spacedim >::InternalDataBase &internal, const ArrayView< Tensor< 1, spacedim >> &output) const override
 
virtual void transform (const ArrayView< const DerivativeForm< 1, dim, spacedim >> &input, const MappingKind kind, const typename Mapping< dim, spacedim >::InternalDataBase &internal, const ArrayView< Tensor< 2, spacedim >> &output) const override
 
virtual void transform (const ArrayView< const Tensor< 2, dim >> &input, const MappingKind kind, const typename Mapping< dim, spacedim >::InternalDataBase &internal, const ArrayView< Tensor< 2, spacedim >> &output) const override
 
virtual void transform (const ArrayView< const DerivativeForm< 2, dim, spacedim >> &input, const MappingKind kind, const typename Mapping< dim, spacedim >::InternalDataBase &internal, const ArrayView< Tensor< 3, spacedim >> &output) const override
 
virtual void transform (const ArrayView< const Tensor< 3, dim >> &input, const MappingKind kind, const typename Mapping< dim, spacedim >::InternalDataBase &internal, const ArrayView< Tensor< 3, spacedim >> &output) const override
 
virtual UpdateFlags requires_update_flags (const UpdateFlags update_flags) const override
 
virtual std::unique_ptr< typename Mapping< dim, spacedim >::InternalDataBase > get_data (const UpdateFlags, const Quadrature< dim > &quadrature) const override
 
virtual std::unique_ptr< typename Mapping< dim, spacedim >::InternalDataBase > get_face_data (const UpdateFlags flags, const Quadrature< dim - 1 > &quadrature) const override
 
virtual std::unique_ptr< typename Mapping< dim, spacedim >::InternalDataBase > get_subface_data (const UpdateFlags flags, const Quadrature< dim - 1 > &quadrature) 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 void fill_fe_face_values (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const Quadrature< dim - 1 > &quadrature, const typename Mapping< dim, spacedim >::InternalDataBase &internal_data, ::internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &output_data) const override
 
virtual 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 override
 
- Public Member Functions inherited from Mapping< dim, dim >
virtual ~Mapping () override=default
 
virtual std::unique_ptr< Mapping< dim, spacedim > > clone () const=0
 
virtual Point< spacedim > get_center (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const bool map_center_of_reference_cell=true) const
 
virtual BoundingBox< spacedim > get_bounding_box (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
virtual bool preserves_vertex_locations () const=0
 
Point< dim - 1 > project_real_point_to_unit_point_on_face (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const Point< spacedim > &p) const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

const MappingQEulerian< dim, VectorType, spacedim > & mapping_q_eulerian
 
const SupportQuadrature support_quadrature
 
FEValues< dim, spacedim > fe_values
 
Threads::Mutex fe_values_mutex
 

Additional Inherited Members

- Static Public Member Functions inherited from Mapping< dim, dim >
static ::ExceptionBaseExcInvalidData ()
 
static ::ExceptionBaseExcTransformationFailed ()
 
static ::ExceptionBaseExcDistortedMappedCell (Point< spacedim > arg1, double arg2, int arg3)
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Protected Member Functions inherited from MappingQGeneric< dim, spacedim >
Point< dim > transform_real_to_unit_cell_internal (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const Point< spacedim > &p, const Point< dim > &initial_p_unit) const
 
virtual void add_line_support_points (const typename Triangulation< dim, spacedim >::cell_iterator &cell, std::vector< Point< spacedim >> &a) const
 
virtual void add_quad_support_points (const typename Triangulation< dim, spacedim >::cell_iterator &cell, std::vector< Point< spacedim >> &a) const
 
Point< 1 > transform_real_to_unit_cell_internal (const Triangulation< 1, 1 >::cell_iterator &cell, const Point< 1 > &p, const Point< 1 > &initial_p_unit) const
 
Point< 2 > transform_real_to_unit_cell_internal (const Triangulation< 2, 2 >::cell_iterator &cell, const Point< 2 > &p, const Point< 2 > &initial_p_unit) const
 
Point< 3 > transform_real_to_unit_cell_internal (const Triangulation< 3, 3 >::cell_iterator &cell, const Point< 3 > &p, const Point< 3 > &initial_p_unit) const
 
Point< 1 > transform_real_to_unit_cell_internal (const Triangulation< 1, 2 >::cell_iterator &cell, const Point< 2 > &p, const Point< 1 > &initial_p_unit) const
 
Point< 2 > transform_real_to_unit_cell_internal (const Triangulation< 2, 3 >::cell_iterator &cell, const Point< 3 > &p, const Point< 2 > &initial_p_unit) const
 
Point< 1 > transform_real_to_unit_cell_internal (const Triangulation< 1, 3 >::cell_iterator &, const Point< 3 > &, const Point< 1 > &) const
 
void add_quad_support_points (const Triangulation< 3, 3 >::cell_iterator &cell, std::vector< Point< 3 >> &a) const
 
void add_quad_support_points (const Triangulation< 2, 3 >::cell_iterator &cell, std::vector< Point< 3 >> &a) const
 
Interface with FEValues
- Protected Attributes inherited from MappingQGeneric< dim, spacedim >
const unsigned int polynomial_degree
 
QGaussLobatto< 1 > line_support_points
 
std::vector< Table< 2, double > > support_point_weights_perimeter_to_interior
 
Table< 2, doublesupport_point_weights_cell
 

Detailed Description

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
class MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric

A class derived from MappingQGeneric that provides the generic mapping with support points on boundary objects so that the corresponding Q3 mapping ends up being C1.

Definition at line 193 of file mapping_q_eulerian.h.

Constructor & Destructor Documentation

◆ MappingQEulerianGeneric()

template<int dim, class VectorType , int spacedim>
MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::MappingQEulerianGeneric ( const unsigned int  degree,
const MappingQEulerian< dim, VectorType, spacedim > &  mapping_q_eulerian 
)

Constructor.

Definition at line 48 of file mapping_q_eulerian.cc.

Member Function Documentation

◆ get_vertices()

template<int dim, class VectorType , int spacedim>
std::array< Point< spacedim >, GeometryInfo< dim >::vertices_per_cell > MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::get_vertices ( const typename Triangulation< dim, spacedim >::cell_iterator &  cell) const
overridevirtual

Return the mapped vertices of the cell. For the current class, this function does not use the support points from the geometry of the current cell but instead evaluates an externally given displacement field in addition to the geometry of the cell.

Reimplemented from Mapping< dim, dim >.

Definition at line 146 of file mapping_q_eulerian.cc.

◆ compute_mapping_support_points()

template<int dim, class VectorType , int spacedim>
std::vector< Point< spacedim > > MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::compute_mapping_support_points ( const typename Triangulation< dim, spacedim >::cell_iterator &  cell) const
overridevirtual

Compute the positions of the support points in the current configuration. See the documentation of MappingQGeneric::compute_mapping_support_points() for more information.

Reimplemented from MappingQGeneric< dim, spacedim >.

Definition at line 167 of file mapping_q_eulerian.cc.

◆ preserves_vertex_locations()

template<int dim, class VectorType , int spacedim>
bool MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::preserves_vertex_locations
overridevirtual

Always return false because MappingQEulerianGeneric does not in general preserve vertex locations (unless the translation vector happens to provide for zero displacements at vertex locations).

Reimplemented from MappingQGeneric< dim, spacedim >.

Definition at line 157 of file mapping_q_eulerian.cc.

Member Data Documentation

◆ mapping_q_eulerian

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
const MappingQEulerian<dim, VectorType, spacedim>& MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::mapping_q_eulerian
private

Reference to the surrounding object off of which we live.

Definition at line 235 of file mapping_q_eulerian.h.

◆ support_quadrature

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
const SupportQuadrature MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::support_quadrature
private

A member variable holding the quadrature points in the right order.

Definition at line 254 of file mapping_q_eulerian.h.

◆ fe_values

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
FEValues<dim, spacedim> MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::fe_values
mutableprivate

FEValues object used to query the given finite element field at the support points in the reference configuration.

The variable is marked as mutable since we have to call FEValues::reinit from compute_mapping_support_points, a function that is 'const'.

Definition at line 264 of file mapping_q_eulerian.h.

◆ fe_values_mutex

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
Threads::Mutex MappingQEulerian< dim, VectorType, spacedim >::MappingQEulerianGeneric::fe_values_mutex
mutableprivate

A variable to guard access to the fe_values variable.

Definition at line 269 of file mapping_q_eulerian.h.


The documentation for this class was generated from the following files: