From: guido Date: Mon, 26 Apr 1999 21:27:27 +0000 (+0000) Subject: cleanup X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c42e2a702e762765a23c4174c55f3bbd74bdb39e;p=dealii-svn.git cleanup git-svn-id: https://svn.dealii.org/trunk@1212 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/numerics/base.cc b/deal.II/deal.II/source/numerics/base.cc index 387be6b1c5..509ff3b5dc 100644 --- a/deal.II/deal.II/source/numerics/base.cc +++ b/deal.II/deal.II/source/numerics/base.cc @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -140,8 +141,13 @@ void ProblemBase::solve () { PrimitiveVectorMemory > memory; SolverCG,Vector > cg(control,memory); + PreconditionRelaxation, Vector > + prec(system_matrix, + &SparseMatrix::template precondition_SSOR, + 1.2); + // solve - cg.solve (system_matrix, solution, right_hand_side); + cg.solve (system_matrix, solution, right_hand_side, prec); // distribute solution constraints.distribute (solution); }; diff --git a/deal.II/deal.II/source/numerics/vectors.cc b/deal.II/deal.II/source/numerics/vectors.cc index bc6767ce41..283957f62c 100644 --- a/deal.II/deal.II/source/numerics/vectors.cc +++ b/deal.II/deal.II/source/numerics/vectors.cc @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -203,8 +204,12 @@ void VectorTools::project (const DoFHandler &dof, PrimitiveVectorMemory > memory; SolverCG,Vector > cg(control,memory); + PreconditionRelaxation, Vector > + prec(mass_matrix, + &SparseMatrix::template precondition_SSOR, + 1.2); // solve - cg.solve (mass_matrix, vec, tmp); + cg.solve (mass_matrix, vec, tmp, prec); // distribute solution constraints.distribute (vec); @@ -410,8 +415,12 @@ VectorTools::project_boundary_values (const DoFHandler &dof, PrimitiveVectorMemory > memory; SolverCG,Vector > cg(control,memory); + PreconditionRelaxation, Vector > + prec(mass_matrix, + &SparseMatrix::template precondition_SSOR, + 1.2); // solve - cg.solve (mass_matrix, boundary_projection, rhs); + cg.solve (mass_matrix, boundary_projection, rhs, prec); // fill in boundary values for (unsigned int i=0; i -class SolverPCG : public Solver +class SolverCG : public Solver { public: /** * Constructor. */ - SolverPCG (SolverControl &cn, VectorMemory &mem) : + SolverCG (SolverControl &cn, VectorMemory &mem) : Solver(cn,mem) {}; /** @@ -71,7 +71,7 @@ class SolverPCG : public Solver template -double SolverPCG::criterion() +double SolverCG::criterion() { return sqrt(res2); }; @@ -81,12 +81,14 @@ double SolverPCG::criterion() template template Solver::ReturnState -SolverPCG::solve (const Matrix &A, +SolverCG::solve (const Matrix &A, Vector &x, const Vector &b, const Preconditioner& precondition) { SolverControl::State conv=SolverControl::iterate; + + deallog.push("cg"); // Memory allocation Vr = memory.alloc(); @@ -172,7 +174,7 @@ SolverPCG::solve (const Matrix &A, -/*---------------------------- solver_pcg.h ---------------------------*/ -/* end of #ifndef __solver_pcg_H */ +/*---------------------------- solver_cg.h ---------------------------*/ +/* end of #ifndef __solver_cg_H */ #endif -/*---------------------------- solver_pcg.h ---------------------------*/ +/*---------------------------- solver_cg.h ---------------------------*/ diff --git a/deal.II/lac/include/lac/solver_richardson.h b/deal.II/lac/include/lac/solver_richardson.h index 2ccca467a8..b4b2e8e41d 100644 --- a/deal.II/lac/include/lac/solver_richardson.h +++ b/deal.II/lac/include/lac/solver_richardson.h @@ -19,7 +19,8 @@ * @author Ralf Hartmann */ template -class SolverRichardson : public Solver { +class SolverRichardson : public Solver +{ public: /** * Constructor. diff --git a/deal.II/lac/source/sparse_matrix.cc b/deal.II/lac/source/sparse_matrix.cc index e52db7de6f..a3e52b2f11 100644 --- a/deal.II/lac/source/sparse_matrix.cc +++ b/deal.II/lac/source/sparse_matrix.cc @@ -505,11 +505,6 @@ template double SparseMatrix::residual (Vector &, const Vector &, const Vector &) const; -template void SparseMatrix::precondition (Vector &, - const Vector &) const; -template void SparseMatrix::precondition (Vector &, - const Vector &) const; - template void SparseMatrix::precondition_SSOR (Vector &, const Vector &, float) const; @@ -568,11 +563,6 @@ template double SparseMatrix::residual (Vector &, const Vector &, const Vector &) const; -template void SparseMatrix::precondition (Vector &, - const Vector &) const; -template void SparseMatrix::precondition (Vector &, - const Vector &) const; - template void SparseMatrix::precondition_SSOR (Vector &, const Vector &, double) const; diff --git a/tests/lac/solver.cc b/tests/lac/solver.cc index 0ca3ec959d..a70a6c4787 100644 --- a/tests/lac/solver.cc +++ b/tests/lac/solver.cc @@ -9,8 +9,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -22,7 +22,7 @@ main() { PrimitiveVectorMemory mem; SolverControl control(100, 1.e-5, true); - SolverPCG cg(control, mem); + SolverCG cg(control, mem); SolverGMRES gmres(control, mem,20); SolverBicgstab bicgstab(control, mem); SolverRichardson rich(control, mem);