Skip to content

Playing with Finite Volumes in dune gdt, part 1

Felix Schindler edited this page Aug 25, 2017 · 5 revisions

As always, this is more a note to myself than anything else.

Tobias added support for Finite Volume (FV) methods for hyperbolic problems to dune-gdt a while ago. Nevertheless, I wanted to really understand what it takes to implement FV methods (for my entertainment and in order to understand which building blocks should be provided by dune-gdt as a library).

So I started a playground repository to pull all dependencies together and used our docker setup to start an arch-minimal-interactive container. I use the qtcreator IDE and my starting point is the test_empty target in dune-gdt which can be found in dune/gdt/test/empty.cc.

I will just post some snippets here, which should be enough to get an idea. Our file starts of with some includes and defines:

#include <dune/xt/common/test/main.hxx> // <- this one has to come first (includes the config.h)!

#include <cmath>

#include <dune/xt/la/container/common.hh>
#include <dune/xt/la/container/eigen.hh>
#include <dune/xt/grid/grids.hh>
#include <dune/xt/grid/gridprovider/cube.hh>
#include <dune/xt/grid/intersection.hh>
#include <dune/xt/grid/view/periodic.hh>
#include <dune/xt/functions/lambda/global-function.hh>
#include <dune/xt/functions/lambda/global-flux-function.hh>

#include <dune/gdt/assembler/system.hh>
#include <dune/gdt/discretefunction/default.hh>
#include <dune/gdt/local/operators/lambda.hh>
#include <dune/gdt/operators/advection-dg.hh>
#include <dune/gdt/operators/advection-fv.hh>
#include <dune/gdt/operators/base.hh>
#include <dune/gdt/projections.hh>
#include <dune/gdt/spaces/fv/default.hh>
#include <dune/gdt/spaces/dg/dune-fem-wrapper.hh>
#include <dune/gdt/timestepper/explicit-rungekutta.hh>

using namespace Dune;
using namespace Dune::GDT;

using G = ALU_2D_SIMPLEX_CONFORMING;
using E = typename G::template Codim::Entity;
using D = double;
static const constexpr size_t d = G::dimension;
using R = double;
static const constexpr size_t r = 1;

using DomainType = XT::Common::FieldVector;

using U = XT::Functions::LocalizableFunctionInterface;
using F = XT::Functions::LocalizableFluxFunctionInterface;

The main then roughly looks like this:

GTEST_TEST(empty, main)
{
  auto grid = XT::Grid::make_cube_grid<G>(DomainType(0.), DomainType(1.), {32, 32});
  grid.global_refine(1);

  auto leaf_layer = grid.leaf_view();
  std::cout << "grid has " << leaf_layer.indexSet().size(0) << " elements" << std::endl;
  auto periodic_leaf_layer = XT::Grid::make_periodic_grid_layer(leaf_layer);
  using GL = decltype(periodic_leaf_layer);

  using U0 = XT::Functions::GlobalLambdaFunction<E, D, d, R, r>;
  U0 u_0(
      [](const auto& xx, const auto& /*mu*/) {
        return std::exp(-0.5 * (((xx - DomainType(0.5)) * (xx - DomainType(0.5))) / (0.1 * 0.1)));
      },
      /*order=*/3,
      /*parameter_type=*/{},
      /*name=*/"initial_values");
  u_0.visualize(periodic_leaf_layer, "initial_values");

  XT::Functions::GlobalLambdaFluxFunction<U, 0, R, d> burgers(
      [](const auto& /*x*/, const auto& u, const auto& /*mu*/) {
        return XT::Common::FieldVector<R, d>(std::pow(u[0], 2.));
      },
      {},
      "burgers_flux",
      [](const XT::Common::Parameter& /*mu*/) { return 2; },
      [](const auto& /*x*/, const auto& u, const auto& /*mu*/) { return XT::Common::FieldMatrix<R, r, d>(u); });

  using S = FvSpace<GL, R, r>;
  S space(periodic_leaf_layer);
  std::cout << "space has " << space.mapper().size() << " DoFs" << std::endl;
  std::cout << std::endl;

  using V = XT::LA::EigenDenseVector<R>;
  using DF = DiscreteFunction<S, V>;
  DF initial_values(space, "solution");

  project(u_0, initial_values);

  using OpType = FvOperator<GL, S, V>;
  OpType advec_op(space, burgers);

  const double T = 1.;
  ExplicitRungeKuttaTimeStepper<OpType, DF, TimeStepperMethods::explicit_rungekutta_third_order_ssp> time_stepper(
      advec_op, initial_values, -1.);
  const auto dt = time_stepper.find_suitable_dt(T / 10., 10, 1.1 * initial_values.vector().sup_norm(), 25);
  time_stepper.solve(T, dt.second, 100, false, true);
}

As you can see, we create a grid, turn it into a periodic one, create a Burgers flux, instantiate a space and the spatial operator FvOperator and use an explicit timestepper. The timestepper is configured to save the solution to disc roughly every ten steps. I am interested in looking at different ways to implement the FV operator and, all in all, this seems like a reasonable application to do some comparisons: the spatial operator plays the dominant role, but other stuff is also happening.

I am using relatively small grid here, so I don't have to wait for the results forever.

The first draft of an operator

A straighforward implementation of FvOperator coud look like this:

template <class GL, class S, class V>
class FvOperator
{
  using DF = DiscreteFunction<S, V>;
  using I = XT::Grid::extract_intersection_t<GL>;

public:
  FvOperator(const S& s, const F& f)
    : s_(s)
    , f_(f)
  {
  }

  void apply(const DF& source, DF& range, const XT::Common::Parameter& /*mu*/ = {}) const
  {
    range.vector() *= 0.;

    auto numerical_flux = [](const auto& flux, const auto& u, const auto& v, const auto& n) {
      const auto df = flux.partial_u({}, (u + v) / 2.);
      if ((df[0] * n) > 0)
        return flux.evaluate({}, u) * n;
      else
        return flux.evaluate({}, v) * n;
    };

    for (auto&& entity : Dune::elements(s_.grid_layer())) {
      const auto h = entity.geometry().volume();
      const auto u_inside = source.local_discrete_function(entity);
      for (auto&& intersection : Dune::intersections(s_.grid_layer(), entity)) {
        const auto neighbor = intersection.outside();
        const auto normal = intersection.centerUnitOuterNormal();
        const auto u_outside = source.local_discrete_function(neighbor);
        const auto g =
            numerical_flux(*f_.local_function(entity), u_inside->vector().get(0), u_outside->vector().get(0), normal);
        range.local_discrete_function(entity)->vector().add(0, (g * intersection.geometry().volume()) / h);
      }
    }
  } // ... apply(...)

private:
  const S& s_;
  const F& f_;
}; // class FvOperator

For now, we have a hordcoded simple upwinding flux. On each entity, we visit all intersections and compute the numerical flux directly using the DoF on either side. Since we divide by h we implicitely presume that the basis evalautes to 1. Running this code gives the following output on my machine (a Lenovo x250 with an Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz):

./test_empty 
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from empty
[ RUN      ] empty.main
grid has 4096 elements
space has 4096 DoFs

00:00|gdt.timestepper.explicitrungekutta.find_suitable_dt: trying 25 steps with dt = 0.1... failed: threshold of 1.08229 reached after 1 step!
00:00|gdt.timestepper.explicitrungekutta.find_suitable_dt: trying 25 steps with dt = 0.01... failed: threshold of 1.08229 reached after 2 steps!
00:00|gdt.timestepper.explicitrungekutta.find_suitable_dt: trying 25 steps with dt = 0.001... succeeded!
00:01|gdt.timestepper.solve: t = 0: visualizing initial values... done
00:01|gdt.timestepper.solve: t = 0: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.001: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.002: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.003: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.004: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.005: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.006: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.007: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.008: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.009: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.01: visualizing current state... done
00:01|gdt.timestepper.solve: t = 0.01: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.011: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.012: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.013: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.014: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.015: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.016: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.017: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.018: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.019: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.02: visualizing current state... done
00:01|gdt.timestepper.solve: t = 0.02: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.021: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.022: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.023: stepping with dt = 0.001... done
00:01|gdt.timestepper.solve: t = 0.024: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.025: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.026: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.027: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.028: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.029: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.03: visualizing current state... done
00:02|gdt.timestepper.solve: t = 0.03: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.031: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.032: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.033: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.034: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.035: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.036: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.037: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.038: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.039: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.04: visualizing current state... done
00:02|gdt.timestepper.solve: t = 0.04: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.041: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.042: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.043: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.044: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.045: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.046: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.047: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.048: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.049: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.05: visualizing current state... done
00:02|gdt.timestepper.solve: t = 0.05: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.051: stepping with dt = 0.001... done
00:02|gdt.timestepper.solve: t = 0.052: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.053: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.054: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.055: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.056: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.057: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.058: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.059: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.06: visualizing current state... done
00:03|gdt.timestepper.solve: t = 0.06: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.061: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.062: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.063: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.064: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.065: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.066: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.067: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.068: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.069: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.07: visualizing current state... done
00:03|gdt.timestepper.solve: t = 0.07: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.071: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.072: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.073: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.074: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.075: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.076: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.077: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.078: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.079: stepping with dt = 0.001... done
00:03|gdt.timestepper.solve: t = 0.08: visualizing current state... done
00:04|gdt.timestepper.solve: t = 0.08: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.081: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.082: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.083: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.084: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.085: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.086: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.087: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.088: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.089: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.09: visualizing current state... done
00:04|gdt.timestepper.solve: t = 0.09: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.091: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.092: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.093: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.094: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.095: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.096: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.097: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.098: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.099: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.1: visualizing current state... done
00:04|gdt.timestepper.solve: t = 0.1: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.101: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.102: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.103: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.104: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.105: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.106: stepping with dt = 0.001... done
00:04|gdt.timestepper.solve: t = 0.107: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.108: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.109: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.11: visualizing current state... done
00:05|gdt.timestepper.solve: t = 0.11: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.111: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.112: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.113: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.114: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.115: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.116: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.117: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.118: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.119: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.12: visualizing current state... done
00:05|gdt.timestepper.solve: t = 0.12: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.121: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.122: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.123: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.124: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.125: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.126: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.127: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.128: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.129: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.13: visualizing current state... done
00:05|gdt.timestepper.solve: t = 0.13: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.131: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.132: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.133: stepping with dt = 0.001... done
00:05|gdt.timestepper.solve: t = 0.134: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.135: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.136: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.137: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.138: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.139: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.14: visualizing current state... done
00:06|gdt.timestepper.solve: t = 0.14: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.141: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.142: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.143: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.144: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.145: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.146: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.147: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.148: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.149: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.15: visualizing current state... done
00:06|gdt.timestepper.solve: t = 0.15: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.151: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.152: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.153: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.154: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.155: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.156: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.157: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.158: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.159: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.16: visualizing current state... done
00:06|gdt.timestepper.solve: t = 0.16: stepping with dt = 0.001... done
00:06|gdt.timestepper.solve: t = 0.161: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.162: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.163: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.164: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.165: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.166: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.167: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.168: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.169: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.17: visualizing current state... done
00:07|gdt.timestepper.solve: t = 0.17: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.171: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.172: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.173: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.174: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.175: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.176: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.177: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.178: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.179: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.18: visualizing current state... done
00:07|gdt.timestepper.solve: t = 0.18: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.181: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.182: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.183: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.184: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.185: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.186: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.187: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.188: stepping with dt = 0.001... done
00:07|gdt.timestepper.solve: t = 0.189: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.19: visualizing current state... done
00:08|gdt.timestepper.solve: t = 0.19: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.191: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.192: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.193: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.194: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.195: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.196: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.197: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.198: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.199: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.2: visualizing current state... done
00:08|gdt.timestepper.solve: t = 0.2: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.201: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.202: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.203: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.204: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.205: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.206: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.207: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.208: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.209: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.21: visualizing current state... done
00:08|gdt.timestepper.solve: t = 0.21: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.211: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.212: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.213: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.214: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.215: stepping with dt = 0.001... done
00:08|gdt.timestepper.solve: t = 0.216: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.217: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.218: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.219: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.22: visualizing current state... done
00:09|gdt.timestepper.solve: t = 0.22: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.221: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.222: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.223: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.224: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.225: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.226: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.227: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.228: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.229: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.23: visualizing current state... done
00:09|gdt.timestepper.solve: t = 0.23: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.231: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.232: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.233: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.234: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.235: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.236: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.237: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.238: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.239: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.24: visualizing current state... done
00:09|gdt.timestepper.solve: t = 0.24: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.241: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.242: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.243: stepping with dt = 0.001... done
00:09|gdt.timestepper.solve: t = 0.244: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.245: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.246: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.247: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.248: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.249: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.25: visualizing current state... done
00:10|gdt.timestepper.solve: t = 0.25: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.251: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.252: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.253: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.254: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.255: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.256: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.257: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.258: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.259: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.26: visualizing current state... done
00:10|gdt.timestepper.solve: t = 0.26: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.261: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.262: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.263: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.264: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.265: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.266: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.267: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.268: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.269: stepping with dt = 0.001... done
00:10|gdt.timestepper.solve: t = 0.27: visualizing current state... done
00:10|gdt.timestepper.solve: t = 0.27: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.271: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.272: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.273: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.274: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.275: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.276: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.277: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.278: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.279: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.28: visualizing current state... done
00:11|gdt.timestepper.solve: t = 0.28: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.281: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.282: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.283: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.284: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.285: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.286: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.287: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.288: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.289: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.29: visualizing current state... done
00:11|gdt.timestepper.solve: t = 0.29: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.291: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.292: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.293: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.294: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.295: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.296: stepping with dt = 0.001... done
00:11|gdt.timestepper.solve: t = 0.297: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.298: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.299: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.3: visualizing current state... done
00:12|gdt.timestepper.solve: t = 0.3: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.301: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.302: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.303: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.304: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.305: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.306: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.307: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.308: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.309: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.31: visualizing current state... done
00:12|gdt.timestepper.solve: t = 0.31: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.311: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.312: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.313: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.314: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.315: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.316: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.317: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.318: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.319: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.32: visualizing current state... done
00:12|gdt.timestepper.solve: t = 0.32: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.321: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.322: stepping with dt = 0.001... done
00:12|gdt.timestepper.solve: t = 0.323: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.324: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.325: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.326: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.327: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.328: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.329: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.33: visualizing current state... done
00:13|gdt.timestepper.solve: t = 0.33: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.331: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.332: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.333: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.334: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.335: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.336: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.337: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.338: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.339: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.34: visualizing current state... done
00:13|gdt.timestepper.solve: t = 0.34: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.341: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.342: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.343: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.344: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.345: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.346: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.347: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.348: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.349: stepping with dt = 0.001... done
00:13|gdt.timestepper.solve: t = 0.35: visualizing current state... done
00:13|gdt.timestepper.solve: t = 0.35: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.351: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.352: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.353: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.354: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.355: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.356: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.357: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.358: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.359: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.36: visualizing current state... done
00:14|gdt.timestepper.solve: t = 0.36: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.361: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.362: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.363: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.364: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.365: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.366: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.367: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.368: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.369: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.37: visualizing current state... done
00:14|gdt.timestepper.solve: t = 0.37: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.371: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.372: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.373: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.374: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.375: stepping with dt = 0.001... done
00:14|gdt.timestepper.solve: t = 0.376: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.377: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.378: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.379: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.38: visualizing current state... done
00:15|gdt.timestepper.solve: t = 0.38: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.381: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.382: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.383: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.384: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.385: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.386: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.387: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.388: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.389: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.39: visualizing current state... done
00:15|gdt.timestepper.solve: t = 0.39: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.391: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.392: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.393: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.394: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.395: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.396: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.397: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.398: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.399: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.4: visualizing current state... done
00:15|gdt.timestepper.solve: t = 0.4: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.401: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.402: stepping with dt = 0.001... done
00:15|gdt.timestepper.solve: t = 0.403: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.404: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.405: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.406: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.407: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.408: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.409: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.41: visualizing current state... done
00:16|gdt.timestepper.solve: t = 0.41: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.411: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.412: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.413: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.414: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.415: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.416: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.417: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.418: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.419: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.42: visualizing current state... done
00:16|gdt.timestepper.solve: t = 0.42: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.421: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.422: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.423: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.424: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.425: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.426: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.427: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.428: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.429: stepping with dt = 0.001... done
00:16|gdt.timestepper.solve: t = 0.43: visualizing current state... done
00:17|gdt.timestepper.solve: t = 0.43: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.431: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.432: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.433: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.434: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.435: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.436: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.437: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.438: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.439: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.44: visualizing current state... done
00:17|gdt.timestepper.solve: t = 0.44: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.441: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.442: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.443: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.444: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.445: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.446: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.447: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.448: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.449: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.45: visualizing current state... done
00:17|gdt.timestepper.solve: t = 0.45: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.451: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.452: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.453: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.454: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.455: stepping with dt = 0.001... done
00:17|gdt.timestepper.solve: t = 0.456: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.457: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.458: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.459: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.46: visualizing current state... done
00:18|gdt.timestepper.solve: t = 0.46: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.461: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.462: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.463: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.464: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.465: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.466: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.467: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.468: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.469: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.47: visualizing current state... done
00:18|gdt.timestepper.solve: t = 0.47: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.471: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.472: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.473: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.474: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.475: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.476: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.477: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.478: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.479: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.48: visualizing current state... done
00:18|gdt.timestepper.solve: t = 0.48: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.481: stepping with dt = 0.001... done
00:18|gdt.timestepper.solve: t = 0.482: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.483: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.484: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.485: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.486: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.487: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.488: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.489: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.49: visualizing current state... done
00:19|gdt.timestepper.solve: t = 0.49: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.491: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.492: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.493: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.494: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.495: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.496: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.497: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.498: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.499: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.5: visualizing current state... done
00:19|gdt.timestepper.solve: t = 0.5: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.501: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.502: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.503: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.504: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.505: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.506: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.507: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.508: stepping with dt = 0.001... done
00:19|gdt.timestepper.solve: t = 0.509: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.51: visualizing current state... done
00:20|gdt.timestepper.solve: t = 0.51: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.511: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.512: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.513: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.514: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.515: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.516: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.517: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.518: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.519: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.52: visualizing current state... done
00:20|gdt.timestepper.solve: t = 0.52: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.521: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.522: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.523: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.524: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.525: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.526: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.527: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.528: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.529: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.53: visualizing current state... done
00:20|gdt.timestepper.solve: t = 0.53: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.531: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.532: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.533: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.534: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.535: stepping with dt = 0.001... done
00:20|gdt.timestepper.solve: t = 0.536: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.537: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.538: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.539: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.54: visualizing current state... done
00:21|gdt.timestepper.solve: t = 0.54: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.541: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.542: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.543: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.544: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.545: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.546: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.547: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.548: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.549: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.55: visualizing current state... done
00:21|gdt.timestepper.solve: t = 0.55: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.551: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.552: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.553: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.554: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.555: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.556: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.557: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.558: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.559: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.56: visualizing current state... done
00:21|gdt.timestepper.solve: t = 0.56: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.561: stepping with dt = 0.001... done
00:21|gdt.timestepper.solve: t = 0.562: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.563: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.564: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.565: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.566: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.567: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.568: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.569: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.57: visualizing current state... done
00:22|gdt.timestepper.solve: t = 0.57: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.571: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.572: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.573: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.574: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.575: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.576: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.577: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.578: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.579: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.58: visualizing current state... done
00:22|gdt.timestepper.solve: t = 0.58: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.581: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.582: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.583: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.584: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.585: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.586: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.587: stepping with dt = 0.001... done
00:22|gdt.timestepper.solve: t = 0.588: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.589: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.59: visualizing current state... done
00:23|gdt.timestepper.solve: t = 0.59: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.591: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.592: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.593: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.594: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.595: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.596: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.597: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.598: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.599: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.6: visualizing current state... done
00:23|gdt.timestepper.solve: t = 0.6: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.601: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.602: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.603: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.604: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.605: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.606: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.607: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.608: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.609: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.61: visualizing current state... done
00:23|gdt.timestepper.solve: t = 0.61: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.611: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.612: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.613: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.614: stepping with dt = 0.001... done
00:23|gdt.timestepper.solve: t = 0.615: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.616: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.617: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.618: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.619: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.62: visualizing current state... done
00:24|gdt.timestepper.solve: t = 0.62: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.621: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.622: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.623: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.624: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.625: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.626: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.627: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.628: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.629: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.63: visualizing current state... done
00:24|gdt.timestepper.solve: t = 0.63: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.631: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.632: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.633: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.634: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.635: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.636: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.637: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.638: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.639: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.64: visualizing current state... done
00:24|gdt.timestepper.solve: t = 0.64: stepping with dt = 0.001... done
00:24|gdt.timestepper.solve: t = 0.641: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.642: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.643: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.644: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.645: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.646: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.647: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.648: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.649: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.65: visualizing current state... done
00:25|gdt.timestepper.solve: t = 0.65: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.651: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.652: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.653: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.654: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.655: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.656: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.657: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.658: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.659: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.66: visualizing current state... done
00:25|gdt.timestepper.solve: t = 0.66: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.661: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.662: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.663: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.664: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.665: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.666: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.667: stepping with dt = 0.001... done
00:25|gdt.timestepper.solve: t = 0.668: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.669: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.67: visualizing current state... done
00:26|gdt.timestepper.solve: t = 0.67: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.671: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.672: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.673: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.674: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.675: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.676: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.677: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.678: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.679: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.68: visualizing current state... done
00:26|gdt.timestepper.solve: t = 0.68: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.681: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.682: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.683: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.684: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.685: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.686: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.687: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.688: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.689: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.69: visualizing current state... done
00:26|gdt.timestepper.solve: t = 0.69: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.691: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.692: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.693: stepping with dt = 0.001... done
00:26|gdt.timestepper.solve: t = 0.694: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.695: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.696: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.697: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.698: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.699: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.7: visualizing current state... done
00:27|gdt.timestepper.solve: t = 0.7: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.701: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.702: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.703: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.704: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.705: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.706: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.707: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.708: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.709: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.71: visualizing current state... done
00:27|gdt.timestepper.solve: t = 0.71: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.711: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.712: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.713: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.714: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.715: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.716: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.717: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.718: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.719: stepping with dt = 0.001... done
00:27|gdt.timestepper.solve: t = 0.72: visualizing current state... done
00:27|gdt.timestepper.solve: t = 0.72: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.721: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.722: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.723: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.724: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.725: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.726: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.727: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.728: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.729: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.73: visualizing current state... done
00:28|gdt.timestepper.solve: t = 0.73: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.731: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.732: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.733: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.734: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.735: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.736: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.737: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.738: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.739: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.74: visualizing current state... done
00:28|gdt.timestepper.solve: t = 0.74: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.741: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.742: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.743: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.744: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.745: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.746: stepping with dt = 0.001... done
00:28|gdt.timestepper.solve: t = 0.747: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.748: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.749: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.75: visualizing current state... done
00:29|gdt.timestepper.solve: t = 0.75: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.751: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.752: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.753: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.754: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.755: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.756: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.757: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.758: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.759: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.76: visualizing current state... done
00:29|gdt.timestepper.solve: t = 0.76: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.761: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.762: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.763: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.764: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.765: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.766: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.767: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.768: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.769: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.77: visualizing current state... done
00:29|gdt.timestepper.solve: t = 0.77: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.771: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.772: stepping with dt = 0.001... done
00:29|gdt.timestepper.solve: t = 0.773: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.774: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.775: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.776: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.777: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.778: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.779: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.78: visualizing current state... done
00:30|gdt.timestepper.solve: t = 0.78: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.781: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.782: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.783: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.784: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.785: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.786: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.787: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.788: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.789: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.79: visualizing current state... done
00:30|gdt.timestepper.solve: t = 0.79: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.791: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.792: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.793: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.794: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.795: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.796: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.797: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.798: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.799: stepping with dt = 0.001... done
00:30|gdt.timestepper.solve: t = 0.8: visualizing current state... done
00:30|gdt.timestepper.solve: t = 0.8: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.801: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.802: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.803: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.804: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.805: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.806: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.807: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.808: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.809: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.81: visualizing current state... done
00:31|gdt.timestepper.solve: t = 0.81: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.811: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.812: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.813: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.814: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.815: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.816: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.817: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.818: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.819: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.82: visualizing current state... done
00:31|gdt.timestepper.solve: t = 0.82: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.821: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.822: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.823: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.824: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.825: stepping with dt = 0.001... done
00:31|gdt.timestepper.solve: t = 0.826: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.827: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.828: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.829: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.83: visualizing current state... done
00:32|gdt.timestepper.solve: t = 0.83: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.831: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.832: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.833: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.834: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.835: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.836: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.837: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.838: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.839: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.84: visualizing current state... done
00:32|gdt.timestepper.solve: t = 0.84: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.841: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.842: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.843: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.844: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.845: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.846: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.847: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.848: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.849: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.85: visualizing current state... done
00:32|gdt.timestepper.solve: t = 0.85: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.851: stepping with dt = 0.001... done
00:32|gdt.timestepper.solve: t = 0.852: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.853: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.854: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.855: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.856: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.857: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.858: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.859: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.86: visualizing current state... done
00:33|gdt.timestepper.solve: t = 0.86: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.861: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.862: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.863: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.864: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.865: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.866: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.867: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.868: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.869: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.87: visualizing current state... done
00:33|gdt.timestepper.solve: t = 0.87: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.871: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.872: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.873: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.874: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.875: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.876: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.877: stepping with dt = 0.001... done
00:33|gdt.timestepper.solve: t = 0.878: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.879: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.88: visualizing current state... done
00:34|gdt.timestepper.solve: t = 0.88: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.881: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.882: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.883: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.884: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.885: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.886: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.887: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.888: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.889: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.89: visualizing current state... done
00:34|gdt.timestepper.solve: t = 0.89: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.891: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.892: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.893: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.894: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.895: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.896: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.897: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.898: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.899: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.9: visualizing current state... done
00:34|gdt.timestepper.solve: t = 0.9: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.901: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.902: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.903: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.904: stepping with dt = 0.001... done
00:34|gdt.timestepper.solve: t = 0.905: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.906: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.907: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.908: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.909: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.91: visualizing current state... done
00:35|gdt.timestepper.solve: t = 0.91: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.911: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.912: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.913: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.914: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.915: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.916: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.917: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.918: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.919: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.92: visualizing current state... done
00:35|gdt.timestepper.solve: t = 0.92: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.921: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.922: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.923: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.924: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.925: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.926: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.927: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.928: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.929: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.93: visualizing current state... done
00:35|gdt.timestepper.solve: t = 0.93: stepping with dt = 0.001... done
00:35|gdt.timestepper.solve: t = 0.931: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.932: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.933: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.934: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.935: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.936: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.937: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.938: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.939: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.94: visualizing current state... done
00:36|gdt.timestepper.solve: t = 0.94: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.941: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.942: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.943: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.944: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.945: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.946: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.947: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.948: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.949: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.95: visualizing current state... done
00:36|gdt.timestepper.solve: t = 0.95: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.951: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.952: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.953: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.954: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.955: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.956: stepping with dt = 0.001... done
00:36|gdt.timestepper.solve: t = 0.957: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.958: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.959: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.96: visualizing current state... done
00:37|gdt.timestepper.solve: t = 0.96: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.961: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.962: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.963: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.964: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.965: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.966: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.967: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.968: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.969: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.97: visualizing current state... done
00:37|gdt.timestepper.solve: t = 0.97: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.971: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.972: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.973: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.974: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.975: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.976: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.977: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.978: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.979: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.98: visualizing current state... done
00:37|gdt.timestepper.solve: t = 0.98: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.981: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.982: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.983: stepping with dt = 0.001... done
00:37|gdt.timestepper.solve: t = 0.984: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.985: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.986: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.987: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.988: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.989: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.99: visualizing current state... done
00:38|gdt.timestepper.solve: t = 0.99: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.991: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.992: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.993: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.994: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.995: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.996: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.997: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.998: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 0.999: stepping with dt = 0.001... done
00:38|gdt.timestepper.solve: t = 1: visualizing current state... done
[       OK ] empty.main (38612 ms)
[----------] 1 test from empty (38612 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (38612 ms total)
[  PASSED  ] 1 test.

The main point to take away is the total runtime of roughly 38s, more in Part 2.