dune-localfunctions  2.2.0
localbasis.hh
Go to the documentation of this file.
00001 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002 // vi: set et ts=4 sw=2 sts=2:
00003 #ifndef DUNE_LOCALBASIS_HH
00004 #define DUNE_LOCALBASIS_HH
00005 
00006 #include <iostream>
00007 #include <vector>
00008 
00009 #include<dune/common/static_assert.hh>
00010 #include<dune/common/array.hh>
00011 #include<dune/common/fvector.hh>
00012 
00013 namespace Dune 
00014 {
00015 
00038   template<class DF, int n, class D, class RF, int m, class R, class J, int dorder=0>
00039   struct LocalBasisTraits
00040   {
00042         typedef DF DomainFieldType;
00043 
00045         enum { 
00047           dimDomain = n 
00048         }; 
00049 
00051         typedef D DomainType;
00052 
00054         typedef RF RangeFieldType;
00055 
00057         enum { 
00059           dimRange = m 
00060         }; 
00061 
00063         typedef R RangeType;
00064 
00071         typedef J JacobianType;
00072 
00074         enum { 
00076           diffOrder=dorder
00077         };
00078   };
00079 
00080 
00101   template<class DF, int n, class D, class RF, int m, class R>
00102   struct C0LocalBasisTraits
00103   {
00105         typedef DF DomainFieldType;
00106 
00108         enum { 
00110           dimDomain = n 
00111         }; 
00112 
00114         typedef D DomainType;
00115 
00117         typedef RF RangeFieldType;
00118 
00120         enum { 
00122           dimRange = m 
00123         }; 
00124 
00126         typedef R RangeType;
00127 
00129         enum { 
00131           diffOrder=0
00132         };
00133   };
00134 
00135 
00152   template<class DF, int n, class D, class RF, int m, class R, class J>
00153   struct C1LocalBasisTraits : public C0LocalBasisTraits<DF,n,D,RF,m,R>
00154   {
00161         typedef J JacobianType;
00162 
00164         enum { 
00166           diffOrder=1
00167         };
00168   };
00169 
00170   template<class DF, int n, class D, class RF, int m, class R, class J, int dorder>
00171   struct CkLocalBasisTraits : public C1LocalBasisTraits<DF,n,D,RF,m,R,J>
00172   {
00174         enum { 
00176           diffOrder=dorder
00177         };
00178   };
00179 
00180 }
00181 #endif