]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Release the preconditioner object before a re-generation.
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 23 Sep 2008 09:22:55 +0000 (09:22 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 23 Sep 2008 09:22:55 +0000 (09:22 +0000)
git-svn-id: https://svn.dealii.org/trunk@16898 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/source/trilinos_precondition.cc
deal.II/lac/source/trilinos_precondition_amg.cc

index 5d9c7af6903bea1538f1d0bf163ea036bb81b557..55bc5c1bcd3e37736f32c377dfcb22edd4b05c8e 100755 (executable)
@@ -63,6 +63,7 @@ namespace TrilinosWrappers
   PreconditionJacobi::initialize (const SparseMatrix   &matrix,
                                  const AdditionalData &additional_data)
   {
+    preconditioner.release();
 
     preconditioner = Teuchos::rcp (Ifpack().Create ("point relaxation", &*matrix.matrix, 0));
     Assert (&*preconditioner != 0, ExcMessage ("Trilinos could not create this "
@@ -106,6 +107,7 @@ namespace TrilinosWrappers
   PreconditionSSOR::initialize (const SparseMatrix   &matrix,
                                const AdditionalData &additional_data)
   {
+    preconditioner.release();
 
     preconditioner = Teuchos::rcp (Ifpack().Create ("point relaxation",
                                                    &*matrix.matrix, 
@@ -152,6 +154,7 @@ namespace TrilinosWrappers
   PreconditionSOR::initialize (const SparseMatrix   &matrix,
                               const AdditionalData &additional_data)
   {
+    preconditioner.release();
 
     preconditioner = Teuchos::rcp (Ifpack().Create ("point relaxation",
                                                    &*matrix.matrix, 
@@ -200,6 +203,8 @@ namespace TrilinosWrappers
   PreconditionIC::initialize (const SparseMatrix   &matrix,
                              const AdditionalData &additional_data)
   {
+    preconditioner.release();
+
     preconditioner = Teuchos::rcp (Ifpack().Create ("IC", &*matrix.matrix, 
                                                    additional_data.overlap));
     Assert (&*preconditioner != 0, ExcMessage ("Trilinos could not create this "
@@ -245,6 +250,8 @@ namespace TrilinosWrappers
   PreconditionILU::initialize (const SparseMatrix   &matrix,
                               const AdditionalData &additional_data)
   {
+    preconditioner.release();
+
     preconditioner = Teuchos::rcp (Ifpack().Create ("ILU", &*matrix.matrix, 
                                                    additional_data.overlap));
     Assert (&*preconditioner != 0, ExcMessage ("Trilinos could not create this "
index 4f702efc5793d68336fa775170cc6b9a451dc59a..29c33f0fe1c97674159da92c329321d8cdd9c3db 100755 (executable)
@@ -45,6 +45,8 @@ namespace TrilinosWrappers
              const std::vector<std::vector<bool> > &null_space,
              const bool                             output_details)
   {
+    multilevel_operator.release();
+
     const unsigned int n_rows = matrix.m();
     const unsigned int null_space_dimension = null_space.size();
 

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.