Run a simple simulation with online plotΒΆ

These scripts are examples of how one can run small simulations with instantaneous plotting. This can be useful for simple tests. The first script can be launched by the commands python simul_ns2d_plotphys.py (sequential).

import fluiddyn as fld
from fluidsim.solvers.ns2d.solver import Simul

params = Simul.create_default_params()

params.short_name_type_run = "test"

params.oper.nx = params.oper.ny = nh = 32 * 2
params.oper.Lx = params.oper.Ly = Lh = 10.0

delta_x = Lh / nh
params.nu_8 = 2e-3 * params.forcing.forcing_rate ** (1.0 / 3) * delta_x ** 8

params.time_stepping.t_end = 10.0

params.init_fields.type = "dipole"

params.forcing.enable = True
params.forcing.type = "tcrandom"

params.output.sub_directory = "examples"

params.output.periods_plot.phys_fields = 0.1
params.output.periods_save.phys_fields = 0.2
params.output.periods_save.spatial_means = 0.05

params.output.ONLINE_PLOT_OK = True


sim = Simul(params)
sim.time_stepping.start()

print(
    """
A movie can be produced with the command (using ffmpeg):

sim.output.phys_fields.animate(dt_frame_in_sec=0.1, dt_equations=0.08, repeat=False, save_file=1, tmax=10)
"""
)

fld.show()

The second script is dedicated to online plotting of statistic quantities.

import fluiddyn as fld
from fluidsim.solvers.ns2d.solver import Simul

params = Simul.create_default_params()

params.short_name_type_run = "test"

params.oper.nx = params.oper.ny = nh = 32
params.oper.Lx = params.oper.Ly = Lh = 10

delta_x = Lh / nh
params.nu_8 = 2.0 * params.forcing.forcing_rate ** (1.0 / 3) * delta_x ** 8

params.time_stepping.t_end = 10.0

params.init_fields.type = "dipole"

params.forcing.enable = True
params.forcing.type = "tcrandom"

params.output.sub_directory = "examples"

params.output.periods_print.print_stdout = 0.5

params.output.periods_save.phys_fields = 1.0
params.output.periods_save.spectra = 0.5
params.output.periods_save.spatial_means = 0.05
params.output.periods_save.spect_energy_budg = 0.5
params.output.periods_save.increments = 0.5

params.output.ONLINE_PLOT_OK = True

params.output.spectra.HAS_TO_PLOT_SAVED = True
params.output.spatial_means.HAS_TO_PLOT_SAVED = True
params.output.spect_energy_budg.HAS_TO_PLOT_SAVED = True
params.output.increments.HAS_TO_PLOT_SAVED = True

params.output.phys_fields.field_to_plot = "rot"

sim = Simul(params)

sim.time_stepping.start()
sim.output.phys_fields.plot()

fld.show()