- Home
- About DUNE
- Download
- Documentation
- Community
- Development
00001 // -*- tab-width: 4; indent-tabs-mode: nil -*- 00002 #ifndef DUNE_MIMETIC_ALL_HH 00003 #define DUNE_MIMETIC_ALL_HH 00004 00005 #include <cstddef> 00006 00007 #include<dune/common/exceptions.hh> 00008 #include<dune/common/fvector.hh> 00009 #include<dune/common/geometrytype.hh> 00010 00011 #include"../common/localbasis.hh" 00012 #include"../common/localkey.hh" 00013 00014 namespace Dune 00015 { 00016 template<class D, class R, int dim> 00017 class MimeticLocalBasis 00018 { 00019 public: 00020 typedef Dune::LocalBasisTraits<D,dim,Dune::FieldVector<D,dim>, 00021 R,1,Dune::FieldVector<R,1>, Dune::FieldMatrix<R,1,dim> > Traits; 00022 00023 MimeticLocalBasis (unsigned int variant_) 00024 : variant(variant_) 00025 { 00026 } 00027 00028 MimeticLocalBasis () 00029 : variant(0) 00030 { 00031 } 00032 00033 unsigned int size () const { return variant; } 00034 00036 inline void evaluateFunction ( 00037 const typename Traits::DomainType& in, 00038 std::vector<typename Traits::RangeType>& out) const 00039 { 00040 DUNE_THROW(Dune::Exception,"mimetic basis evaluation not available"); 00041 } 00042 00044 inline void evaluateJacobian ( 00045 const typename Traits::DomainType& in, 00046 std::vector<typename Traits::JacobianType>& out) const 00047 { 00048 DUNE_THROW(Dune::Exception,"mimetic basis Jacobian evaluation not available"); 00049 } 00050 00052 unsigned int order () const 00053 { 00054 DUNE_THROW(Dune::Exception,"mimetic order evaluation not available"); 00055 } 00056 00057 private: 00058 unsigned int variant; 00059 }; 00060 00061 template<class LB> 00062 class MimeticLocalInterpolation 00063 { 00064 public: 00065 00067 template<typename F, typename C> 00068 void interpolate (const F& f, std::vector<C>& out) const { 00069 DUNE_THROW(Dune::Exception,"mimetic local interpolation not available"); 00070 } 00071 }; 00072 00076 class MimeticLocalCoefficients 00077 { 00078 public: 00079 MimeticLocalCoefficients (unsigned int variant_) 00080 : variant(variant_), li(variant_) 00081 { 00082 for (unsigned int i=0; i<variant; i++) 00083 li[i] = Dune::LocalKey(i,Dune::LocalKey::intersectionCodim,0); 00084 } 00085 00086 MimeticLocalCoefficients () 00087 : variant(0), li(0) 00088 { 00089 } 00090 00092 std::size_t size () const { return variant; } 00093 00095 const Dune::LocalKey& localKey (std::size_t i) const { 00096 return li[i]; 00097 } 00098 00099 private: 00100 unsigned int variant; 00101 std::vector<Dune::LocalKey> li; 00102 }; 00103 } 00104 00105 #endif
Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].