From: wolf Date: Wed, 25 May 2005 15:28:23 +0000 (+0000) Subject: Rename the member variable 'degree' to 'rt_order', to avoid a X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42c8e50b2ea099edda9d78abfdeeb44f20ecb228;p=dealii-svn.git Rename the member variable 'degree' to 'rt_order', to avoid a confusion with a variabl of the same name in the base class. git-svn-id: https://svn.dealii.org/trunk@10741 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/fe/fe_raviart_thomas.h b/deal.II/deal.II/include/fe/fe_raviart_thomas.h index ee07ffe737..80949d6d15 100644 --- a/deal.II/deal.II/include/fe/fe_raviart_thomas.h +++ b/deal.II/deal.II/include/fe/fe_raviart_thomas.h @@ -327,9 +327,15 @@ class FE_RaviartThomas : public FiniteElement private: /** - * Degree of the polynomials. + * The order of the + * Raviart-Thomas element. The + * lowest order elements are + * usually referred to as RT0, + * even though their shape + * functions are piecewise + * linears. */ - const unsigned int degree; + const unsigned int rt_order; /** * Spaces describing the diff --git a/deal.II/deal.II/source/fe/fe_raviart_thomas.cc b/deal.II/deal.II/source/fe/fe_raviart_thomas.cc index dda14f93f1..cf4bb0bdd3 100644 --- a/deal.II/deal.II/source/fe/fe_raviart_thomas.cc +++ b/deal.II/deal.II/source/fe/fe_raviart_thomas.cc @@ -128,16 +128,16 @@ namespace template -FE_RaviartThomas::FE_RaviartThomas (const unsigned int degree) +FE_RaviartThomas::FE_RaviartThomas (const unsigned int rt_order) : - FiniteElement (FiniteElementData(get_dpo_vector(degree), - dim, degree+1), - get_ria_vector (degree), - std::vector >(FiniteElementData(get_dpo_vector(degree),dim,degree+1).dofs_per_cell, + FiniteElement (FiniteElementData(get_dpo_vector(rt_order), + dim, rt_order+1), + get_ria_vector (rt_order), + std::vector >(FiniteElementData(get_dpo_vector(rt_order),dim,rt_order+1).dofs_per_cell, std::vector(dim,true))), - degree(degree), - polynomials (create_polynomials(degree)), - renumber (compute_renumber(degree)) + rt_order(rt_order), + polynomials (create_polynomials(rt_order)), + renumber (compute_renumber(rt_order)) { Assert (dim >= 2, ExcNotUsefulInThisDimension()); @@ -146,10 +146,10 @@ FE_RaviartThomas::FE_RaviartThomas (const unsigned int degree) // the number of degrees of freedom // per cell Assert (((dim==2) && - (this->dofs_per_cell == 2*(degree+1)*(degree+2))) + (this->dofs_per_cell == 2*(rt_order+1)*(rt_order+2))) || ((dim==3) && - (this->dofs_per_cell == 3*(degree+1)*(degree+1)*(degree+2))), + (this->dofs_per_cell == 3*(rt_order+1)*(rt_order+1)*(rt_order+2))), ExcInternalError()); Assert (renumber.size() == this->dofs_per_cell, ExcInternalError()); @@ -197,7 +197,7 @@ FE_RaviartThomas::get_name () const std::ostrstream namebuf; #endif - namebuf << "FE_RaviartThomas<" << dim << ">(" << degree << ")"; + namebuf << "FE_RaviartThomas<" << dim << ">(" << rt_order << ")"; #ifndef HAVE_STD_STRINGSTREAM namebuf << std::ends; @@ -211,7 +211,7 @@ template FiniteElement * FE_RaviartThomas::clone() const { - return new FE_RaviartThomas(degree); + return new FE_RaviartThomas(rt_order); } @@ -445,7 +445,7 @@ FE_RaviartThomas<2>::initialize_constraints () // this case is too easy, so // special case it - if (degree == 0) + if (rt_order == 0) { this->interface_constraints(0,0) = this->interface_constraints(1,0) = .5; return; @@ -523,7 +523,7 @@ FE_RaviartThomas<2>::initialize_constraints () // need inside deal.II const std::vector > face_polynomials (Polynomials::Hierarchical:: - generate_complete_basis (degree)); + generate_complete_basis (rt_order)); Assert (face_polynomials.size() == this->dofs_per_face, ExcInternalError()); FullMatrix face_interpolation (2*this->dofs_per_face, this->dofs_per_face); @@ -555,8 +555,8 @@ FE_RaviartThomas<2>::initialize_constraints () for (unsigned int subface=0; subface::subfaces_per_face; ++subface) for (unsigned int i=0; idofs_per_face; ++i) { - const double p_face (1.*i/degree/2 + (subface == 0 ? 0. : .5)); - const double p_subface (1.*i/degree); + const double p_face (1.*i/rt_order/2 + (subface == 0 ? 0. : .5)); + const double p_subface (1.*i/rt_order); for (unsigned int j=0; jdofs_per_face; ++j) { @@ -628,7 +628,7 @@ void FE_RaviartThomas<2>::initialize_restriction () { const unsigned int dim = 2; - switch (degree) + switch (rt_order) { case 0: { @@ -817,7 +817,7 @@ FE_RaviartThomas::initialize_unit_support_points () { case 2: { - Assert (degree+1 == this->dofs_per_face, ExcInternalError()); + Assert (rt_order+1 == this->dofs_per_face, ExcInternalError()); // associate support points // with mid-face points if a @@ -858,7 +858,7 @@ FE_RaviartThomas::initialize_unit_support_points () case 3: { // same as in 2d - Assert ((degree+1)*(degree+1) == this->dofs_per_face, ExcInternalError()); + Assert ((rt_order+1)*(rt_order+1) == this->dofs_per_face, ExcInternalError()); // start with the face shape // functions @@ -933,20 +933,20 @@ FE_RaviartThomas<1>::get_dpo_vector (const unsigned int) template std::vector -FE_RaviartThomas::get_dpo_vector (const unsigned int degree) +FE_RaviartThomas::get_dpo_vector (const unsigned int rt_order) { // the element is face-based (not // to be confused with George // W. Bush's Faith Based // Initiative...), and we have - // (degree+1)^(dim-1) DoFs per face + // (rt_order+1)^(dim-1) DoFs per face unsigned int dofs_per_face = 1; for (unsigned int d=0; d dpo(dim+1); dpo[dim-1] = dofs_per_face; @@ -972,26 +972,26 @@ FE_RaviartThomas<1>::get_ria_vector (const unsigned int) template std::vector -FE_RaviartThomas::get_ria_vector (const unsigned int degree) +FE_RaviartThomas::get_ria_vector (const unsigned int rt_order) { unsigned int dofs_per_cell, dofs_per_face; switch (dim) { case 2: - dofs_per_face = degree+1; - dofs_per_cell = 2*(degree+1)*(degree+2); + dofs_per_face = rt_order+1; + dofs_per_cell = 2*(rt_order+1)*(rt_order+2); break; case 3: - dofs_per_face = (degree+1)*(degree+1); - dofs_per_cell = 3*(degree+1)*(degree+1)*(degree+2); + dofs_per_face = (rt_order+1)*(rt_order+1); + dofs_per_cell = 3*(rt_order+1)*(rt_order+1)*(rt_order+2); break; default: Assert (false, ExcNotImplemented()); } - Assert (FiniteElementData(get_dpo_vector(degree),dim).dofs_per_cell == + Assert (FiniteElementData(get_dpo_vector(rt_order),dim).dofs_per_cell == dofs_per_cell, ExcInternalError()); - Assert (FiniteElementData(get_dpo_vector(degree),dim).dofs_per_face == + Assert (FiniteElementData(get_dpo_vector(rt_order),dim).dofs_per_face == dofs_per_face, ExcInternalError()); @@ -1026,7 +1026,7 @@ FE_RaviartThomas<1>::create_polynomials (const unsigned int) template <> std::vector > -FE_RaviartThomas<2>::create_polynomials (const unsigned int degree) +FE_RaviartThomas<2>::create_polynomials (const unsigned int rt_order) { const unsigned int dim = 2; @@ -1037,8 +1037,8 @@ FE_RaviartThomas<2>::create_polynomials (const unsigned int degree) // see the book by Brezzi and // Fortin const std::vector > pols[2] - = { Polynomials::Hierarchical::generate_complete_basis (degree+1), - Polynomials::Hierarchical::generate_complete_basis (degree)}; + = { Polynomials::Hierarchical::generate_complete_basis (rt_order+1), + Polynomials::Hierarchical::generate_complete_basis (rt_order)}; // create spaces (k+1,k) and (k,k+1) std::vector > > @@ -1073,7 +1073,7 @@ FE_RaviartThomas<2>::create_polynomials (const unsigned int degree) template <> std::vector > -FE_RaviartThomas<3>::create_polynomials (const unsigned int degree) +FE_RaviartThomas<3>::create_polynomials (const unsigned int rt_order) { const unsigned int dim = 3; @@ -1085,8 +1085,8 @@ FE_RaviartThomas<3>::create_polynomials (const unsigned int degree) // see the book by Brezzi and // Fortin const std::vector > pols[2] - = { Polynomials::Hierarchical::generate_complete_basis (degree+1), - Polynomials::Hierarchical::generate_complete_basis (degree)}; + = { Polynomials::Hierarchical::generate_complete_basis (rt_order+1), + Polynomials::Hierarchical::generate_complete_basis (rt_order)}; // create spaces (k+1,k,k), // (k,k+1,k) and (k,k,k+1) @@ -1143,27 +1143,27 @@ FE_RaviartThomas<1>::compute_renumber (const unsigned int) template <> std::vector > -FE_RaviartThomas<2>::compute_renumber (const unsigned int degree) +FE_RaviartThomas<2>::compute_renumber (const unsigned int rt_order) { const unsigned int dim = 2; std::vector > ret_val; // to explain the following: the - // first (degree+1) shape functions + // first (rt_order+1) shape functions // are on face 0, and point in // y-direction, so are for the // second vector component. then - // there are (degree+1) shape + // there are (rt_order+1) shape // functions on face 1, which is // for the x vector component, and // so on. since the order of face - // degrees of freedom is arbitrary, + // rt_orders of freedom is arbitrary, // we simply use the same order as // that provided by the 1d // polynomial class on which this // element is based. after - // 4*(degree+1), the remaining + // 4*(rt_order+1), the remaining // shape functions are all bubbles, // so we can number them in any way // we want. we do so by first @@ -1187,38 +1187,38 @@ FE_RaviartThomas<2>::compute_renumber (const unsigned int degree) // comments below // face 0 - for (unsigned int i=0; i::compute_renumber (const unsigned int degree) // make sure we have actually used // up all elements of the tensor // product polynomial - Assert (ret_val.size() == 2*(degree+1)*(degree+2), + Assert (ret_val.size() == 2*(rt_order+1)*(rt_order+2), ExcInternalError()); std::vector test[dim] = { std::vector(ret_val.size()/dim, false), std::vector(ret_val.size()/dim, false) }; @@ -1256,7 +1256,7 @@ FE_RaviartThomas<2>::compute_renumber (const unsigned int degree) template <> std::vector > -FE_RaviartThomas<3>::compute_renumber (const unsigned int /*degree*/) +FE_RaviartThomas<3>::compute_renumber (const unsigned int /*rt_order*/) { Assert (false, ExcNotImplemented()); return std::vector > (); @@ -1823,7 +1823,7 @@ FE_RaviartThomas::has_support_on_face (const unsigned int shape_index, // Return computed values if we // know them easily. Otherwise, it // is always safe to return true. - switch (degree) + switch (rt_order) { case 0: { @@ -1848,7 +1848,7 @@ FE_RaviartThomas::has_support_on_face (const unsigned int shape_index, }; }; - default: // other degree + default: // other rt_order return true; }; @@ -1871,7 +1871,7 @@ template unsigned int FE_RaviartThomas::get_degree () const { - return degree; + return rt_order; }