dune-alugrid  3.0.0
mappings.hh
Go to the documentation of this file.
1 #ifndef DUNE_ALU3DGRIDMAPPINGS_HH
2 #define DUNE_ALU3DGRIDMAPPINGS_HH
3 
4 // System includes
5 #include <limits>
6 #include <cmath>
7 
8 // Dune includes
9 #include <dune/common/fvector.hh>
10 #include <dune/common/fmatrix.hh>
11 #include <dune/common/exceptions.hh>
12 
13 // Local includes
14 #include "alu3dinclude.hh"
15 
16 namespace Dune {
17 
18  static const alu3d_ctype ALUnumericEpsilon = 10.0 * std::numeric_limits< alu3d_ctype >::epsilon();
19 
20  template<int mydim, int coorddim, class GridImp>
21  class ALU3dGridGeometry;
22 
23  template<int dim, int dimworld, ALU3dGridElementType, class >
24  class ALU3dGrid;
25 
29  {
30  public:
31  typedef alu3d_ctype double_t[3];
32  typedef FieldVector<alu3d_ctype, 3> coord_t;
33  typedef FieldMatrix<alu3d_ctype, 3, 3> mat_t;
34  private:
35  static const double _epsilon ;
36 
37  // the internal mapping
38  alu3d_ctype a [8][3] ;
39  mat_t Df;
40  mat_t Dfi;
41  mat_t invTransposed_;
42  alu3d_ctype DetDf ;
43 
44  bool calcedDet_;
45  bool calcedLinear_;
46  bool calcedInv_;
47  bool affine_;
48 
49  void linear (const alu3d_ctype, const alu3d_ctype, const alu3d_ctype) ;
50  void linear (const coord_t&) ;
51  void inverse (const coord_t&) ;
52  public :
53  TrilinearMapping (const coord_t&, const coord_t&,
54  const coord_t&, const coord_t&,
55  const coord_t&, const coord_t&,
56  const coord_t&, const coord_t&);
57 
58  // only to call from geometry class
60 
62 
64  alu3d_ctype det (const coord_t&) ;
66  const mat_t& jacobianTransposed(const coord_t&);
67  void map2world (const coord_t&, coord_t&) const ;
68  void map2world (const alu3d_ctype , const alu3d_ctype , const alu3d_ctype ,
69  coord_t&) const ;
70  void world2map (const coord_t&, coord_t&) ;
71 
72  template <class vector_t>
73  void buildMapping(const vector_t&, const vector_t&,
74  const vector_t&, const vector_t&,
75  const vector_t&, const vector_t&,
76  const vector_t&, const vector_t&);
77 
78  // returns true if mapping is affine
79  inline bool affine () const { return affine_; }
80  };
81 
83  // NOTE: this class is different to the BilinearSurfaceMapping in
84  // ALUGrid, for example the reference elements differ
85  // here we have [0,1]^2 and in ALUGrid its [-1,1]^2
86  // also the point numbering is different
88  {
89  public:
90  // our coordinate types
91  typedef FieldVector<alu3d_ctype, 3> coord3_t;
92  typedef FieldVector<alu3d_ctype, 2> coord2_t;
93 
94  // type of coordinate vectors from elements
95  typedef alu3d_ctype double3_t[3];
96  protected:
97 
98  alu3d_ctype _n [3][3] ;
99 
100  static const double _epsilon ;
101 
102  bool _affine;
103 
104  public :
107 
110 
111  // returns true if mapping is affine
112  inline bool affine () const { return _affine ; }
113 
114  // calcuates normal
115  void normal(const coord2_t&, coord3_t&) const ;
116  void normal(const alu3d_ctype, const alu3d_ctype, coord3_t&)const;
117 
118  void negativeNormal(const coord2_t&, coord3_t&) const ;
119  void negativeNormal(const alu3d_ctype, const alu3d_ctype, coord3_t&)const;
120 
121  public:
122  // builds _b and _n, called from the constructors
123  // public because also used in faceutility
124  template <class vector_t>
125  void buildMapping (const vector_t & , const vector_t & ,
126  const vector_t & , const vector_t & );
127  protected:
128  // builds _b and _n, called from the constructors
129  // public because also used in faceutility
130  template <class vector_t>
131  void buildMapping (const vector_t & , const vector_t & ,
132  const vector_t & , const vector_t & ,
133  alu3d_ctype (&_b)[4][3] );
134  } ;
135 
136 
138  // NOTE: this class is different to the BilinearSurfaceMapping in
139  // ALUGrid, for example the reference elements differ
140  // here we have [0,1]^2 and in ALUGrid its [-1,1]^2
141  // also the point numbering is different
143  {
144  protected:
146 
147  using BaseType :: _n;
148  static const double _epsilon;
149 
150  // our coordinate types
151  typedef FieldVector<alu3d_ctype, 3> coord3_t;
152  typedef FieldVector<alu3d_ctype, 2> coord2_t;
153 
154  // type of coordinate vectors from elements
155  typedef alu3d_ctype double3_t[3];
156 
157  // type for helper matrices
158  typedef FieldMatrix<alu3d_ctype,3,3> mat3_t;
159 
160  // type for inverse matrices
161  typedef FieldMatrix<alu3d_ctype,2,3> matrix_t;
162 
163  // type for inverse matrices
164  typedef FieldMatrix<alu3d_ctype,3,2> inv_t;
165 
166  alu3d_ctype _b [4][3] ;
167 
168  mutable mat3_t Df,Dfi;
170  mutable matrix_t matrix_;
172 
173  mutable coord3_t normal_;
174  mutable coord3_t tmp_;
175 
176  mutable bool _calcedInv;
177  mutable bool _calcedTransposed;
178  mutable bool _calcedMatrix;
179 
180  public :
183 
185  BilinearSurfaceMapping (const coord3_t&, const coord3_t&,
186  const coord3_t&, const coord3_t&) ;
188  BilinearSurfaceMapping (const double3_t &, const double3_t &,
189  const double3_t &, const double3_t &) ;
192 
193  void inverse (const coord3_t&) const;
194  const inv_t& jacobianInverseTransposed(const coord2_t&) const ;
195 
196  const matrix_t& jacobianTransposed(const coord2_t&) const ;
197 
198  // calculates determinant of face mapping using the normal
199  alu3d_ctype det(const coord2_t&) const;
200 
201  // maps from local coordinates to global coordinates
202  void world2map(const coord3_t &, coord2_t & ) const;
203 
204  // maps form global coordinates to local (within reference element)
205  // coordinates
206  void map2world(const coord2_t&, coord3_t&) const ;
207  void map2world(const alu3d_ctype ,const alu3d_ctype , coord3_t&) const ;
208 
209  private:
210  void map2worldnormal(const alu3d_ctype, const alu3d_ctype, const alu3d_ctype , coord3_t&)const;
211  void map2worldlinear(const alu3d_ctype, const alu3d_ctype, const alu3d_ctype ) const;
212 
213  public:
214  // builds _b and _n, called from the constructors
215  // public because also used in faceutility
216  template <class vector_t>
217  void buildMapping (const vector_t & , const vector_t & ,
218  const vector_t & , const vector_t & );
219  } ;
220 
221 
222 
224  template< int cdim >
226  {
227  public:
229 
230  typedef FieldVector< ctype, cdim > world_t;
231  typedef FieldVector< ctype, 2 > map_t;
232 
233  typedef FieldMatrix< ctype, 2, cdim > matrix_t;
234  typedef FieldMatrix< ctype, cdim, 2 > inv_t;
235 
236  protected:
237  ctype _b [4][cdim];
238 
239  mutable ctype det_;
240  mutable matrix_t matrix_;
242 
243  mutable bool affine_;
244  mutable bool calcedMatrix_;
245  mutable bool calcedDet_;
246  mutable bool calcedInv_;
247 
248  public:
249  BilinearMapping ();
250  BilinearMapping ( const world_t &p0, const world_t &p1,
251  const world_t &p2, const world_t &p3 );
252  BilinearMapping ( const ctype (&p0)[ cdim ], const ctype (&p1)[ cdim ],
253  const ctype (&p2)[ cdim ], const ctype (&p3)[ cdim ] );
254 
255  bool affine () const;
256 
257  void world2map ( const world_t &, map_t & ) const;
258  void map2world ( const ctype x, const ctype y, world_t &w ) const;
259  void map2world ( const map_t &, world_t & ) const;
260 
261  ctype det ( const map_t & ) const;
262 
263  const matrix_t &jacobianTransposed ( const map_t & ) const;
264  const inv_t &jacobianInverseTransposed ( const map_t & ) const;
265 
266  template< class vector_t >
267  void buildMapping ( const vector_t &, const vector_t &,
268  const vector_t &, const vector_t & );
269 
270  protected:
271  static void multTransposedMatrix ( const matrix_t &, FieldMatrix< ctype, 2, 2 > & );
272  static void multMatrix ( const matrix_t &, const FieldMatrix< ctype, 2, 2 > &, inv_t & );
273 
274  void map2worldlinear ( const ctype, const ctype ) const;
275  void inverse ( const map_t & ) const;
276  };
277 
278 
279 
281  template< int cdim, int mydim >
283  {
284  public:
286 
287  typedef ctype double_t[ cdim ];
288 
289  typedef FieldVector< ctype, cdim > world_t;
290  typedef FieldVector< ctype, mydim > map_t;
291 
292  typedef FieldMatrix< ctype, mydim, cdim > matrix_t;
293  typedef FieldMatrix< ctype, cdim, mydim > inv_t;
294 
295  protected:
299 
301  mutable ctype _det;
302 
304  mutable bool _calcedInv;
305 
307  mutable bool _calcedDet;
308 
309  public:
311  LinearMapping ();
312 
314  LinearMapping (const LinearMapping &) ;
315 
316  // returns true if mapping is affine (which is always true)
317  inline bool affine () const { return true ; }
318 
319  // return reference to transposed jacobian
320  const matrix_t& jacobianTransposed(const map_t &) const ;
321 
322  // return reference to transposed jacobian inverse
323  const inv_t& jacobianInverseTransposed(const map_t &) const ;
324 
325  // calculates determinant of mapping
326  ctype det(const map_t&) const;
327 
328  // maps from local coordinates to global coordinates
329  void world2map(const world_t &, map_t &) const;
330 
331  // maps form global coordinates to local (within reference element)
332  // coordinates
333  void map2world(const map_t &, world_t &) const ;
334 
335  protected:
336  // calculate inverse
337  void inverse (const map_t&) const;
338 
339  // calculate inverse one codim one entity
340  void inverseCodimOne (const map_t&) const;
341 
342  // calculate determinant
343  void calculateDeterminant (const map_t&) const;
344 
345  void multTransposedMatrix(const matrix_t& matrix,
346  FieldMatrix<ctype, mydim, mydim>& result) const;
347 
348  void multMatrix ( const matrix_t& A,
349  const FieldMatrix< ctype, mydim, mydim> &B,
350  inv_t& ret ) const ;
351 
352  public:
353  // builds _b and _n, called from the constructors
354  // public because also used in faceutility
355  template <class vector_t>
356  void buildMapping (const vector_t & , const vector_t & ,
357  const vector_t & , const vector_t & );
358 
359  // builds _b and _n, called from the constructors
360  // public because also used in faceutility
361  template <class vector_t>
362  void buildMapping (const vector_t & , const vector_t & ,
363  const vector_t & );
364 
365  // builds _b and _n, called from the constructors
366  // public because also used in faceutility
367  template <class vector_t>
368  void buildMapping (const vector_t & , const vector_t & );
369 
370  template <class vector_t>
371  void buildMapping (const vector_t & );
372  } ;
373 
374 
376  //
377  // NonConforming Mappings
378  //
380 
381 
384  template< int dim, int dimworld, ALU3dGridElementType type, class Comm >
386 
388  template< int dim, int dimworld, class Comm >
389  class NonConformingFaceMapping< dim, dimworld, tetra, Comm >
390  {
391  public:
392  typedef FieldVector< alu3d_ctype, 3 > CoordinateType;
394 
396  : rule_( rule ), nChild_( nChild )
397  {}
398 
399  void child2parent ( const CoordinateType &childCoordinates,
400  CoordinateType &parentCoordinates) const;
401 
402  CoordinateType child2parent ( const FieldVector< alu3d_ctype, 2 > &childCoordinates ) const;
403 
404  private:
405  void child2parentNosplit(const CoordinateType& childCoordinates,
406  CoordinateType& parentCoordinates) const;
407  void child2parentE01(const CoordinateType& childCoordinates,
408  CoordinateType& parentCoordinates) const;
409  void child2parentE12(const CoordinateType& childCoordinates,
410  CoordinateType& parentCoordinates) const;
411  void child2parentE20(const CoordinateType& childCoordinates,
412  CoordinateType& parentCoordinates) const;
413  void child2parentIso4(const CoordinateType& childCoordinates,
414  CoordinateType& parentCoordinates) const;
415 
416  RefinementRuleType rule_;
417  int nChild_;
418  };
419 
421  template< int dim, int dimworld, class Comm >
422  class NonConformingFaceMapping< dim, dimworld, hexa, Comm >
423  {
424  public:
425  typedef FieldVector< alu3d_ctype, 2 > CoordinateType;
427 
429  : rule_( rule ), nChild_( nChild )
430  {}
431 
432  void child2parent ( const CoordinateType &childCoordinates,
433  CoordinateType &parentCoordinates) const;
434 
435  CoordinateType child2parent ( const FieldVector< alu3d_ctype, 2 > &childCoordinates ) const;
436 
437  private:
438  void child2parentNosplit(const CoordinateType& childCoordinates,
439  CoordinateType& parentCoordinates) const;
440  void child2parentIso4(const CoordinateType& childCoordinates,
441  CoordinateType& parentCoordinates) const;
442 
443  RefinementRuleType rule_;
444  int nChild_;
445  };
446 
447 } // end namespace Dune
448 
449 #if COMPILE_ALUGRID_INLINE
450  #include "mappings_imp.cc"
451 #endif
452 #endif
Dune::BilinearSurfaceMapping::_calcedInv
bool _calcedInv
Definition: mappings.hh:176
Dune::BilinearMapping::affine_
bool affine_
Definition: mappings.hh:243
Dune::BilinearSurfaceMapping::coord2_t
FieldVector< alu3d_ctype, 2 > coord2_t
Definition: mappings.hh:152
Dune::TrilinearMapping::~TrilinearMapping
~TrilinearMapping()
Definition: mappings.hh:63
Dune::BilinearSurfaceMapping::matrix_
matrix_t matrix_
Definition: mappings.hh:170
mappings_imp.cc
Dune::SurfaceNormalCalculator::coord3_t
FieldVector< alu3d_ctype, 3 > coord3_t
Definition: mappings.hh:91
Dune::LinearMapping::jacobianTransposed
const matrix_t & jacobianTransposed(const map_t &) const
Definition: mappings_imp.cc:1271
Dune::BilinearMapping::_b
ctype _b[4][cdim]
Definition: mappings.hh:237
Dune::LinearMapping::buildMapping
void buildMapping(const vector_t &, const vector_t &, const vector_t &, const vector_t &)
Dune::BilinearSurfaceMapping::world2map
void world2map(const coord3_t &, coord2_t &) const
Definition: mappings_imp.cc:560
Dune::BilinearMapping::affine
bool affine() const
Definition: mappings_imp.cc:631
Dune::SurfaceNormalCalculator::_epsilon
static const double _epsilon
Definition: mappings.hh:100
Dune::BilinearSurfaceMapping::inv_t
FieldMatrix< alu3d_ctype, 3, 2 > inv_t
Definition: mappings.hh:164
Dune::BilinearMapping::ctype
alu3d_ctype ctype
Definition: mappings.hh:228
Dune::LinearMapping::det
ctype det(const map_t &) const
Definition: mappings_imp.cc:1257
Dune::hexa
Definition: topology.hh:12
Dune::LinearMapping::multTransposedMatrix
void multTransposedMatrix(const matrix_t &matrix, FieldMatrix< ctype, mydim, mydim > &result) const
Definition: mappings_imp.cc:1173
Dune::BilinearMapping::BilinearMapping
BilinearMapping()
Definition: mappings_imp.cc:600
Dune::BilinearSurfaceMapping
A bilinear surface mapping.
Definition: mappings.hh:142
Dune::SurfaceNormalCalculator::~SurfaceNormalCalculator
~SurfaceNormalCalculator()
Definition: mappings.hh:109
Dune::BilinearMapping::matrix_
matrix_t matrix_
Definition: mappings.hh:240
Dune::BilinearSurfaceMapping::matrix_t
FieldMatrix< alu3d_ctype, 2, 3 > matrix_t
Definition: mappings.hh:161
Dune::LinearMapping::ctype
alu3d_ctype ctype
Definition: mappings.hh:285
Dune::SurfaceNormalCalculator::_affine
bool _affine
Definition: mappings.hh:102
Dune::BilinearSurfaceMapping::_calcedMatrix
bool _calcedMatrix
Definition: mappings.hh:178
Dune::ALU3dImplTraits
Definition: alu3dinclude.hh:259
Dune::ALUnumericEpsilon
static const alu3d_ctype ALUnumericEpsilon
Definition: mappings.hh:18
Dune::BilinearMapping::world_t
FieldVector< ctype, cdim > world_t
Definition: mappings.hh:230
Dune::tetra
Definition: topology.hh:12
Dune::LinearMapping::double_t
ctype double_t[cdim]
Definition: mappings.hh:287
Dune::NonConformingFaceMapping< dim, dimworld, hexa, Comm >::CoordinateType
FieldVector< alu3d_ctype, 2 > CoordinateType
Definition: mappings.hh:425
Dune::BilinearSurfaceMapping::~BilinearSurfaceMapping
~BilinearSurfaceMapping()
Definition: mappings.hh:191
Dune::BilinearMapping::map2world
void map2world(const ctype x, const ctype y, world_t &w) const
Definition: mappings_imp.cc:645
Dune::LinearMapping::map_t
FieldVector< ctype, mydim > map_t
Definition: mappings.hh:290
Dune::BilinearMapping::multMatrix
static void multMatrix(const matrix_t &, const FieldMatrix< ctype, 2, 2 > &, inv_t &)
Definition: mappings_imp.cc:790
Dune::NonConformingFaceMapping< dim, dimworld, hexa, Comm >::RefinementRuleType
ALU3dImplTraits< hexa, Comm >::HfaceRuleType RefinementRuleType
Definition: mappings.hh:426
Dune::LinearMapping::inverseCodimOne
void inverseCodimOne(const map_t &) const
Definition: mappings_imp.cc:1119
Dune::TrilinearMapping::jacobianInverseTransposed
const mat_t & jacobianInverseTransposed(const coord_t &)
Definition: mappings_imp.cc:93
Dune::BilinearSurfaceMapping::jacobianTransposed
const matrix_t & jacobianTransposed(const coord2_t &) const
Definition: mappings_imp.cc:475
Dune::BilinearMapping::matrix_t
FieldMatrix< ctype, 2, cdim > matrix_t
Definition: mappings.hh:233
Dune::NonConformingFaceMapping< dim, dimworld, tetra, Comm >::CoordinateType
FieldVector< alu3d_ctype, 3 > CoordinateType
Definition: mappings.hh:392
Dune::NonConformingFaceMapping
Definition: mappings.hh:385
Dune::BilinearMapping::map_t
FieldVector< ctype, 2 > map_t
Definition: mappings.hh:231
Dune::NonConformingFaceMapping< dim, dimworld, hexa, Comm >::NonConformingFaceMapping
NonConformingFaceMapping(RefinementRuleType rule, int nChild)
Definition: mappings.hh:428
Dune::LinearMapping::world_t
FieldVector< ctype, cdim > world_t
Definition: mappings.hh:289
Dune::SurfaceNormalCalculator::SurfaceNormalCalculator
SurfaceNormalCalculator()
Constructor creating empty mapping with double , i.e. zero.
Definition: mappings_imp.cc:253
Dune::LinearMapping::_calcedDet
bool _calcedDet
true if determinant has been calculated
Definition: mappings.hh:307
Dune::BilinearSurfaceMapping::jacobianInverseTransposed
const inv_t & jacobianInverseTransposed(const coord2_t &) const
Definition: mappings_imp.cc:533
Dune::NonConformingFaceMapping< dim, dimworld, tetra, Comm >::RefinementRuleType
ALU3dImplTraits< tetra, Comm >::HfaceRuleType RefinementRuleType
Definition: mappings.hh:393
Dune::BilinearMapping::jacobianTransposed
const matrix_t & jacobianTransposed(const map_t &) const
Definition: mappings_imp.cc:733
Dune::alu3d_ctype
double alu3d_ctype
Definition: alu3dinclude.hh:85
Dune::LinearMapping::map2world
void map2world(const map_t &, world_t &) const
Definition: mappings_imp.cc:1027
alu3dinclude.hh
Dune::TrilinearMapping::double_t
alu3d_ctype double_t[3]
Definition: mappings.hh:31
Dune::SurfaceNormalCalculator::buildMapping
void buildMapping(const vector_t &, const vector_t &, const vector_t &, const vector_t &)
Dune::TrilinearMapping::map2world
void map2world(const coord_t &, coord_t &) const
Definition: mappings_imp.cc:112
Dune::SurfaceNormalCalculator::double3_t
alu3d_ctype double3_t[3]
Definition: mappings.hh:95
Dune::TrilinearMapping::TrilinearMapping
TrilinearMapping()
Definition: mappings.hh:59
Dune::BilinearSurfaceMapping::det
alu3d_ctype det(const coord2_t &) const
Definition: mappings_imp.cc:498
Dune::LinearMapping::_det
ctype _det
P[0].
Definition: mappings.hh:301
Dune::LinearMapping::jacobianInverseTransposed
const inv_t & jacobianInverseTransposed(const map_t &) const
Definition: mappings_imp.cc:1279
Dune::BilinearSurfaceMapping::coord3_t
FieldVector< alu3d_ctype, 3 > coord3_t
Definition: mappings.hh:151
Dune::LinearMapping::multMatrix
void multMatrix(const matrix_t &A, const FieldMatrix< ctype, mydim, mydim > &B, inv_t &ret) const
Definition: mappings_imp.cc:1192
Dune::LinearMapping::_calcedInv
bool _calcedInv
true if inverse has been calculated
Definition: mappings.hh:304
Dune::TrilinearMapping::mat_t
FieldMatrix< alu3d_ctype, 3, 3 > mat_t
Definition: mappings.hh:33
Dune::SurfaceNormalCalculator::_n
alu3d_ctype _n[3][3]
Definition: mappings.hh:98
Dune::LinearMapping::_matrix
matrix_t _matrix
transformation matrix (transposed)
Definition: mappings.hh:296
Dune::NonConformingFaceMapping< dim, dimworld, tetra, Comm >::NonConformingFaceMapping
NonConformingFaceMapping(RefinementRuleType rule, int nChild)
Definition: mappings.hh:395
Dune::BilinearMapping
A bilinear mapping.
Definition: mappings.hh:225
Dune::SurfaceNormalCalculator::affine
bool affine() const
Definition: mappings.hh:112
Dune::TrilinearMapping::world2map
void world2map(const coord_t &, coord_t &)
Definition: mappings_imp.cc:219
Dune::LinearMapping::world2map
void world2map(const world_t &, map_t &) const
Definition: mappings_imp.cc:1039
Dune::SurfaceNormalCalculator::coord2_t
FieldVector< alu3d_ctype, 2 > coord2_t
Definition: mappings.hh:92
Dune::BilinearSurfaceMapping::inverse
void inverse(const coord3_t &) const
Definition: mappings_imp.cc:507
Dune::TrilinearMapping::affine
bool affine() const
Definition: mappings.hh:79
Dune::LinearMapping::calculateDeterminant
void calculateDeterminant(const map_t &) const
Definition: mappings_imp.cc:1084
Dune::SurfaceNormalCalculator
A bilinear surface mapping.
Definition: mappings.hh:87
Dune::BilinearMapping::world2map
void world2map(const world_t &, map_t &) const
Definition: mappings_imp.cc:654
Dune::SurfaceNormalCalculator::negativeNormal
void negativeNormal(const coord2_t &, coord3_t &) const
Definition: mappings_imp.cc:348
Dune::ALU3dGrid
[ provides Dune::Grid ]
Definition: communication.hh:37
Dune::BilinearMapping::det
ctype det(const map_t &) const
Definition: mappings_imp.cc:686
Dune::LinearMapping::affine
bool affine() const
Definition: mappings.hh:317
Dune::BilinearSurfaceMapping::DetDf
alu3d_ctype DetDf
Definition: mappings.hh:171
Dune::TrilinearMapping::coord_t
FieldVector< alu3d_ctype, 3 > coord_t
Definition: mappings.hh:32
Dune::BilinearMapping::calcedDet_
bool calcedDet_
Definition: mappings.hh:245
Dune::ALU3dGridGeometry
Definition: entity.hh:28
Dune::BilinearMapping::calcedInv_
bool calcedInv_
Definition: mappings.hh:246
Dune::LinearMapping::_invTransposed
inv_t _invTransposed
storage for inverse of jacobian (transposed)
Definition: mappings.hh:297
Dune::BilinearSurfaceMapping::normal_
coord3_t normal_
Definition: mappings.hh:173
Dune::SurfaceNormalCalculator::normal
void normal(const coord2_t &, coord3_t &) const
Definition: mappings_imp.cc:333
Dune::TrilinearMapping
Definition: mappings.hh:28
Dune::BilinearSurfaceMapping::_b
alu3d_ctype _b[4][3]
Definition: mappings.hh:166
Dune::BilinearMapping::det_
ctype det_
Definition: mappings.hh:239
Dune::BilinearSurfaceMapping::Dfi
mat3_t Dfi
Definition: mappings.hh:168
Dune::BilinearMapping::calcedMatrix_
bool calcedMatrix_
Definition: mappings.hh:244
Dune::BilinearMapping::buildMapping
void buildMapping(const vector_t &, const vector_t &, const vector_t &, const vector_t &)
Dune::BilinearSurfaceMapping::BilinearSurfaceMapping
BilinearSurfaceMapping()
Constructor creating empty mapping with double , i.e. zero.
Definition: mappings_imp.cc:369
Dune::TrilinearMapping::buildMapping
void buildMapping(const vector_t &, const vector_t &, const vector_t &, const vector_t &, const vector_t &, const vector_t &, const vector_t &, const vector_t &)
Dune::BilinearSurfaceMapping::tmp_
coord3_t tmp_
Definition: mappings.hh:174
Dune::BilinearMapping::invTransposed_
inv_t invTransposed_
Definition: mappings.hh:241
Dune::BilinearSurfaceMapping::double3_t
alu3d_ctype double3_t[3]
Definition: mappings.hh:155
Dune::BilinearMapping::jacobianInverseTransposed
const inv_t & jacobianInverseTransposed(const map_t &) const
Definition: mappings_imp.cc:742
Dune::BilinearMapping::inverse
void inverse(const map_t &) const
Definition: mappings_imp.cc:826
Dune::BilinearSurfaceMapping::_calcedTransposed
bool _calcedTransposed
Definition: mappings.hh:177
Dune::BilinearMapping::multTransposedMatrix
static void multTransposedMatrix(const matrix_t &, FieldMatrix< ctype, 2, 2 > &)
Definition: mappings_imp.cc:774
Dune::LinearMapping::inv_t
FieldMatrix< ctype, cdim, mydim > inv_t
Definition: mappings.hh:293
Dune::BilinearMapping::inv_t
FieldMatrix< ctype, cdim, 2 > inv_t
Definition: mappings.hh:234
Dune::LinearMapping::inverse
void inverse(const map_t &) const
Definition: mappings_imp.cc:1054
Dune::BilinearSurfaceMapping::mat3_t
FieldMatrix< alu3d_ctype, 3, 3 > mat3_t
Definition: mappings.hh:158
Dune::LinearMapping::LinearMapping
LinearMapping()
Constructor creating empty mapping with double , i.e. zero.
Definition: mappings_imp.cc:853
Dune::BilinearSurfaceMapping::Df
mat3_t Df
Definition: mappings.hh:168
Dune::BilinearSurfaceMapping::invTransposed_
inv_t invTransposed_
Definition: mappings.hh:169
Dune::BilinearSurfaceMapping::_epsilon
static const double _epsilon
Definition: mappings.hh:148
Dune::BilinearSurfaceMapping::BaseType
SurfaceNormalCalculator BaseType
Definition: mappings.hh:145
Dune::BilinearMapping::map2worldlinear
void map2worldlinear(const ctype, const ctype) const
Definition: mappings_imp.cc:800
Dune
Definition: alu3dinclude.hh:79
Dune::TrilinearMapping::det
alu3d_ctype det(const coord_t &)
Definition: mappings_imp.cc:167
Dune::BilinearSurfaceMapping::map2world
void map2world(const coord2_t &, coord3_t &) const
Definition: mappings_imp.cc:423
Dune::LinearMapping
A linear mapping.
Definition: mappings.hh:282
Dune::LinearMapping::matrix_t
FieldMatrix< ctype, mydim, cdim > matrix_t
Definition: mappings.hh:292
Dune::BilinearSurfaceMapping::buildMapping
void buildMapping(const vector_t &, const vector_t &, const vector_t &, const vector_t &)
Dune::LinearMapping::_p0
world_t _p0
Definition: mappings.hh:298
Dune::TrilinearMapping::jacobianTransposed
const mat_t & jacobianTransposed(const coord_t &)
Definition: mappings_imp.cc:86