.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples_tutorials/example_restart.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_tutorials_example_restart.py: ================================================================================ Restart ================================================================================ In this tutorial, the restart functionnality of Freshkiss3D is explained. .. GENERATED FROM PYTHON SOURCE LINES 9-18 .. code-block:: default import os import matplotlib.pylab as plt import numpy as np import freshkiss3d as fk import freshkiss3d.extra.plots as fk_plt # ~ os.system('rm -r outputs') #sphinx_gallery_thumbnail_number = 4 .. GENERATED FROM PYTHON SOURCE LINES 19-28 Restart scheduler: -------------------- To enable the restart, you have to set an ``h5_writer`` and pass it to the ``Problem`` class. Here we set the restart scheduler to time and set it to 1,2 and 3s. At the first time set simulation will stop and create a back up save file. Saved data ara stored inside a ``restart_data.h5`` file that allow to perform a restart of the simulation from the time it stopped. .. GENERATED FROM PYTHON SOURCE LINES 31-35 .. note:: Restart can be performed several times in the same simulation. In our case, simulation time is splitted in 4 sections, and 3 iterative restarts are performed. .. GENERATED FROM PYTHON SOURCE LINES 38-41 Case set-up: -------------------- .. GENERATED FROM PYTHON SOURCE LINES 42-88 .. code-block:: default restart_times = [1., 2., 3.] restart_scheduler = fk.schedules(times=restart_times) simutime = fk.SimuTime(final_time=5.1, time_iteration_max=20000, second_order=True) create_figure_scheduler = fk.schedules(times=[1., 2., 3.]) triangular_mesh = fk.TriangularMesh.from_msh_file('../simulations/inputs/square2.mesh') layer = fk.Layer(1, triangular_mesh, topography=0.) def H_0(x, y): h = 2.4*(1.0 + np.exp(-0.25*((x-10.05)**2+(y-10.05)**2))) return h primitives = fk.Primitive(triangular_mesh, layer, height_funct=H_0) tracers = [fk.Tracer(triangular_mesh, layer, primitives, Tinit=1.0)] slides = [fk.Slide(ref=r) for r in [1, 2, 3, 4]] h5_writer = fk.H5Writer(scheduler=restart_scheduler, \ output_dir='outputs/hydrodynamic_h5_from_{}_to_{}'.format(\ int(restart_times[0]), int(restart_times[-1]))) problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, numerical_parameters={'space_second_order':True}, tracers=tracers, h5_writer=h5_writer, custom_funct={'plot':fk_plt.plot_freesurface_3d}, custom_funct_scheduler=create_figure_scheduler) RESTART = False if RESTART: # computation restarts after 2 s problem.restart('./outputs/hydrodynamic_h5_from_1_to_3/output_0001.h5') restart_times = [4., 5.] restart_scheduler = fk.schedules(times=restart_times) problem.h5_writer = fk.H5Writer(scheduler=restart_scheduler, \ output_dir='outputs/hydrodynamic_h5_from_{}_to_{}'.format(\ int(restart_times[0]), int(restart_times[-1]))) create_figure_scheduler = fk.schedules(times=[3., 4., 5.]) problem.custom_funct_scheduler = create_figure_scheduler problem.solve() plt.show() .. rst-class:: sphx-glr-horizontal * .. image-sg:: /auto_examples_tutorials/images/sphx_glr_example_restart_001.png :alt: Height at time = 1.0s :srcset: /auto_examples_tutorials/images/sphx_glr_example_restart_001.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples_tutorials/images/sphx_glr_example_restart_002.png :alt: Height at time = 2.0s :srcset: /auto_examples_tutorials/images/sphx_glr_example_restart_002.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples_tutorials/images/sphx_glr_example_restart_003.png :alt: Height at time = 3.0s :srcset: /auto_examples_tutorials/images/sphx_glr_example_restart_003.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none =================================================================== | INITIALIZATION | =================================================================== Problem size: Nodes=3303, Layers=1, Triangles=6408, Iter = 0 ; Dt = 0.0000s ; Time = 0.00s ; ETA = 0.00s =================================================================== | TIME LOOP | =================================================================== Iter = 17 ; Dt = 0.0061s ; Time = 0.11s ; ETA = 19.56s Iter = 35 ; Dt = 0.0057s ; Time = 0.21s ; ETA = 15.80s Iter = 54 ; Dt = 0.0054s ; Time = 0.32s ; ETA = 16.02s Iter = 73 ; Dt = 0.0053s ; Time = 0.42s ; ETA = 14.36s Iter = 93 ; Dt = 0.0051s ; Time = 0.52s ; ETA = 16.11s Iter = 113 ; Dt = 0.0052s ; Time = 0.63s ; ETA = 15.32s Iter = 133 ; Dt = 0.0054s ; Time = 0.73s ; ETA = 14.42s Iter = 152 ; Dt = 0.0055s ; Time = 0.84s ; ETA = 12.66s Iter = 171 ; Dt = 0.0053s ; Time = 0.94s ; ETA = 12.65s Iter = 190 ; Dt = 0.0054s ; Time = 1.04s ; ETA = 12.80s Iter = 209 ; Dt = 0.0055s ; Time = 1.15s ; ETA = 11.87s Iter = 228 ; Dt = 0.0057s ; Time = 1.25s ; ETA = 10.95s Iter = 246 ; Dt = 0.0059s ; Time = 1.36s ; ETA = 10.61s Iter = 263 ; Dt = 0.0059s ; Time = 1.46s ; ETA = 10.22s Iter = 281 ; Dt = 0.0060s ; Time = 1.56s ; ETA = 9.62s Iter = 298 ; Dt = 0.0060s ; Time = 1.67s ; ETA = 9.61s Iter = 316 ; Dt = 0.0057s ; Time = 1.77s ; ETA = 9.69s Iter = 334 ; Dt = 0.0056s ; Time = 1.87s ; ETA = 9.34s Iter = 353 ; Dt = 0.0057s ; Time = 1.98s ; ETA = 9.11s Iter = 371 ; Dt = 0.0058s ; Time = 2.08s ; ETA = 8.56s Iter = 389 ; Dt = 0.0059s ; Time = 2.19s ; ETA = 8.25s Iter = 407 ; Dt = 0.0058s ; Time = 2.29s ; ETA = 7.96s Iter = 424 ; Dt = 0.0059s ; Time = 2.39s ; ETA = 7.73s Iter = 442 ; Dt = 0.0059s ; Time = 2.50s ; ETA = 7.34s Iter = 460 ; Dt = 0.0060s ; Time = 2.61s ; ETA = 6.90s Iter = 477 ; Dt = 0.0059s ; Time = 2.71s ; ETA = 6.65s Iter = 495 ; Dt = 0.0058s ; Time = 2.81s ; ETA = 6.56s Iter = 513 ; Dt = 0.0057s ; Time = 2.92s ; ETA = 6.27s Iter = 531 ; Dt = 0.0057s ; Time = 3.02s ; ETA = 5.99s Iter = 550 ; Dt = 0.0057s ; Time = 3.13s ; ETA = 5.58s Iter = 568 ; Dt = 0.0059s ; Time = 3.23s ; ETA = 5.19s Iter = 585 ; Dt = 0.0060s ; Time = 3.33s ; ETA = 4.84s Iter = 603 ; Dt = 0.0059s ; Time = 3.44s ; ETA = 4.64s Iter = 620 ; Dt = 0.0057s ; Time = 3.54s ; ETA = 4.50s Iter = 639 ; Dt = 0.0056s ; Time = 3.65s ; ETA = 4.20s Iter = 657 ; Dt = 0.0056s ; Time = 3.75s ; ETA = 3.99s Iter = 676 ; Dt = 0.0057s ; Time = 3.86s ; ETA = 3.54s Iter = 694 ; Dt = 0.0059s ; Time = 3.96s ; ETA = 3.14s Iter = 711 ; Dt = 0.0058s ; Time = 4.06s ; ETA = 2.99s Iter = 729 ; Dt = 0.0057s ; Time = 4.16s ; ETA = 2.69s Iter = 748 ; Dt = 0.0057s ; Time = 4.27s ; ETA = 2.42s Iter = 766 ; Dt = 0.0057s ; Time = 4.37s ; ETA = 2.10s Iter = 784 ; Dt = 0.0058s ; Time = 4.48s ; ETA = 1.75s Iter = 802 ; Dt = 0.0057s ; Time = 4.58s ; ETA = 1.53s Iter = 820 ; Dt = 0.0058s ; Time = 4.69s ; ETA = 1.18s Iter = 838 ; Dt = 0.0058s ; Time = 4.79s ; ETA = 0.86s Iter = 856 ; Dt = 0.0059s ; Time = 4.90s ; ETA = 0.56s Iter = 873 ; Dt = 0.0059s ; Time = 5.00s ; ETA = 0.35s Iter = 891 ; Dt = 0.0031s ; Time = 5.10s ; ETA = 0.00s =================================================================== | END | =================================================================== Problem.solve() completed in 15.29369568824768s (wall time) .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 16.777 seconds) .. _sphx_glr_download_auto_examples_tutorials_example_restart.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: example_restart.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: example_restart.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_