00001 #ifndef DISCONTINUOUSLAGRANGEFE_IS_INCLUDED 00002 #define DISCONTINUOUSLAGRANGEFE_IS_INCLUDED 00003 00004 #include <LagrangeFE.h> 00005 00006 class DiscontinuousLagrangeFE : public LagrangeFE{ 00007 int element; 00008 public: 00009 DiscontinuousLagrangeFE(); 00010 ~DiscontinuousLagrangeFE() {} 00011 00012 virtual void set(int order); 00013 virtual void set_element_number(int element); 00014 virtual void set(Polygon& p); 00015 virtual 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 00022 // FIXME: would like to have this element also 00023 // in vector version since this it will give 00024 // nice code in the element matrix e.g.: 00025 // div(vfe.N(j))*pfe.N(i) 00026 00027 class VectorDiscontinuousLagrangeFE : public VectorLagrangeFE { 00028 protected: 00029 int size; 00030 int element; 00031 public: 00032 VectorDiscontinuousLagrangeFE(); 00033 ~VectorDiscontinuousLagrangeFE() {} 00034 00035 virtual void set(int order); 00036 virtual void set_element_number(int element); 00037 virtual void set(Polygon& p); 00038 virtual void set_size(int size_); 00039 virtual void compute_basis_functions(); 00040 virtual int nbf(); 00041 virtual GiNaC::ex N(int i); 00042 virtual GiNaC::ex dof(int i); 00043 }; 00044 00045 #endif