From: wolf Date: Thu, 8 Apr 1999 16:15:17 +0000 (+0000) Subject: Initial version of the prebuilt MGTransfer class. May or may not work. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb4369572bbbcf649b681bc4fe49014df01191a5;p=dealii-svn.git Initial version of the prebuilt MGTransfer class. May or may not work. git-svn-id: https://svn.dealii.org/trunk@1104 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/multigrid/multigrid.h b/deal.II/deal.II/include/multigrid/multigrid.h index f9c6b52f2c..7d60d21d34 100644 --- a/deal.II/deal.II/include/multigrid/multigrid.h +++ b/deal.II/deal.II/include/multigrid/multigrid.h @@ -277,9 +277,9 @@ class MGTransferPrebuilt : public MGTransferBase * are degrees of freedom on the finer * level. */ - virtual void prolongate (const unsigned int to_level, + virtual void prolongate (const unsigned int to_level, Vector &dst, - const Vector &src) const = 0; + const Vector &src) const; /** * Restrict a vector from level @@ -296,7 +296,7 @@ class MGTransferPrebuilt : public MGTransferBase */ virtual void restrict (const unsigned int from_level, Vector &dst, - const Vector &src) const = 0; + const Vector &src) const; private: diff --git a/deal.II/deal.II/include/numerics/multigrid.h b/deal.II/deal.II/include/numerics/multigrid.h index f9c6b52f2c..7d60d21d34 100644 --- a/deal.II/deal.II/include/numerics/multigrid.h +++ b/deal.II/deal.II/include/numerics/multigrid.h @@ -277,9 +277,9 @@ class MGTransferPrebuilt : public MGTransferBase * are degrees of freedom on the finer * level. */ - virtual void prolongate (const unsigned int to_level, + virtual void prolongate (const unsigned int to_level, Vector &dst, - const Vector &src) const = 0; + const Vector &src) const; /** * Restrict a vector from level @@ -296,7 +296,7 @@ class MGTransferPrebuilt : public MGTransferBase */ virtual void restrict (const unsigned int from_level, Vector &dst, - const Vector &src) const = 0; + const Vector &src) const; private: diff --git a/deal.II/deal.II/source/multigrid/multigrid.cc b/deal.II/deal.II/source/multigrid/multigrid.cc index 0def1ffaca..c51528c279 100644 --- a/deal.II/deal.II/source/multigrid/multigrid.cc +++ b/deal.II/deal.II/source/multigrid/multigrid.cc @@ -82,7 +82,7 @@ MGTransferBase::~MGTransferBase () /* ----------------------------- MGTransferPrebuilt ------------------------ */ -/* + MGTransferPrebuilt::~MGTransferPrebuilt () {}; @@ -148,7 +148,8 @@ void MGTransferPrebuilt::build_matrices (const MGDoFHandler &mg_dof) }; }; - prolongation_matrices[level].matrix.reinit (prolongation_matrices[level].sparsity); + prolongation_matrices.push_back (SparseMatrix()); + prolongation_matrices[level].reinit (prolongation_sparsities[level]); // now actually build the matrices @@ -175,7 +176,7 @@ void MGTransferPrebuilt::build_matrices (const MGDoFHandler &mg_dof) for (unsigned int j=0; j &mg_dof) +void MGTransferPrebuilt::prolongate (const unsigned int to_level, + Vector &dst, + const Vector &src) const +{ + Assert ((to_level >= 1) && (to_level &dst, + const Vector &src) const +{ + Assert ((from_level >= 1) && (from_level &mg_dof); -*/ + diff --git a/deal.II/deal.II/source/numerics/multigrid.cc b/deal.II/deal.II/source/numerics/multigrid.cc index 0def1ffaca..c51528c279 100644 --- a/deal.II/deal.II/source/numerics/multigrid.cc +++ b/deal.II/deal.II/source/numerics/multigrid.cc @@ -82,7 +82,7 @@ MGTransferBase::~MGTransferBase () /* ----------------------------- MGTransferPrebuilt ------------------------ */ -/* + MGTransferPrebuilt::~MGTransferPrebuilt () {}; @@ -148,7 +148,8 @@ void MGTransferPrebuilt::build_matrices (const MGDoFHandler &mg_dof) }; }; - prolongation_matrices[level].matrix.reinit (prolongation_matrices[level].sparsity); + prolongation_matrices.push_back (SparseMatrix()); + prolongation_matrices[level].reinit (prolongation_sparsities[level]); // now actually build the matrices @@ -175,7 +176,7 @@ void MGTransferPrebuilt::build_matrices (const MGDoFHandler &mg_dof) for (unsigned int j=0; j &mg_dof) +void MGTransferPrebuilt::prolongate (const unsigned int to_level, + Vector &dst, + const Vector &src) const +{ + Assert ((to_level >= 1) && (to_level &dst, + const Vector &src) const +{ + Assert ((from_level >= 1) && (from_level &mg_dof); -*/ +