include/deal.II/fe/fe_bdm.h

00001 //---------------------------------------------------------------------------
00002 //    @f$Id: fe_bdm.h 25345 2012-03-31 08:37:04Z bangerth @f$
00003 //
00004 //    Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 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_bdm_h
00013 #define __deal2__fe_bdm_h
00014 
00015 #include <deal.II/base/config.h>
00016 #include <deal.II/base/table.h>
00017 #include <deal.II/base/polynomials_bdm.h>
00018 #include <deal.II/base/polynomial.h>
00019 #include <deal.II/base/tensor_product_polynomials.h>
00020 #include <deal.II/base/geometry_info.h>
00021 #include <deal.II/fe/fe.h>
00022 #include <deal.II/fe/fe_poly_tensor.h>
00023 
00024 #include <vector>
00025 
00026 
00027 DEAL_II_NAMESPACE_OPEN
00028 
00051 template <int dim>
00052 class FE_BDM
00053   :
00054   public FE_PolyTensor<PolynomialsBDM<dim>, dim>
00055 {
00056   public:
00061     FE_BDM (const unsigned int p);
00062 
00072     virtual std::string get_name () const;
00073 
00074     virtual FiniteElement<dim>* clone () const;
00075 
00076     virtual void interpolate(std::vector<double>&                local_dofs,
00077                              const std::vector<double>& values) const;
00078     virtual void interpolate(std::vector<double>&                local_dofs,
00079                              const std::vector<Vector<double> >& values,
00080                              unsigned int offset = 0) const;
00081     virtual void interpolate(
00082       std::vector<double>& local_dofs,
00083       const VectorSlice<const std::vector<std::vector<double> > >& values) const;
00084   private:
00095     static std::vector<unsigned int>
00096     get_dpo_vector (const unsigned int degree);
00097 
00105     static std::vector<bool>
00106     get_ria_vector (const unsigned int degree);
00114     void initialize_support_points (const unsigned int rt_degree);
00124     std::vector<std::vector<double> > test_values;
00125 };
00126 
00127 DEAL_II_NAMESPACE_CLOSE
00128 
00129 #endif
00130 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

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