include/deal.II/fe/fe_poly_face.h

00001 //---------------------------------------------------------------------------
00002 //    @f$Id: fe_poly_face.h 25345 2012-03-31 08:37:04Z bangerth @f$
00003 //
00004 //    Copyright (C) 2009, 2010, 2011, 2012 by the deal.II authors
00005 //
00006 //    This file is subject to QPL and may not be  distributed
00007 //    without copyright and license information. Please refer
00008 //    to the file deal.II/doc/license.html for the  text  and
00009 //    further information on this license.
00010 //
00011 //---------------------------------------------------------------------------
00012 #ifndef __deal2__fe_poly_face_h
00013 #define __deal2__fe_poly_face_h
00014 
00015 
00016 #include <deal.II/fe/fe.h>
00017 
00018 DEAL_II_NAMESPACE_OPEN
00019 
00022 
00056 template <class POLY, int dim=POLY::dimension+1, int spacedim=dim>
00057 class FE_PolyFace : public FiniteElement<dim,spacedim>
00058 {
00059   public:
00063     FE_PolyFace (const POLY& poly_space,
00064                  const FiniteElementData<dim> &fe_data,
00065                  const std::vector<bool> &restriction_is_additive_flags);
00066 
00073     unsigned int get_degree () const;
00074 
00083 //    virtual double shape_value (const unsigned int i,
00084 //                              const Point<dim> &p) const;
00085 
00103 //    virtual double shape_value_component (const unsigned int i,
00104 //                                        const Point<dim> &p,
00105 //                                        const unsigned int component) const;
00106 
00115 //    virtual Tensor<1,dim> shape_grad (const unsigned int  i,
00116 //                                    const Point<dim>   &p) const;
00117 
00135 //    virtual Tensor<1,dim> shape_grad_component (const unsigned int i,
00136 //                                              const Point<dim> &p,
00137 //                                              const unsigned int component) const;
00138 
00149 //    virtual Tensor<2,dim> shape_grad_grad (const unsigned int  i,
00150 //                                         const Point<dim> &p) const;
00151 
00169 //    virtual Tensor<2,dim> shape_grad_grad_component (const unsigned int i,
00170 //                                                   const Point<dim> &p,
00171 //                                                   const unsigned int component) const;
00172 
00173   protected:
00174 
00175     virtual
00176     typename Mapping<dim,spacedim>::InternalDataBase *
00177     get_data (const UpdateFlags,
00178               const Mapping<dim,spacedim>& mapping,
00179               const Quadrature<dim>& quadrature) const ;
00180 
00181     typename Mapping<dim,spacedim>::InternalDataBase *
00182     get_face_data (const UpdateFlags,
00183                    const Mapping<dim,spacedim>& mapping,
00184                    const Quadrature<dim-1>& quadrature) const ;
00185 
00186     typename Mapping<dim,spacedim>::InternalDataBase *
00187     get_subface_data (const UpdateFlags,
00188                       const Mapping<dim,spacedim>& mapping,
00189                       const Quadrature<dim-1>& quadrature) const ;
00190 
00191     virtual void
00192     fill_fe_values (const Mapping<dim,spacedim>                           &mapping,
00193                     const typename Triangulation<dim,spacedim>::cell_iterator &cell,
00194                     const Quadrature<dim>                                 &quadrature,
00195                     typename Mapping<dim,spacedim>::InternalDataBase      &mapping_internal,
00196                     typename Mapping<dim,spacedim>::InternalDataBase      &fe_internal,
00197                     FEValuesData<dim,spacedim>                            &data,
00198                     CellSimilarity::Similarity                       &cell_similarity) const;
00199 
00200     virtual void
00201     fill_fe_face_values (const Mapping<dim,spacedim> &mapping,
00202                          const typename Triangulation<dim,spacedim>::cell_iterator &cell,
00203                          const unsigned int                    face_no,
00204                          const Quadrature<dim-1>                &quadrature,
00205                          typename Mapping<dim,spacedim>::InternalDataBase      &mapping_internal,
00206                          typename Mapping<dim,spacedim>::InternalDataBase      &fe_internal,
00207                          FEValuesData<dim,spacedim>& data) const ;
00208 
00209     virtual void
00210     fill_fe_subface_values (const Mapping<dim,spacedim> &mapping,
00211                             const typename Triangulation<dim,spacedim>::cell_iterator &cell,
00212                             const unsigned int                    face_no,
00213                             const unsigned int                    sub_no,
00214                             const Quadrature<dim-1>                &quadrature,
00215                             typename Mapping<dim,spacedim>::InternalDataBase      &mapping_internal,
00216                             typename Mapping<dim,spacedim>::InternalDataBase      &fe_internal,
00217                             FEValuesData<dim,spacedim>& data) const ;
00218 
00219 
00246     virtual UpdateFlags update_once (const UpdateFlags flags) const;
00247 
00302     virtual UpdateFlags update_each (const UpdateFlags flags) const;
00303 
00304 
00313     class InternalData : public FiniteElement<dim,spacedim>::InternalDataBase
00314     {
00315       public:
00341         std::vector<std::vector<double> > shape_values;
00342     };
00343 
00349     POLY poly_space;
00350 };
00351 
00354 DEAL_II_NAMESPACE_CLOSE
00355 
00356 #endif
00357 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Tue May 22 2012 12:06:08 by doxygen 1.7.3