From: Guido Kanschat Date: Wed, 7 Jul 2010 23:16:09 +0000 (+0000) Subject: working on ThetaTimestepping X-Git-Tag: v8.0.0~5847 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e62ce07a074ea2fa6310f8a6a8f11d6b8542b5c;p=dealii.git working on ThetaTimestepping git-svn-id: https://svn.dealii.org/trunk@21459 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/numerics/operator.templates.h b/deal.II/deal.II/include/numerics/operator.templates.h index a2ac9e57f6..79d4f5980d 100644 --- a/deal.II/deal.II/include/numerics/operator.templates.h +++ b/deal.II/deal.II/include/numerics/operator.templates.h @@ -68,7 +68,7 @@ namespace Algorithms } else { - (*os) << ' ' << step; + (*os) << ' ' << step << ' '; for (unsigned int i=0;iprint(*os); (*os) << std::endl; diff --git a/deal.II/examples/doxygen/theta_timestepping.cc b/deal.II/examples/doxygen/theta_timestepping.cc index a3c9436ef0..ecf62e2d3f 100644 --- a/deal.II/examples/doxygen/theta_timestepping.cc +++ b/deal.II/examples/doxygen/theta_timestepping.cc @@ -18,6 +18,9 @@ #include #include +#include + +#include using namespace dealii; using namespace Algorithms; @@ -58,11 +61,14 @@ class Implicit int main() { FullMatrix matrix(2); - matrix(0,0) = -.1; - matrix(1,1) = -.1; + matrix(0,0) = 0.; + matrix(1,1) = 0.; matrix(0,1) = 31.4; matrix(1,0) = -31.4; + OutputOperator > out; + out.initialize_stream(std::cout); + Explicit op_explicit(matrix); Implicit op_implicit(matrix); ThetaTimestepping > solver(op_explicit, op_implicit); @@ -71,10 +77,14 @@ int main() solver.notify(Events::initial); Vector value(2); + value(0) = 1.; + NamedData*> indata; NamedData*> outdata; Vector* p = &value; outdata.add(p, "value"); + solver.set_output(out); + solver(outdata, indata); } @@ -84,7 +94,6 @@ Explicit::Explicit(const FullMatrix& M) matrix(&M) { m.reinit(M.m(), M.n()); - m = M; } @@ -98,8 +107,13 @@ Explicit::initialize_timestep_data(const TimestepData& t) void Explicit::operator() (NamedData*>& out, const NamedData*>& in) { - 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;inotifications.clear(); unsigned int i = in.find("Previous time"); m.vmult(*out(0), *in(i)); @@ -124,14 +138,13 @@ Implicit::initialize_timestep_data(const TimestepData& t) void Implicit::operator() (NamedData*>& out, const NamedData*>& in) { - 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;inotifications.clear();