localbasis.hh
Go to the documentation of this file.00001
00002 #ifndef DUNE_LOCALBASIS_HH
00003 #define DUNE_LOCALBASIS_HH
00004
00005 #include <iostream>
00006 #include <vector>
00007
00008 #include<dune/common/static_assert.hh>
00009 #include<dune/common/array.hh>
00010 #include<dune/common/fvector.hh>
00011
00012 namespace Dune
00013 {
00014
00037 template<class DF, int n, class D, class RF, int m, class R, class J, int dorder=0>
00038 struct LocalBasisTraits
00039 {
00041 typedef DF DomainFieldType;
00042
00044 enum {
00046 dimDomain = n
00047 };
00048
00050 typedef D DomainType;
00051
00053 typedef RF RangeFieldType;
00054
00056 enum {
00058 dimRange = m
00059 };
00060
00062 typedef R RangeType;
00063
00070 typedef J JacobianType;
00071
00073 enum {
00075 diffOrder=dorder
00076 };
00077 };
00078
00079
00100 template<class DF, int n, class D, class RF, int m, class R>
00101 struct C0LocalBasisTraits
00102 {
00104 typedef DF DomainFieldType;
00105
00107 enum {
00109 dimDomain = n
00110 };
00111
00113 typedef D DomainType;
00114
00116 typedef RF RangeFieldType;
00117
00119 enum {
00121 dimRange = m
00122 };
00123
00125 typedef R RangeType;
00126
00128 enum {
00130 diffOrder=0
00131 };
00132 };
00133
00134
00151 template<class DF, int n, class D, class RF, int m, class R, class J>
00152 struct C1LocalBasisTraits : public C0LocalBasisTraits<DF,n,D,RF,m,R>
00153 {
00160 typedef J JacobianType;
00161
00163 enum {
00165 diffOrder=1
00166 };
00167 };
00168
00169 template<class DF, int n, class D, class RF, int m, class R, class J, int dorder>
00170 struct CkLocalBasisTraits : public C1LocalBasisTraits<DF,n,D,RF,m,R,J>
00171 {
00173 enum {
00175 diffOrder=dorder
00176 };
00177 };
00178
00179 }
00180 #endif