00001 #ifndef CROUZEIXRAVIART_IS_INCLUDED 00002 #define CROUZEIXRAVIART_IS_INCLUDED 00003 00004 00005 #include <FE.h> 00006 00007 00008 class CrouzeixRaviart : public StandardFE { 00009 public: 00010 CrouzeixRaviart(); 00011 virtual ~CrouzeixRaviart() {} 00012 00013 void set(int order); 00014 void set(Polygon& p); 00015 void compute_basis_functions(); 00016 virtual int nbf(); 00017 virtual GiNaC::ex N(int i); 00018 virtual GiNaC::ex dof(int i); 00019 }; 00020 00021 class VectorCrouzeixRaviart : public StandardFE { 00022 protected: 00023 int size; 00024 public: 00025 VectorCrouzeixRaviart(); 00026 virtual ~VectorCrouzeixRaviart() {} 00027 00028 virtual void set(int order); 00029 virtual void set(Polygon& p); 00030 virtual void set_size(int size_); 00031 virtual void compute_basis_functions(); 00032 virtual int nbf(); 00033 virtual GiNaC::ex N(int i); 00034 virtual GiNaC::ex dof(int i); 00035 }; 00036 00037 00038 00039 #endif