Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
mapping_q1_eulerian.h
1 // ---------------------------------------------------------------------
2 // @f$Id: mapping_q1_eulerian.h 30036 2013-07-18 16:55:32Z maier @f$
3 //
4 // Copyright (C) 2001 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 #ifndef __deal2__mapping_q1_eulerian_h
18 #define __deal2__mapping_q1_eulerian_h
19 
20 #include <deal.II/base/config.h>
21 #include <deal.II/base/smartpointer.h>
22 #include <deal.II/fe/mapping_q1.h>
23 
25 
28 
91 template <int dim, class VECTOR = Vector<double>, int spacedim=dim >
92 class MappingQ1Eulerian : public MappingQ1<dim,spacedim>
93 {
94 public:
95 
119 
125  virtual
126  Mapping<dim,spacedim> *clone () const;
127 
136  bool preserves_vertex_locations () const;
137 
141  DeclException0 (ExcInactiveCell);
142 
143 
144 
145 protected:
152  virtual void
154  const Quadrature<dim> &quadrature,
155  typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
156  typename std::vector<Point<spacedim> > &quadrature_points,
157  std::vector<double> &JxW_values,
158  std::vector<DerivativeForm<1,dim,spacedim> > &jacobians,
159  std::vector<DerivativeForm<2,dim,spacedim> > &jacobian_grads,
160  std::vector<DerivativeForm<1,spacedim,dim> > &inverse_jacobians,
161  std::vector<Point<spacedim> > &cell_normal_vectors,
162  CellSimilarity::Similarity &cell_similarity) const;
163 
169 
176 
177 
178 private:
185  virtual void compute_mapping_support_points(
186  const typename Triangulation<dim,spacedim>::cell_iterator &cell,
187  std::vector<Point<spacedim> > &a) const;
188 
189 };
190 
193 /*----------------------------------------------------------------------*/
194 
195 #ifndef DOXYGEN
196 
197 template <int dim, class VECTOR, int spacedim>
198 inline
199 bool
201 {
202  return false;
203 }
204 
205 #endif // DOXYGEN
206 
207 DEAL_II_NAMESPACE_CLOSE
208 
209 #endif
virtual Mapping< dim, spacedim > * clone() const
virtual void fill_fe_values(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const Quadrature< dim > &quadrature, typename Mapping< dim, spacedim >::InternalDataBase &mapping_data, typename std::vector< Point< spacedim > > &quadrature_points, std::vector< double > &JxW_values, std::vector< DerivativeForm< 1, dim, spacedim > > &jacobians, std::vector< DerivativeForm< 2, dim, spacedim > > &jacobian_grads, std::vector< DerivativeForm< 1, spacedim, dim > > &inverse_jacobians, std::vector< Point< spacedim > > &cell_normal_vectors, CellSimilarity::Similarity &cell_similarity) const
DeclException0(ExcInactiveCell)
MappingQ1Eulerian(const VECTOR &euler_transform_vectors, const DoFHandler< dim, spacedim > &shiftmap_dof_handler)
SmartPointer< const DoFHandler< dim, spacedim >, MappingQ1Eulerian< dim, VECTOR, spacedim > > shiftmap_dof_handler
virtual void compute_mapping_support_points(const typename Triangulation< dim, spacedim >::cell_iterator &cell, std::vector< Point< spacedim > > &a) const
SmartPointer< const VECTOR, MappingQ1Eulerian< dim, VECTOR, spacedim > > euler_transform_vectors
bool preserves_vertex_locations() const