00001 00002 00003 00004 #ifndef FEInterface_H_ 00005 #define FEInterface_H_ 00006 #include "globals.h" 00007 #include "arrayofvecdouble.h" 00008 00035 class FiniteElementInterface { 00036 public: 00041 virtual unsigned n_fields()=0; 00042 00043 00050 virtual Index n_local_dofs()=0; 00051 00056 virtual Index local_dof_field(unsigned local_dof)=0; 00057 00058 00073 virtual const ArrayOfVecDouble& get_support_points()=0; 00074 00075 virtual Index n_dofs_per_face()=0; 00076 00077 virtual const VecIndex& face_to_cell_local_map(Index faceId)=0; 00078 00079 00089 virtual double shape_value(unsigned i,const VecDouble &p)=0; 00090 00097 virtual void shape_grad(unsigned i,const VecDouble &pt,VecDouble &vGrad)=0; 00098 00099 00100 00101 00102 }; 00103 00104 #endif /* FE1D_H_ */