]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Remove dependence of dVector from VectorBase. This makes many functions non-virtual...
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 3 Aug 1998 15:16:18 +0000 (15:16 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 3 Aug 1998 15:16:18 +0000 (15:16 +0000)
git-svn-id: https://svn.dealii.org/trunk@475 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/dvector.h
deal.II/lac/include/lac/solver_cg.h
deal.II/lac/source/dvector.cc

index a1286f3201cd5bca2c112b46112bb070e59e73ab..d998c1fad7bc1504b997ba8c178510aa7fad8508 100644 (file)
@@ -10,7 +10,6 @@
 
 #include <cstdio>
 #include <base/types.h>
-#include <lac/vectorbase.h>
 #include <base/exceptions.h>
 
 
@@ -27,8 +26,7 @@
  *
  * @author Roland Becker, Guido Kanschat, Franz-Theo Suttmeier, revised and extended by Wolfgang Bangerth, documented by Klaus Mampel and Wolfgang Bangerth
  */
-class dVector : public VectorBase
-{
+class dVector {
   friend class dFMatrix;
 
   protected:
@@ -376,13 +374,13 @@ class dVector : public VectorBase
                                     /**
                                      *  U(i)=a*V(j)        . Replacing
                                      */
-    void cequ(unsigned int i, const VectorBase& V,
+    void cequ(unsigned int i, const dVector& V,
              double a, unsigned int j);
     
                                     /**
                                      *  U(i)=a*V(j)+b*V(k) . Replacing by sum
                                      */
-    void cequ (const unsigned int i, const VectorBase& V,
+    void cequ (const unsigned int i, const dVector& V,
               const double a, const unsigned int j,
               const double b, const unsigned int k);
     
@@ -390,7 +388,7 @@ class dVector : public VectorBase
                                      * U(i)=a*V(j)+b*V(k)+c*V(l)+d*V(m).
                                      * Replacing by sum
                                      */
-    void cequ (const unsigned int i, const VectorBase& V,
+    void cequ (const unsigned int i, const dVector& V,
               const double a, const unsigned int j,
               const double b, const unsigned int k,
               const double c, const unsigned int l,
@@ -399,13 +397,13 @@ class dVector : public VectorBase
                                     /**
                                      *  U(i)+=a*V(j)       . Simple addition
                                      */
-    void cadd (const unsigned int i, const VectorBase& V,
+    void cadd (const unsigned int i, const dVector& V,
               const double a, const unsigned int j);
     
                                     /**
                                      *  U(i)+=a*V(j)+b*V(k). Multiple addition
                                      */ 
-    void cadd (const unsigned int i, const VectorBase& V,
+    void cadd (const unsigned int i, const dVector& V,
               const double a, const unsigned int j,
               const double b, const unsigned int k);
     
@@ -413,7 +411,7 @@ class dVector : public VectorBase
                                      * U(i)+=a*V(j)+b*V(k)+c*V(l)+d*V(m).
                                      * Multiple addition
                                      */
-    void cadd (const unsigned int i, const VectorBase& V,
+    void cadd (const unsigned int i, const dVector& V,
               const double a, const unsigned int j,
               const double b, const unsigned int k,
               const double c, const unsigned int l,
@@ -425,9 +423,6 @@ class dVector : public VectorBase
                                      * @name 5: Mixed stuff
                                      */
                                     //@{
-                                    ///
-    virtual const char* name () const;
-    
                                     /**
                                      *  Output of vector in user-defined format.
                                      */
index 167aedf4a63da3597d665f8ff5a18a20050e5acd..548b5489f4a8d72be4281f3694fa2bc6425bdb82 100644 (file)
@@ -14,6 +14,7 @@
 
 /**
  * Preconditioned cg method.
+ * @author Original implementation by G. Kanschat, R. Becker and F.-T. Suttmeier, reworking and  documentation by Wolfgang Bangerth
  */
 template<class Matrix, class Vector>
 class SolverPCG : public Solver<Matrix,Vector> {
index 3e2f05219449ca255bbfc483139dfaf1078ead20..9a40eea7fb8f35eb71814e2f2b586a8d5e389cde 100644 (file)
@@ -32,7 +32,6 @@ dVector::dVector (const unsigned int n) :
 
 
 dVector::dVector (const dVector& v) :
-               VectorBase(v),
                dim(v.size()),
                maxdim(v.size()),
                val(0)
@@ -486,12 +485,10 @@ dVector& dVector::operator = (const dVector& v)
 
 
 
-void dVector::cadd (const unsigned int i, const VectorBase& V,
+void dVector::cadd (const unsigned int i, const dVector& v,
                    const double s, const unsigned int j)
 {
   Assert (dim!=0, ExcEmptyVector());
-  const dVector& v = (const dVector&) V;
-
   Assert (i<dim, ExcInvalidIndex(i,dim));
   Assert (j<v.dim, ExcInvalidIndex(j,v.dim));
 
@@ -500,13 +497,11 @@ void dVector::cadd (const unsigned int i, const VectorBase& V,
 
 
 
-void dVector::cadd(unsigned int i, const VectorBase& V,
+void dVector::cadd(unsigned int i, const dVector &v,
                   double s, unsigned int j,
                   double t, unsigned int k)
 {
   Assert (dim!=0, ExcEmptyVector());
-  const dVector& v = (const dVector&) V;
-
   Assert (i<dim, ExcInvalidIndex(i,dim));
   Assert (j<v.dim, ExcInvalidIndex(j,v.dim));
   Assert (k<v.dim, ExcInvalidIndex(k,v.dim));
@@ -516,15 +511,13 @@ void dVector::cadd(unsigned int i, const VectorBase& V,
 
 
 
-void dVector::cadd (const unsigned int i, const VectorBase& V,
+void dVector::cadd (const unsigned int i, const dVector &v,
                    const double s, const unsigned int j,
                    const double t, const unsigned int k,
                    const double q, const unsigned int l,
                    const double r, const unsigned int m)
 {
   Assert (dim!=0, ExcEmptyVector());
-  const dVector& v = (const dVector&) V;
-
   Assert (i<dim, ExcInvalidIndex(i,dim));
   Assert (j<v.dim, ExcInvalidIndex(j,v.dim));
   Assert (k<v.dim, ExcInvalidIndex(k,v.dim));
@@ -545,12 +538,10 @@ void dVector::czero (const unsigned int i)
 
 
 
-void dVector::cequ (const unsigned int i, const VectorBase& V,
+void dVector::cequ (const unsigned int i, const dVector &v,
                    const double s, const unsigned int j)
 {
   Assert (dim!=0, ExcEmptyVector());
-  const dVector& v = (const dVector&) V;
-
   Assert (i<dim, ExcInvalidIndex(i,dim));
   Assert (j<v.dim, ExcInvalidIndex(j,v.dim));
 
@@ -559,13 +550,11 @@ void dVector::cequ (const unsigned int i, const VectorBase& V,
 
 
 
-void dVector::cequ (const unsigned int i, const VectorBase& V,
+void dVector::cequ (const unsigned int i, const dVector &v,
                    const double s, const unsigned int j,
                    const double t, const unsigned int k)
 {
   Assert (dim!=0, ExcEmptyVector());
-  const dVector& v = (const dVector&) V;
-
   Assert (i<dim, ExcInvalidIndex(i,dim));
   Assert (j<v.dim, ExcInvalidIndex(j,v.dim));
   Assert (k<v.dim, ExcInvalidIndex(k,v.dim));
@@ -575,15 +564,13 @@ void dVector::cequ (const unsigned int i, const VectorBase& V,
 
 
 
-void dVector::cequ (const unsigned int i, const VectorBase& V,
+void dVector::cequ (const unsigned int i, const dVector &v,
                    const double s, const unsigned int j,
                    const double t, const unsigned int k,
                    const double q, const unsigned int l,
                    const double r, const unsigned int m)
 {
   Assert (dim!=0, ExcEmptyVector());
-  const dVector& v = (const dVector&) V;
-
   Assert (i<dim, ExcInvalidIndex(i,dim));
   Assert (j<v.dim, ExcInvalidIndex(j,v.dim));
   Assert (k<v.dim, ExcInvalidIndex(k,v.dim));
@@ -595,12 +582,6 @@ void dVector::cequ (const unsigned int i, const VectorBase& V,
 
 
 
-const char* dVector::name () const
-{
-  return "dVector";
-}
-
-
 
 void dVector::print (FILE* f, const char* format) const
 {

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.