From: Wolfgang Bangerth Date: Mon, 16 Mar 1998 08:35:53 +0000 (+0000) Subject: Add preliminary solver support. X-Git-Tag: v8.0.0~23182 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e0f2c5da858132061473fd3d239ec151df812c9;p=dealii.git Add preliminary solver support. git-svn-id: https://svn.dealii.org/trunk@69 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/numerics/base.h b/deal.II/deal.II/include/numerics/base.h index ec9f7e6548..debc6fd6a5 100644 --- a/deal.II/deal.II/include/numerics/base.h +++ b/deal.II/deal.II/include/numerics/base.h @@ -13,6 +13,7 @@ template class Triangulation; template class DoFHandler; template class FiniteElement; template class Quadrature; +template class DataOut; @@ -72,6 +73,10 @@ class ProblemBase { const Quadrature &q, const FiniteElement &fe); + + void solve (); + void fill_data (DataOut &) const; + /** * Exception */ diff --git a/deal.II/deal.II/source/numerics/base.cc b/deal.II/deal.II/source/numerics/base.cc index 1bd73903bf..755a047850 100644 --- a/deal.II/deal.II/source/numerics/base.cc +++ b/deal.II/deal.II/source/numerics/base.cc @@ -4,9 +4,14 @@ #include #include #include +#include -extern TriaActiveIterator<1,CellAccessor<1> > __dummy1233; // for gcc2.8 +#include "../../../mia/vectormemory.h" +#include "../../../mia/control.h" +#include "../../../mia/cg.h" + +extern TriaActiveIterator<1,CellAccessor<1> > __dummy1233; // for gcc2.7 extern TriaActiveIterator<2,CellAccessor<2> > __dummy1234; @@ -81,6 +86,29 @@ void ProblemBase::assemble (const Equation &equation, +template +void ProblemBase::solve () { + int max_iter = 4000; + double tolerance = 1.e-14; + + Control control1(max_iter,tolerance); + PrimitiveVectorMemory memory(right_hand_sides[0]->n()); + CG cg(control1,memory); + + cg (system_matrix, solution, *right_hand_sides[0]); +}; + + + +template +void ProblemBase::fill_data (DataOut &out) const { + out.clear_data_vectors (); + out.attach_dof_handler (*dof_handler); + out.add_data_vector (solution, "solution"); +}; + + + // explicit instantiations