dune-localfunctions
2.1.1
|
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