Purkinje like stimulation of a realistic BiV geometry

Purkinje like stimulation of a realistic BiV geometry#

In this example we will use a realistic geometry generated from the mean shape of an atlas from the UK Biobank of 630 healthy subjects. We will also stimulate it using a random activation pattern on the endocardial layer of the left and right ventricle.

import logging
from pathlib import Path
import shutil
import beat.units
from mpi4py import MPI
import matplotlib.pyplot as plt
import ufl
import adios4dolfinx
import numpy as np
import cardiac_geometries as cg
import dolfinx
import gotranx
import beat
import pyvista
logging.basicConfig(level=logging.INFO)

Initialize the MPI communicator and create a folder to store the results

comm = MPI.COMM_WORLD
results_folder = Path("results-ukb")
results_folder.mkdir(exist_ok=True)

Define the geometry which is created using the cardiac_geometries package. Now we create the geometry. If the geometry already exists, we just load it.

geodir = results_folder / "geo"
if not geodir.is_dir():
    cg.mesh.ukb(outdir=geodir, comm=comm, char_length_max=2.0, char_length_min=2.0)
INFO:ukb.atlas:Downloading https://www.cardiacatlas.org/share/download.php?id=60&token=AR3JSoaxJ9Ev9n8QAkvV4BHJUniyttqm&download to /github/home/.ukb/UKBRVLV.zip. This may take a while.
0
INFO:ukb.atlas:Done downloading.
INFO:ukb.atlas:Generating points from /github/home/.ukb/UKBRVLV.h5 using mode -1 and std 1.5
INFO:ukb.mesh:Creating mesh for ED with char_length_max=2.0, char_length_min=2.0
INFO:ukb.mesh:Created mesh results-ukb/geo/ED.msh
Info    : Reading 'results-ukb/geo/ED.msh'...
Info    : 27 entities
Info    : 24767 nodes
Info    : 128724 elements
Info    : [  0%] Reading elements                                                                                
Info    : [ 10%] Reading elements                                                                                
Info    : [ 20%] Reading elements                                                                                
Info    : [ 30%] Reading elements                                                                                
Info    : [ 40%] Reading elements                                                                                
Info    : [ 50%] Reading elements                                                                                
Info    : [ 60%] Reading elements                                                                                
Info    : [ 70%] Reading elements                                                                                
Info    : [ 80%] Reading elements                                                                                
Info    : [ 90%] Reading elements                                                                                
                                                                                
Info    : 8 parametrizations
Info    : [  0%] Processing parametrizations                                                                                
Info    : [ 10%] Processing parametrizations                                                                                
Info    : [ 20%] Processing parametrizations                                                                                
Info    : [ 30%] Processing parametrizations                                                                                
Info    : [ 40%] Processing parametrizations                                                                                
Info    : [ 60%] Processing parametrizations                                                                                
Info    : [ 70%] Processing parametrizations                                                                                
Info    : [ 80%] Processing parametrizations                                                                                
Info    : Done reading 'results-ukb/geo/ED.msh'
INFO:ldrb.ldrb:Calculating scalar fields
INFO:ldrb.ldrb:Compute scalar laplacian solutions with the markers: 
lv: [1]
rv: [2]
epi: [7]
base: [5, 6, 4, 3]
INFO:ldrb.ldrb:  Num vertices: 24767
INFO:ldrb.ldrb:  Num cells: 90118
INFO:ldrb.ldrb:  Apex coord: (46.14, -20.23, -28.95)
0.0 1.0
INFO:ldrb.ldrb:
Calculating gradients
INFO:ldrb.ldrb:Compute fiber-sheet system
INFO:ldrb.ldrb:Angles: 
INFO:ldrb.ldrb:alpha: 
 endo_lv: 60
 epi_lv: -60
 endo_septum: 60
 epi_septum: -60
 endo_rv: 60
 epi_rv: -60
INFO:ldrb.ldrb:beta: 
 endo_lv: 0
 epi_lv: 0
 endo_septum: 0
 epi_septum: 0
 endo_rv: 0
 epi_rv: 0
INFO:cardiac_geometries.geometry:Reading geometry from results-ukb/geo
geo = cg.geometry.Geometry.from_folder(comm, geodir)
mesh_unit = "mm"
V = dolfinx.fem.functionspace(geo.mesh, ("P", 1))
INFO:cardiac_geometries.geometry:Reading geometry from results-ukb/geo

Let us plot the geometry

pyvista.start_xvfb()
plotter_markers = pyvista.Plotter()
grid = pyvista.UnstructuredGrid(*dolfinx.plot.vtk_mesh(V))
plotter_markers.add_mesh(grid, show_edges=True)
plotter_markers.view_zy()
if not pyvista.OFF_SCREEN:
    plotter_markers.show()
else:
    plotter_markers.screenshot(results_folder / "mesh.png")
INFO:trame_server.utils.namespace:Translator(prefix=None)
INFO:wslink.backends.aiohttp:awaiting runner setup
INFO:wslink.backends.aiohttp:awaiting site startup
INFO:wslink.backends.aiohttp:Print WSLINK_READY_MSG
INFO:wslink.backends.aiohttp:Schedule auto shutdown with timout 0
INFO:wslink.backends.aiohttp:awaiting running future
error: XDG_RUNTIME_DIR is invalid or not set in the environment.

Now we define the endocardial and epicardial markers. We use the expand_layer_biv function from the beat.utils module to create the markers. This will create a layer where 30% of the elements are endocardial, 30% are epicardial and the rest are midmyocardial. The reason for this is because we will apply different cellular models to the different layers representing the different cells in the different layers. When creating the markers, we also specify the values of markers for the midmyocardial, endocardial and epicardial layers. These are used when we specify the cellular models for the different layers.

mid_marker = 0
endo_marker = 1
epi_marker = 2
endo_epi = beat.utils.expand_layer_biv(
    V=V,
    ft=geo.ffun,
    endo_lv_marker=geo.markers["LV"][0],
    endo_rv_marker=geo.markers["RV"][0],
    epi_marker=geo.markers["EPI"][0],
    endo_size=0.3,
    epi_size=0.3,
    output_mid_marker=mid_marker,
    output_endo_marker=endo_marker,
    output_epi_marker=epi_marker,
)
INFO:beat.utils:Expanding endo and epi markers to the rest of the mesh

Let us plot these markers

pyvista.start_xvfb()
plotter_markers = pyvista.Plotter()
grid = pyvista.UnstructuredGrid(*dolfinx.plot.vtk_mesh(V))
grid.point_data["V"] = endo_epi.x.array
plotter_markers.add_mesh(grid, show_edges=True)
plotter_markers.view_zy()
if not pyvista.OFF_SCREEN:
    plotter_markers.show()
else:
    plotter_markers.screenshot(results_folder / "endo_epi.png")
error: XDG_RUNTIME_DIR is invalid or not set in the environment.

Let us also save the markers to file which can be visualized in Paraview.

with dolfinx.io.XDMFFile(comm, results_folder / "endo_epi.xdmf", "w") as xdmf:
    xdmf.write_mesh(geo.mesh)
    xdmf.write_function(endo_epi)

Now we will run the the single cell simulations to obtain the steady states solutions which will be used as initial states for the full 3D simulation. We will use the package gotranx to generate the generalized Rush Larsen scheme. Please see the following example if you want to learn how to generate the code from a cell model obtained from CellML.

The code for the ODE will be generated only if it does not exist.

print("Running model")
# Load the model
model_path = Path("ToRORd_dynCl_endo.py")
if not model_path.is_file():
    print("Generate code for cell model")
    here = Path.cwd()
    ode = gotranx.load_ode(here / ".." / "odes" / "torord" / "ToRORd_dynCl_endo.ode")
    code = gotranx.cli.gotran2py.get_code(
        ode,
        scheme=[gotranx.schemes.Scheme.generalized_rush_larsen],
    )
    model_path.write_text(code)
Running model
import ToRORd_dynCl_endo
model = ToRORd_dynCl_endo.__dict__

The steady state solutions are obtained by pacing the cells for a certain number of beat with a basic cycle length of 1000 ms. We will use 20 beats here but this should be increased to at least 200 beats for a real simulation. Let’s also use a time step of 0.05 ms for the single cell simulations a

dt = 0.05
nbeats = 20  # Should be set to at least 200
BCL = 1000  # Basic cycle length

Here we also track the voltage and the intracellular calcium concentration (track_indices) which is saved to a separate folder for each layer along with a plot. This is useful to see whether the steady state is reached. Also note that in the ToRORd cell model there is a parameter called celltype which is set to 0 for endocardial cells, 1 for epicardial cells and 2 for midmyocardial cells. This is used to set the different parameters for the different cell types.

celltype_mid = 2
celltype_endo = 0
celltype_epi = 1

Now, let us get the steady states for the different layers.

print("Get steady states")
init_states = {
    mid_marker: beat.single_cell.get_steady_state(
        fun=model["generalized_rush_larsen"],
        init_states=model["init_state_values"](),
        parameters=model["init_parameter_values"](celltype=celltype_mid),
        outdir=results_folder / "mid",
        BCL=BCL,
        nbeats=nbeats,
        track_indices=[model["state_index"]("v"), model["state_index"]("cai")],
        dt=dt,
    ),
    endo_marker: beat.single_cell.get_steady_state(
        fun=model["generalized_rush_larsen"],
        init_states=model["init_state_values"](),
        parameters=model["init_parameter_values"](celltype=celltype_endo),
        outdir=results_folder / "endo",
        BCL=BCL,
        nbeats=nbeats,
        track_indices=[model["state_index"]("v"), model["state_index"]("cai")],
        dt=dt,
    ),
    epi_marker: beat.single_cell.get_steady_state(
        fun=model["generalized_rush_larsen"],
        init_states=model["init_state_values"](),
        parameters=model["init_parameter_values"](celltype=celltype_epi),
        outdir=results_folder / "epi",
        BCL=BCL,
        nbeats=nbeats,
        track_indices=[model["state_index"]("v"), model["state_index"]("cai")],
        dt=dt,
    ),
}
INFO:beat.single_cell:Computing steady state with 20 beats.
Get steady states
INFO:beat.single_cell:Computing steady state with 20 beats.
INFO:beat.single_cell:Computing steady state with 20 beats.

The initial states are now obtained and we can use these to set the initial states for the full 3D simulation. We will also set the parameters for the different layers. We also need to ensure that the stimulus amplitude in the single cell simulations is set to 0.0 as we will apply the stimulus in the 3D simulation.

parameters = {
    mid_marker: model["init_parameter_values"](
        i_Stim_Amplitude=0.0,
        celltype=celltype_mid,
    ),
    endo_marker: model["init_parameter_values"](
        i_Stim_Amplitude=0.0,
        celltype=celltype_endo,
    ),
    epi_marker: model["init_parameter_values"](
        i_Stim_Amplitude=0.0,
        celltype=celltype_epi,
    ),
}

We also need to specify the function to be used for the ODE solver for the different layers. If you plan to run a long running simulation you might consider jit compiling the function using Numba. In this example we will not do that but you can do it by uncommenting the line below.

import numba

# f = numba.jit(model["generalized_rush_larsen"], nopython=True)
f = model["generalized_rush_larsen"]
fun = {
    mid_marker: f,
    endo_marker: f,
    epi_marker: f,
}

We also need to specify the index of the state variable v in the state vector. This is because the voltage appear in both the ODE and and PDE and the solution has be passed between the two solvers.

v_index = {
    mid_marker: model["state_index"]("v"),
    endo_marker: model["state_index"]("v"),
    epi_marker: model["state_index"]("v"),
}

Now let us specify the conductivities and membrane capacitance. The conductivities are set to the default values for the Bishop model. The membrane capacitance is set to 1 uF/cm^2.

chi = 1400.0 * beat.units.ureg("cm**-1")
s_l = 0.24 * beat.units.ureg("S/cm")
s_t = 0.0456 * beat.units.ureg("S/cm")
s_l = (s_l / chi).to("uA/mV").magnitude
s_t = (s_t / chi).to("uA/mV").magnitude
# dim = geo.mesh.topology().dim()
M = s_l * ufl.outer(geo.f0, geo.f0) + s_t * (
    ufl.Identity(3) - ufl.outer(geo.f0, geo.f0)
)
C_m = 1.0 * beat.units.ureg("uF/cm**2")

Now we will create a random activation pattern on the endocardial layer of the left and right ventricle. First we define a time variable and set a seed for the random number generator to ensure reproducibility.

time = dolfinx.fem.Constant(geo.mesh, dolfinx.default_scalar_type(0.0))
np.random.seed(0)

We will stimulate 900 points on the endocardial layer, and we do this by first finding the facets on the endocardial layer and then selecting 900 random points on these facets.

num_points = 900
lv_endo_facets = geo.ffun.find(geo.markers["LV"][0])
rv_endo_facets = geo.ffun.find(geo.markers["RV"][0])
endo_facets = np.concatenate([lv_endo_facets, rv_endo_facets])
np.random.shuffle(endo_facets)
endo_facets_stim = endo_facets[:num_points]

We then select the midpoints of the facets as the points to stimulate.

midpoints = dolfinx.mesh.compute_midpoints(geo.mesh, 2, endo_facets_stim)

We will stimulate the cells with a current of 2.5 uA/cm^2 for 2 ms starting at 0 ms. The points will be activated with some delay which is a random number between 0 and 4 ms.

start = 0.0
duration = 2.0
value = 2.5
activation_duration = 4.0
delays = np.random.uniform(0, activation_duration, num_points)

We now generate the expression for the stimulation. Here we also specify a tolerance of 1.0 which means that the stimulation will be applied to points that are within 1.0 mm of the midpoints.

stim_expr = beat.stimulation.generate_random_activation(
    mesh=geo.mesh,
    time=time,
    points=midpoints,
    delays=delays,
    stim_start=start,
    stim_duration=duration,
    stim_amplitude=value,
    tol=1.0,
)

Finally we will create the stimulus function which will be used to apply the stimulus to the cells.

W = dolfinx.fem.functionspace(geo.mesh, ("DG", 0))
stim = dolfinx.fem.Function(W)

We also create an expression that will be used to update the stimulus at each time step.

stim_update_expr = dolfinx.fem.Expression(stim_expr, W.element.interpolation_points())

Now we are ready to create the PDE solver.

pde = beat.MonodomainModel(
    time=time,
    mesh=geo.mesh,
    M=M,
    I_s=stim,
    C_m=C_m.to(f"uF/{mesh_unit}**2").magnitude,
)

and the ODE solver. Here we also need to specify which space to use for the ODE solver. We will use first order Lagrange elements, which will solve one ODE per node in the mesh.

V_ode = dolfinx.fem.functionspace(geo.mesh, ("P", 1))
ode = beat.odesolver.DolfinMultiODESolver(
    v_ode=dolfinx.fem.Function(V_ode),
    v_pde=pde.state,
    markers=endo_epi,
    num_states={i: len(s) for i, s in init_states.items()},
    fun=fun,
    init_states=init_states,
    parameters=parameters,
    v_index=v_index,
)

We will the the ODE and PDE using a Godunov splitting scheme. This will solve the ODE for a time step and then the PDE for a time step. This will be repeated until the end time is reached.

solver = beat.MonodomainSplittingSolver(pde=pde, ode=ode)

We will also save the results with VTX for visiualization in Paraview and the checkpoint file for retrieving the results later. Here we use the adios4dolfinx package.

vtxfname = results_folder / "v.bp"
checkpointfname = results_folder / "v_checkpoint.bp"

Make sure to remove the files if they already exist

shutil.rmtree(vtxfname, ignore_errors=True)
shutil.rmtree(checkpointfname, ignore_errors=True)
vtx = dolfinx.io.VTXWriter(
    comm,
    vtxfname,
    [solver.pde.state],
    engine="BP4",
)
adios4dolfinx.write_mesh(checkpointfname, geo.mesh)

Let’s create a function to be used to save the results. This will save the results to the VTX file and the checkpoint file.

plotter_voltage = pyvista.Plotter()
viridis = plt.get_cmap("viridis")
grid.point_data["V"] = solver.pde.state.x.array
grid.set_active_scalars("V")
renderer = plotter_voltage.add_mesh(
    grid,
    show_edges=True,
    lighting=False,
    cmap=viridis,
    clim=[-90.0, 40.0],
)
gif_file = Path("ukb_purkinje_sim.gif")
gif_file.unlink(missing_ok=True)
plotter_voltage.open_gif(gif_file.as_posix())
def save(t):
    v = solver.pde.state.x.array
    print(f"Solve for {t=:.2f}, {v.max() =}, {v.min() =}")
    vtx.write(t)
    adios4dolfinx.write_function(checkpointfname, solver.pde.state, time=t, name="v")
    grid.point_data["V"] = solver.pde.state.x.array
    plotter_voltage.write_frame()

We will save results every 1 ms

save_every_ms = 1.0
save_freq = round(save_every_ms / dt)

And we will run the simulation for 10 ms (one beat is 1000 ms so you would typically run for at least 1000 ms)

end_time = 10.0
t = 0.0
i = 0
while t < end_time + 1e-12:
    # Make sure to save at the same time steps that is used by Ambit

    if i % save_freq == 0:
        save(t)

    # We also make sure to update the stimulus at the correct time

    stim.interpolate(stim_update_expr)
    solver.step((t, t + dt))
    i += 1
    t += dt
Solve for t=0.00, v.max() =np.float64(-89.45964555210824), v.min() =np.float64(-89.80955482958359)
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
INFO:beat.monodomain_solver:Stepping from 0.0 to 0.05 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.05 to 0.1 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.1 to 0.15000000000000002 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.15000000000000002 to 0.2 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.2 to 0.25 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.25 to 0.3 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.3 to 0.35 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.35 to 0.39999999999999997 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.39999999999999997 to 0.44999999999999996 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.44999999999999996 to 0.49999999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.49999999999999994 to 0.5499999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.5499999999999999 to 0.6 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.6 to 0.65 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.65 to 0.7000000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.7000000000000001 to 0.7500000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.7500000000000001 to 0.8000000000000002 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.8000000000000002 to 0.8500000000000002 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.8500000000000002 to 0.9000000000000002 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.9000000000000002 to 0.9500000000000003 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 0.9500000000000003 to 1.0000000000000002 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=0.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=1.00, v.max() =np.float64(-50.85401922153438), v.min() =np.float64(-90.67158617595548)
INFO:beat.monodomain_solver:Stepping from 1.0000000000000002 to 1.0500000000000003 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.0500000000000003 to 1.1000000000000003 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.1000000000000003 to 1.1500000000000004 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.1500000000000004 to 1.2000000000000004 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.2000000000000004 to 1.2500000000000004 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.2500000000000004 to 1.3000000000000005 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.3000000000000005 to 1.3500000000000005 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.3500000000000005 to 1.4000000000000006 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.4000000000000006 to 1.4500000000000006 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.4500000000000006 to 1.5000000000000007 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.5000000000000007 to 1.5500000000000007 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.5500000000000007 to 1.6000000000000008 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.6000000000000008 to 1.6500000000000008 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.6500000000000008 to 1.7000000000000008 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.7000000000000008 to 1.7500000000000009 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.7500000000000009 to 1.800000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.800000000000001 to 1.850000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.850000000000001 to 1.900000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.900000000000001 to 1.950000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 1.950000000000001 to 2.000000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=1.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=2.00, v.max() =np.float64(-22.618248863983812), v.min() =np.float64(-90.6185421335608)
INFO:beat.monodomain_solver:Stepping from 2.000000000000001 to 2.0500000000000007 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.0500000000000007 to 2.1000000000000005 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.1000000000000005 to 2.1500000000000004 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.1500000000000004 to 2.2 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.2 to 2.25 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.25 to 2.3 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.3 to 2.3499999999999996 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.3499999999999996 to 2.3999999999999995 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.3999999999999995 to 2.4499999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.4499999999999993 to 2.499999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.499999999999999 to 2.549999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.549999999999999 to 2.5999999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.5999999999999988 to 2.6499999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.6499999999999986 to 2.6999999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.6999999999999984 to 2.7499999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.7499999999999982 to 2.799999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.799999999999998 to 2.849999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.849999999999998 to 2.8999999999999977 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.8999999999999977 to 2.9499999999999975 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 2.9499999999999975 to 2.9999999999999973 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=2.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=3.00, v.max() =np.float64(55.78767655698146), v.min() =np.float64(-90.28901478840224)
INFO:beat.monodomain_solver:Stepping from 2.9999999999999973 to 3.049999999999997 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.049999999999997 to 3.099999999999997 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.099999999999997 to 3.149999999999997 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.149999999999997 to 3.1999999999999966 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.1999999999999966 to 3.2499999999999964 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.2499999999999964 to 3.2999999999999963 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.2999999999999963 to 3.349999999999996 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.349999999999996 to 3.399999999999996 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.399999999999996 to 3.4499999999999957 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.4499999999999957 to 3.4999999999999956 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.4999999999999956 to 3.5499999999999954 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.5499999999999954 to 3.599999999999995 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.599999999999995 to 3.649999999999995 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.649999999999995 to 3.699999999999995 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.699999999999995 to 3.7499999999999947 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.7499999999999947 to 3.7999999999999945 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.7999999999999945 to 3.8499999999999943 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.8499999999999943 to 3.899999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.899999999999994 to 3.949999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 3.949999999999994 to 3.999999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=3.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=4.00, v.max() =np.float64(78.76961312018499), v.min() =np.float64(-89.8707643216794)
INFO:beat.monodomain_solver:Stepping from 3.999999999999994 to 4.049999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.049999999999994 to 4.099999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.099999999999993 to 4.149999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.149999999999993 to 4.199999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.199999999999993 to 4.249999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.249999999999993 to 4.299999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.299999999999993 to 4.3499999999999925 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.3499999999999925 to 4.399999999999992 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.399999999999992 to 4.449999999999992 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.449999999999992 to 4.499999999999992 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.499999999999992 to 4.549999999999992 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.549999999999992 to 4.599999999999992 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.599999999999992 to 4.6499999999999915 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.6499999999999915 to 4.699999999999991 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.699999999999991 to 4.749999999999991 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.749999999999991 to 4.799999999999991 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.799999999999991 to 4.849999999999991 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.849999999999991 to 4.899999999999991 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.899999999999991 to 4.94999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 4.94999999999999 to 4.99999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=4.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=5.00, v.max() =np.float64(67.7091499923633), v.min() =np.float64(-89.17284089856433)
INFO:beat.monodomain_solver:Stepping from 4.99999999999999 to 5.04999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.04999999999999 to 5.09999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.09999999999999 to 5.14999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.14999999999999 to 5.1999999999999895 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.1999999999999895 to 5.249999999999989 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.249999999999989 to 5.299999999999989 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.299999999999989 to 5.349999999999989 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.349999999999989 to 5.399999999999989 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.399999999999989 to 5.449999999999989 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.449999999999989 to 5.4999999999999885 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.4999999999999885 to 5.549999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.549999999999988 to 5.599999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.599999999999988 to 5.649999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.649999999999988 to 5.699999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.699999999999988 to 5.749999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.749999999999988 to 5.799999999999987 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.799999999999987 to 5.849999999999987 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.849999999999987 to 5.899999999999987 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.899999999999987 to 5.949999999999987 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 5.949999999999987 to 5.999999999999987 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=5.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=6.00, v.max() =np.float64(51.28098712028302), v.min() =np.float64(-88.94621311116582)
INFO:beat.monodomain_solver:Stepping from 5.999999999999987 to 6.0499999999999865 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.0499999999999865 to 6.099999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.099999999999986 to 6.149999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.149999999999986 to 6.199999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.199999999999986 to 6.249999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.249999999999986 to 6.299999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.299999999999986 to 6.349999999999985 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.349999999999985 to 6.399999999999985 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.399999999999985 to 6.449999999999985 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.449999999999985 to 6.499999999999985 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.499999999999985 to 6.549999999999985 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.549999999999985 to 6.5999999999999845 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.5999999999999845 to 6.649999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.649999999999984 to 6.699999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.699999999999984 to 6.749999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.749999999999984 to 6.799999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.799999999999984 to 6.849999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.849999999999984 to 6.8999999999999835 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.8999999999999835 to 6.949999999999983 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 6.949999999999983 to 6.999999999999983 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=6.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=7.00, v.max() =np.float64(33.965113146219664), v.min() =np.float64(-91.45211068672965)
INFO:beat.monodomain_solver:Stepping from 6.999999999999983 to 7.049999999999983 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.049999999999983 to 7.099999999999983 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.099999999999983 to 7.149999999999983 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.149999999999983 to 7.199999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.199999999999982 to 7.249999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.249999999999982 to 7.299999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.299999999999982 to 7.349999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.349999999999982 to 7.399999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.399999999999982 to 7.4499999999999815 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.4499999999999815 to 7.499999999999981 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.499999999999981 to 7.549999999999981 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.549999999999981 to 7.599999999999981 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.599999999999981 to 7.649999999999981 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.649999999999981 to 7.699999999999981 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.699999999999981 to 7.7499999999999805 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.7499999999999805 to 7.79999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.79999999999998 to 7.84999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.84999999999998 to 7.89999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.89999999999998 to 7.94999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 7.94999999999998 to 7.99999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=7.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=8.00, v.max() =np.float64(34.208060600991345), v.min() =np.float64(-89.25498687043755)
INFO:beat.monodomain_solver:Stepping from 7.99999999999998 to 8.04999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.04999999999998 to 8.09999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.09999999999998 to 8.14999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.14999999999998 to 8.199999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.199999999999982 to 8.249999999999982 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.249999999999982 to 8.299999999999983 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.299999999999983 to 8.349999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.349999999999984 to 8.399999999999984 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.399999999999984 to 8.449999999999985 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.449999999999985 to 8.499999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.499999999999986 to 8.549999999999986 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.549999999999986 to 8.599999999999987 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.599999999999987 to 8.649999999999988 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.649999999999988 to 8.699999999999989 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.699999999999989 to 8.74999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.74999999999999 to 8.79999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.79999999999999 to 8.84999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.84999999999999 to 8.899999999999991 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.899999999999991 to 8.949999999999992 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 8.949999999999992 to 8.999999999999993 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=8.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=9.00, v.max() =np.float64(32.93084613718629), v.min() =np.float64(-90.98119848538337)
INFO:beat.monodomain_solver:Stepping from 8.999999999999993 to 9.049999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.049999999999994 to 9.099999999999994 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.05000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.099999999999994 to 9.149999999999995 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.10000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.149999999999995 to 9.199999999999996 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.15000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.199999999999996 to 9.249999999999996 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.20000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.249999999999996 to 9.299999999999997 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.25000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.299999999999997 to 9.349999999999998 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.30000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.349999999999998 to 9.399999999999999 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.35000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.399999999999999 to 9.45 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.40000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.45 to 9.5 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.45000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.5 to 9.55 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.50000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.55 to 9.600000000000001 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.55000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.600000000000001 to 9.650000000000002 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.60000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.650000000000002 to 9.700000000000003 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.65000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.700000000000003 to 9.750000000000004 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.70000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.750000000000004 to 9.800000000000004 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.75000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.800000000000004 to 9.850000000000005 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.80000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.850000000000005 to 9.900000000000006 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.85000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.900000000000006 to 9.950000000000006 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.90000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
INFO:beat.monodomain_solver:Stepping from 9.950000000000006 to 10.000000000000007 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=9.95000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
Solve for t=10.00, v.max() =np.float64(32.4983382830641), v.min() =np.float64(-92.34884023485988)
INFO:beat.monodomain_solver:Stepping from 10.000000000000007 to 10.050000000000008 using theta = 1.0
INFO:beat.monodomain_solver:Tentative ODE step with t0=10.00000 dt=0.05000
INFO:beat.monodomain_solver:PDE step
plotter_voltage.close()
# -

_