]> https://gitweb.dealii.org/ - dealii.git/commitdiff
node matrix changed to monomials
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Tue, 20 Jan 2004 09:21:11 +0000 (09:21 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Tue, 20 Jan 2004 09:21:11 +0000 (09:21 +0000)
git-svn-id: https://svn.dealii.org/trunk@8326 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/base/include/base/polynomials_bdm.h
deal.II/base/source/polynomials_bdm.cc

index 701102564e9739d9128b327a41b133444fa2ae64..f4a49f5068ecc70d37a7a4114363fba9d46c0a2e 100644 (file)
@@ -208,11 +208,6 @@ class PolynomialsBDM
                                      */
     std::vector<Polynomials::Polynomial<double> > monomials;
     
-                                    /**
-                                     * Storage for derivatives of monomials
-                                     */
-    std::vector<Polynomials::Polynomial<double> > monomial_derivatives;
-    
                                     /**
                                      * Number of BDM
                                      * polynomials.
index 9214bec3e31d7483c05f851586f84cc8e65bfc6f..c4771dc97726fd3a25bdd0c1ac543b9aa95d02c4 100644 (file)
 #include <base/polynomials_bdm.h>
 #include <base/quadrature_lib.h>
 #include <iostream>
+#include <iomanip>
 using namespace std;
 using namespace Polynomials;
 
 
-//TODO:[GK] Remove monomial_derivatives
-
 template <int dim>
 PolynomialsBDM<dim>::PolynomialsBDM (const unsigned int k)
                :
-               polynomial_space (Polynomials::Monomial<double>::generate_complete_basis(k)),
+               polynomial_space (Polynomials::Legendre::generate_complete_basis(k)),
                monomials(1),
-               monomial_derivatives(1),
                n_pols(dim * polynomial_space.n()+2),
                p_values(polynomial_space.n()),
                p_grads(polynomial_space.n()),
@@ -33,8 +31,6 @@ PolynomialsBDM<dim>::PolynomialsBDM (const unsigned int k)
 {
   Assert (dim == 2, ExcNotImplemented());
   monomials[0] = Monomial<double> (k+1);
-  for (unsigned int i=0;i<monomials.size();++i)
-    monomial_derivatives[i] = monomials[i].derivative();
 }
 
 
@@ -132,13 +128,11 @@ template <int dim>
 void
 PolynomialsBDM<dim>::compute_node_matrix (Table<2,double>& A) const
 {
-  std::vector<Polynomial<double> > legendre(2);
-  for (unsigned int i=0;i<legendre.size();++i)
-    legendre[i] = Legendre(i);
-
-  QGauss<1> qface(polynomial_space.degree()+1);
+  std::vector<Polynomial<double> > moment_weight(2);
+  for (unsigned int i=0;i<moment_weight.size();++i)
+    moment_weight[i] = Monomial<double>(i);
 
-  Table<2,double> integrals (n(), n());
+  QGauss<dim-1> qface(polynomial_space.degree()+1);
 
   std::vector<Tensor<1,dim> > values(n());
   std::vector<Tensor<2,dim> > grads;
@@ -164,12 +158,23 @@ PolynomialsBDM<dim>::compute_node_matrix (Table<2,double>& A) const
              p(1) = x;
              break;          
          }
+//     std::cerr << p
+//               << '\t' << moment_weight[0].value(x)
+//               << '\t' << moment_weight[1].value(x)
+//       ;
+       
        compute (p, values, grads, grad_grads);
+
        for (unsigned int i=0;i<n();++i)
          {
-           for (unsigned int j=0;j<legendre.size();++j)
-             A(2*face+j,i) += w * values[i][1-face%2] * legendre[j].value(x);
+//         std::cerr << '\t' << std::setw(6) << values[i][1-face%2];
+                                            // Integrate normal component.
+                                            // This is easy on the unit square
+           for (unsigned int j=0;j<moment_weight.size();++j)
+             A(moment_weight.size()*face+j,i)
+               += w * values[i][1-face%2] * moment_weight[j].value(x);
          }
+//     std::cerr << std::endl;
       }
                                   // Volume integrals are missing
                                   //

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.