dune-geometry
2.2.0
|
00001 // -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 // vi: set et ts=8 sw=2 sts=2: 00003 00004 #ifndef DUNE_GEOMETRY_MOCKGEOMETRY_HH 00005 #define DUNE_GEOMETRY_MOCKGEOMETRY_HH 00006 00007 #include <cstddef> 00008 00009 #include <dune/common/fmatrix.hh> 00010 #include <dune/geometry/type.hh> 00011 #include <dune/geometry/genericgeometry/geometry.hh> 00012 #include <dune/geometry/genericgeometry/geometrytraits.hh> 00013 00014 namespace Dune { 00015 00017 00031 template<class ctype, std::size_t mydim, std::size_t coorddim> 00032 class MockGeometry : 00033 public GenericGeometry::BasicGeometry< 00034 mydim, GenericGeometry::DefaultGeometryTraits<ctype, coorddim, coorddim> 00035 > 00036 { 00037 typedef GenericGeometry::DefaultGeometryTraits<ctype, coorddim, coorddim> 00038 Traits; 00039 typedef GenericGeometry::BasicGeometry<mydim, Traits> Base; 00040 00041 // Hide members of BasicGeometry that are not part of Dune::Geometry 00042 using typename Base::JacobianInverseTransposed; 00043 00044 public: 00046 typedef FieldMatrix<ctype, coorddim, mydim> Jacobian; 00048 typedef FieldMatrix<ctype, mydim, coorddim> JacobianTransposed; 00049 00051 MockGeometry() {} 00053 template<class CoordVector> 00054 MockGeometry(const GeometryType &type, const CoordVector &coords) : 00055 Base(type, coords) 00056 { } 00058 template<int fatherdim> 00059 MockGeometry(const MockGeometry<ctype, fatherdim, coorddim> &father, 00060 int i) : 00061 Base(static_cast<const GenericGeometry::BasicGeometry< 00062 fatherdim, 00063 GenericGeometry::DefaultGeometryTraits<ctype, coorddim, coorddim> 00064 > &>(father), 00065 i) 00066 { } 00067 00069 JacobianTransposed jacobianTransposed 00070 (const typename Base::LocalCoordinate &local) const 00071 { return Base::jacobianTransposed(local); } 00073 Jacobian jacobianInverseTransposed 00074 (const typename Base::LocalCoordinate &local) const 00075 { return Base::jacobianInverseTransposed(local); } 00076 }; 00077 00078 } // namespace Dune 00079 00080 #endif // DUNE_GEOMETRY_MOCKGEOMETRY_HH