MathTL
|
00001 // -*- c++ -*- 00002 00003 // +--------------------------------------------------------------------+ 00004 // | This file is part of MathTL - the Mathematical Template Library | 00005 // | | 00006 // | Copyright (c) 2002-2009 | 00007 // | Thorsten Raasch, Manuel Werner | 00008 // +--------------------------------------------------------------------+ 00009 00010 #ifndef _MATHTL_RING_CHART_H 00011 #define _MATHTL_RING_CHART_H 00012 00013 #include <geometry/chart.h> 00014 00015 using std::string; 00016 00017 namespace MathTL 00018 { 00028 class RingChart 00029 : public Chart<2,2> 00030 { 00031 public: 00033 RingChart(const double r0, const double r1); 00034 00036 virtual ~RingChart(); 00037 00039 void map_point(const Point<2>& x, Point<2>& y) const; 00040 00042 double map_point(const double, const int) const { return 0; } 00043 00045 void map_point_inv(const Point<2>& x, Point<2>& y) const; 00046 00048 double map_point_inv(const double, const int) const { return 0; } 00049 00054 const double Gram_factor(const Point<2>& x) const; 00055 00060 const double Gram_D_factor(const unsigned int i, 00061 const Point<2>& x) const; 00062 00064 const double Dkappa_inv(const unsigned int i, 00065 const unsigned int j, 00066 const Point<2>& x) const; 00067 00069 const bool in_patch(const Point<2>& x) const; 00070 00072 const double a_i(const int i) const { return 1.0; }; 00073 00075 const string to_string() const; 00076 00077 protected: 00078 double r0_, r1_; 00079 }; 00080 00081 } 00082 00083 #include "geometry/ring_chart.cpp" 00084 00085 #endif