MathTL
geometry/ring_chart.h
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
 All Classes Functions Variables Typedefs Enumerations