//---------------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 2005, 2006 by the deal.II authors
+// Copyright (C) 2005, 2006, 2010 by the deal.II authors
//
// This file is subject to QPL and may not be distributed
// without copyright and license information. Please refer
//
//---------------------------------------------------------------------------
-// See documentation of Product for documentation of this example
+// See documentation of ProductMatrix for documentation of this example
#include <base/logstream.h>
#include <lac/matrix_lib.h>
Explicit::Explicit(const FullMatrix<double>& M)
:
matrix(&M)
-{}
+{
+ m.reinit(M.m(), M.n());
+ m = M;
+}
void
{
this->notifications.print(deallog);
deallog << std::endl;
+ this->notifications.clear();
unsigned int i = in.find("Previous time");
m.vmult(*out(0), *in(i));
}
Implicit::Implicit(const FullMatrix<double>& M)
:
matrix(&M)
-{}
+{
+ m.reinit(M.m(), M.n());
+}
void
{
this->notifications.print(deallog);
deallog << std::endl;
+ if (this->notifications.test(Events::initial) || this->notifications.test(Events::new_timestep_size))
+ {
+ m.equ(timestep_data->step, *matrix);
+ for (unsigned int i=0;i<m.m();++i)
+ m(i,i) += 1.;
+ m.gauss_jordan();
+ }
+ this->notifications.clear();
+
unsigned int i = in.find("Previous time");
m.vmult(*out(0), *in(i));
}