Init a simulation from an upscaled simulation#

 7 import shamrock
 8
 9 # If we use the shamrock executable to run this script instead of the python interpreter,
10 # we should not initialize the system as the shamrock executable needs to handle specific MPI logic
11 if not shamrock.sys.is_initialized():
12     shamrock.change_loglevel(1)
13     shamrock.sys.init("0:0")

Use shamrock documentation style for matplotlib

18 shamrock.matplotlib.set_shamrock_mpl_style()

Setup parameters

24 gamma = 5.0 / 3.0
25 rho_g = 1
26
27 bmin = (-0.6, -0.6, -0.6)
28 bmax = (0.6, 0.6, 0.6)
29
30 N_target = 1e4
31 scheduler_split_val = int(2e7)
32 scheduler_merge_val = int(1)

Deduced quantities

36 import numpy as np
37
38 xm, ym, zm = bmin
39 xM, yM, zM = bmax
40 vol_b = (xM - xm) * (yM - ym) * (zM - zm)
41
42 part_vol = vol_b / N_target
43
44 # lattice volume
45 HCP_PACKING_DENSITY = 0.74
46 part_vol_lattice = HCP_PACKING_DENSITY * part_vol
47
48 dr = (part_vol_lattice / ((4.0 / 3.0) * np.pi)) ** (1.0 / 3.0)
49
50 pmass = -1

Setup

 55 ctx = shamrock.Context()
 56 ctx.pdata_layout_new()
 57
 58 model = shamrock.get_Model_SPH(context=ctx, vector_type="f64_3", sph_kernel="M4")
 59
 60 cfg = model.gen_default_config()
 61 cfg.set_artif_viscosity_VaryingCD10(
 62     alpha_min=0.0, alpha_max=1, sigma_decay=0.1, alpha_u=1, beta_AV=2
 63 )
 64 cfg.set_boundary_periodic()
 65 cfg.set_eos_adiabatic(gamma)
 66 cfg.print_status()
 67 model.set_solver_config(cfg)
 68 model.init_scheduler(scheduler_split_val, scheduler_merge_val)
 69
 70 bmin, bmax = shamrock.math.get_ideal_hcp_box(dr, bmin, bmax)
 71 xm, ym, zm = bmin
 72 xM, yM, zM = bmax
 73
 74 model.resize_simulation_box(bmin, bmax)
 75
 76 setup = model.get_setup()
 77 gen = setup.make_generator_lattice_hcp(dr, bmin, bmax)
 78 setup.apply_setup(gen, insert_step=scheduler_split_val)
 79
 80
 81 xc, yc, zc = model.get_closest_part_to((0, 0, 0))
 82
 83 if shamrock.sys.world_rank() == 0:
 84     print("closest part to (0,0,0) is in :", xc, yc, zc)
 85
 86
 87 vol_b = (xM - xm) * (yM - ym) * (zM - zm)
 88
 89 totmass = rho_g * vol_b
 90
 91 pmass = model.total_mass_to_part_mass(totmass)
 92
 93 model.set_value_in_a_box("uint", "f64", 0, bmin, bmax)
 94
 95 tot_u = pmass * model.get_sum("uint", "f64")
 96 if shamrock.sys.world_rank() == 0:
 97     print("total u :", tot_u)
 98
 99 model.set_particle_mass(pmass)
100
101 model.set_cfl_cour(0.1)
102 model.set_cfl_force(0.1)
----- SPH Solver configuration -----
[
    {
        "artif_viscosity": {
            "alpha_max": 1.0,
            "alpha_min": 0.0,
            "alpha_u": 1.0,
            "beta_AV": 2.0,
            "sigma_decay": 0.1,
            "type": "varying_cd10"
        },
        "boundary_config": {
            "bc_type": "periodic"
        },
        "cfl_config": {
            "cfl_cour": 0.0,
            "cfl_force": 0.0,
            "cfl_multiplier_stiffness": 2.0,
            "eta_sink": 0.05
        },
        "combined_dtdiv_divcurlv_compute": false,
        "debug_dump_filename": "",
        "do_debug_dump": false,
        "dust_config": {
            "drag_mode": {
                "type": "none"
            },
            "mode": {
                "type": "none"
            }
        },
        "enable_particle_reordering": false,
        "eos_config": {
            "Tvec": "f64_3",
            "eos_type": "adiabatic",
            "gamma": 1.6666666666666667
        },
        "epsilon_h": 1e-06,
        "ext_force_config": {
            "force_list": []
        },
        "gpart_mass": 0.0,
        "h_iter_per_subcycles": 50,
        "h_max_subcycles_count": 100,
        "htol_up_coarse_cycle": 1.1,
        "htol_up_fine_cycle": 1.1,
        "kernel_id": "M4<f64>",
        "mhd_config": {
            "mhd_type": "none"
        },
        "particle_killing": [],
        "particle_reordering_step_freq": 1000,
        "save_dt_to_fields": false,
        "scheduler_config": {
            "merge_load_value": 0,
            "split_load_value": 0
        },
        "self_grav_config": {
            "softening_length": 1e-09,
            "softening_mode": "plummer",
            "type": "none"
        },
        "show_cfl_detail": false,
        "show_ghost_zone_graph": false,
        "show_neigh_stats": false,
        "smoothing_length_config": {
            "type": "density_based"
        },
        "time_state": {
            "cfl_multiplier": 0.01,
            "dt_sph": 0.0,
            "time": 0.0
        },
        "tree_reduction_level": 3,
        "type_id": "sycl::vec<f64,3>",
        "unit_sys": null,
        "use_two_stage_search": true
    }
]
------------------------------------
SPH setup: generating particles ...
SPH setup: Nstep = 11520 ( 1.2e+04 ) Ntotal = 11520 ( 1.2e+04 rank min = 5.2e+06 max = 1.2e+04) rate = 1.152000e+04 N.s^-1
SPH setup: the generation step took : 0.006822562000000001 s
SPH setup: final particle count = 11520 beginning injection ...
Info: ---------------------------------------------                   [DataInserterUtility][rank=0]
Info: Compute load ...                                                [DataInserterUtility][rank=0]
Info: run scheduler step ...                                          [DataInserterUtility][rank=0]
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 5.14 us    (66.2%)
Info: Summary (strategy = round robin):                                       [LoadBalance][rank=0]
 - strategy "psweep"      : max = 11520.0 min = 11520.0 factor = 1
 - strategy "round robin" : max = 10944.0 min = 10944.0 factor = 0.95
Info: Loadbalance stats :                                                     [LoadBalance][rank=0]
    npatch = 1
    min = 11520
    max = 11520
    avg = 11520
    efficiency = 100.00%
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 982.00 ns  (0.2%)
   patch tree reduce : 972.00 ns  (0.2%)
   gen split merge   : 991.00 ns  (0.2%)
   split / merge op  : 0/0
   apply split merge : 882.00 ns  (0.2%)
   LB compute        : 386.98 us  (97.5%)
   LB move op cnt    : 0
   LB apply          : 3.51 us    (0.9%)
Info: patch count stable after 1 runs npatch = 1                      [DataInserterUtility][rank=0]
Info: ---------------------------------------------                   [DataInserterUtility][rank=0]
SPH setup: injected        11520 / 11520 => 100.0% | ranks with patchs = 1 / 1  <- global loop -> (msg count : 0)
SPH setup: the injection step took : 0.005642788 s
Info: injection perf report:                                                    [SPH setup][rank=0]
+======+====================+=======+=============+=============+=============+
| rank | rank get (sum/max) |  MPI  | alloc d% h% | mem (max) d | mem (max) h |
+======+====================+=======+=============+=============+=============+
| 0    |      0.00s / 0.00s | 0.00s |   2.2% 0.0% |   134.92 MB |   460.80 kB |
+------+--------------------+-------+-------------+-------------+-------------+
SPH setup: the setup took : 0.016655241 s
closest part to (0,0,0) is in : 0.0 0.0 0.0
total u : 0.0

Single timestep to iterate the smoothing length

107 model.timestep()
108 model.dump("init.sham")
109
110 # here we can dump and load it into another context i we want like so
111 ctx_data_source = shamrock.Context()
112 ctx_data_source.pdata_layout_new()
113 model_data_source = shamrock.get_Model_SPH(
114     context=ctx_data_source, vector_type="f64_3", sph_kernel="M4"
115 )
116 model_data_source.load_from_dump("init.sham")
117
118 # trigger rebalancing
119 model_data_source.set_dt(0.0)
120 model_data_source.timestep()
121
122 # reset dt to 0 for the init of the next simulation
123 model_data_source.set_dt(0.0)
124
125 cfg = model_data_source.get_current_config()
126 cfg.print_status()
127
128 # now we feed the old context to the new model
129 ctx_new = shamrock.Context()
130 ctx_new.pdata_layout_new()
131
132 model_new = shamrock.get_Model_SPH(context=ctx_new, vector_type="f64_3", sph_kernel="M4")
133 model_new.set_solver_config(cfg)
134 model_new.init_scheduler(scheduler_split_val, scheduler_merge_val)
135 model_new.resize_simulation_box(bmin, bmax)
136
137 setup = model_new.get_setup()
138 gen = setup.make_generator_from_context(ctx_data_source)
139 split_part = setup.make_modifier_split_part(parent=gen, n_split=2, seed=42)
140 setup.apply_setup(split_part, insert_step=scheduler_split_val)
141
142 model_new.timestep()
---------------- t = 0, dt = 0 ----------------
Info: Summary (strategy = round robin):                                       [LoadBalance][rank=0]
 - strategy "psweep"      : max = 11520.0 min = 11520.0 factor = 1
 - strategy "round robin" : max = 10944.0 min = 10944.0 factor = 0.95
Info: Loadbalance stats :                                                     [LoadBalance][rank=0]
    npatch = 1
    min = 11520
    max = 11520
    avg = 11520
    efficiency = 100.00%
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 20.76 us   (4.8%)
   patch tree reduce : 2.78 us    (0.6%)
   gen split merge   : 611.00 ns  (0.1%)
   split / merge op  : 0/0
   apply split merge : 952.00 ns  (0.2%)
   LB compute        : 388.96 us  (89.4%)
   LB move op cnt    : 0
   LB apply          : 10.19 us   (2.3%)
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 1.50 us    (67.9%)
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.39592013888888883
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.03437860905706778 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.4238715277777777
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.03781646996277456 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.4238715277777777
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.041598116959052016 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.4506076388888888
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.045757928654957224 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.5162326388888888
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.05033372152045295 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.6863715277777777
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.05536709367249825 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.6863715277777777
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.06090380303974808 unconverged cnt = 11520
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.7886284722222223
Warning: the unit system is not set                                           [sph::Config][rank=0]
Info: conservation infos :                                                     [sph::Model][rank=0]
    sum v = (0,0,0)
    sum a = (0,0,0)
    sum e = 0
    sum de = 0
Info: cfl dt = 1.7976931348623157e+308 cfl multiplier : 0.01                   [sph::Model][rank=0]
Info: Timestep perf report:                                                    [sph::Model][rank=0]
+======+============+=======+========+===========+======+=============+=============+=============+
| rank | rate (N/s) | Nobj  | Npatch |   tstep   | MPI  | alloc d% h% | mem (max) d | mem (max) h |
+======+============+=======+========+===========+======+=============+=============+=============+
| 0    | 4.2296e+04 | 11520 |      1 | 2.724e-01 | 0.0% |   1.0% 0.0% |   134.92 MB |   460.80 kB |
+------+------------+-------+--------+-----------+------+-------------+-------------+-------------+
Info: estimated rate : 0 (tsim/hr)                                             [sph::Model][rank=0]
Info: Dumping state to init.sham                                                      [SPH][rank=0]
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 5.03 us    (51.5%)
Info: dump to init.sham                                                     [Shamrock Dump][rank=0]
              - took 2.13 ms, bandwidth = 953.91 MB/s
Info: Loading state from dump init.sham                                               [SPH][rank=0]
Info: load dump from init.sham                                              [Shamrock Dump][rank=0]
              - took 1.19 ms, bandwidth = 1.71 GB/s
---------------- t = 0, dt = 0 ----------------
Info: Summary (strategy = round robin):                                       [LoadBalance][rank=0]
 - strategy "psweep"      : max = 11520.0 min = 11520.0 factor = 1
 - strategy "round robin" : max = 10944.0 min = 10944.0 factor = 0.95
Info: Loadbalance stats :                                                     [LoadBalance][rank=0]
    npatch = 1
    min = 11520
    max = 11520
    avg = 11520
    efficiency = 100.00%
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 3.23 us    (1.2%)
   patch tree reduce : 1.04 us    (0.4%)
   gen split merge   : 791.00 ns  (0.3%)
   split / merge op  : 0/0
   apply split merge : 1.03 us    (0.4%)
   LB compute        : 261.46 us  (95.6%)
   LB move op cnt    : 0
   LB apply          : 3.05 us    (1.1%)
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 1.47 us    (70.0%)
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.8190104166666667
Warning: the unit system is not set                                           [sph::Config][rank=0]
Info: conservation infos :                                                     [sph::Model][rank=0]
    sum v = (0,0,0)
    sum a = (0,0,0)
    sum e = 0
    sum de = 0
Info: cfl dt = 1.7976931348623157e+308 cfl multiplier : 0.34                   [sph::Model][rank=0]
Info: Timestep perf report:                                                    [sph::Model][rank=0]
+======+============+=======+========+===========+======+=============+=============+=============+
| rank | rate (N/s) | Nobj  | Npatch |   tstep   | MPI  | alloc d% h% | mem (max) d | mem (max) h |
+======+============+=======+========+===========+======+=============+=============+=============+
| 0    | 1.4801e+05 | 11520 |      1 | 7.783e-02 | 0.0% |   0.6% 0.0% |   134.92 MB |   460.80 kB |
+------+------------+-------+--------+-----------+------+-------------+-------------+-------------+
Info: estimated rate : 0 (tsim/hr)                                             [sph::Model][rank=0]
----- SPH Solver configuration -----
[
    {
        "artif_viscosity": {
            "alpha_max": 1.0,
            "alpha_min": 0.0,
            "alpha_u": 1.0,
            "beta_AV": 2.0,
            "sigma_decay": 0.1,
            "type": "varying_cd10"
        },
        "boundary_config": {
            "bc_type": "periodic"
        },
        "cfl_config": {
            "cfl_cour": 0.1,
            "cfl_force": 0.1,
            "cfl_multiplier_stiffness": 2.0,
            "eta_sink": 0.05
        },
        "combined_dtdiv_divcurlv_compute": false,
        "debug_dump_filename": "",
        "do_debug_dump": false,
        "dust_config": {
            "drag_mode": {
                "type": "none"
            },
            "mode": {
                "type": "none"
            }
        },
        "enable_particle_reordering": false,
        "eos_config": {
            "Tvec": "f64_3",
            "eos_type": "adiabatic",
            "gamma": 1.6666666666666667
        },
        "epsilon_h": 1e-06,
        "ext_force_config": {
            "force_list": []
        },
        "gpart_mass": 0.00017268787196946227,
        "h_iter_per_subcycles": 50,
        "h_max_subcycles_count": 100,
        "htol_up_coarse_cycle": 1.1,
        "htol_up_fine_cycle": 1.1,
        "kernel_id": "M4<f64>",
        "mhd_config": {
            "mhd_type": "none"
        },
        "particle_killing": [],
        "particle_reordering_step_freq": 1000,
        "save_dt_to_fields": false,
        "scheduler_config": {
            "merge_load_value": 1,
            "split_load_value": 20000000
        },
        "self_grav_config": {
            "softening_length": 1e-09,
            "softening_mode": "plummer",
            "type": "none"
        },
        "show_cfl_detail": false,
        "show_ghost_zone_graph": false,
        "show_neigh_stats": false,
        "smoothing_length_config": {
            "type": "density_based"
        },
        "time_state": {
            "cfl_multiplier": 0.56,
            "dt_sph": 0.0,
            "time": 0.0
        },
        "tree_reduction_level": 3,
        "type_id": "sycl::vec<f64,3>",
        "unit_sys": null,
        "use_two_stage_search": true
    }
]
------------------------------------
SPH setup: generating particles ...
SPH setup: Nstep = 20153 ( 2.0e+04 ) Ntotal = 20153 ( 2.0e+04 rank min = 3.9e+05 max = 2.0e+04) rate = 2.015300e+04 N.s^-1
SPH setup: the generation step took : 0.052760017000000006 s
SPH setup: final particle count = 20153 beginning injection ...
Info: ---------------------------------------------                   [DataInserterUtility][rank=0]
Info: Compute load ...                                                [DataInserterUtility][rank=0]
Info: run scheduler step ...                                          [DataInserterUtility][rank=0]
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 5.42 us    (57.7%)
Info: Summary (strategy = round robin):                                       [LoadBalance][rank=0]
 - strategy "psweep"      : max = 20153.0 min = 20153.0 factor = 1
 - strategy "round robin" : max = 19145.3 min = 19145.3 factor = 0.95
Info: Loadbalance stats :                                                     [LoadBalance][rank=0]
    npatch = 1
    min = 20153
    max = 20153
    avg = 20153
    efficiency = 100.00%
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 791.00 ns  (0.3%)
   patch tree reduce : 892.00 ns  (0.3%)
   gen split merge   : 1.03 us    (0.4%)
   split / merge op  : 0/0
   apply split merge : 882.00 ns  (0.3%)
   LB compute        : 247.20 us  (96.1%)
   LB move op cnt    : 0
   LB apply          : 3.72 us    (1.4%)
Info: patch count stable after 1 runs npatch = 1                      [DataInserterUtility][rank=0]
Info: ---------------------------------------------                   [DataInserterUtility][rank=0]
SPH setup: injected        20153 / 20153 => 100.0% | ranks with patchs = 1 / 1  <- global loop -> (msg count : 0)
SPH setup: the injection step took : 0.0061576320000000006 s
Info: injection perf report:                                                    [SPH setup][rank=0]
+======+====================+=======+=============+=============+=============+
| rank | rank get (sum/max) |  MPI  | alloc d% h% | mem (max) d | mem (max) h |
+======+====================+=======+=============+=============+=============+
| 0    |      0.00s / 0.00s | 0.00s |   0.7% 0.0% |   134.92 MB |   460.80 kB |
+------+--------------------+-------+-------------+-------------+-------------+
SPH setup: the setup took : 0.06435276200000001 s
---------------- t = 0, dt = 0 ----------------
Info: Summary (strategy = round robin):                                       [LoadBalance][rank=0]
 - strategy "psweep"      : max = 20153.0 min = 20153.0 factor = 1
 - strategy "round robin" : max = 19145.3 min = 19145.3 factor = 0.95
Info: Loadbalance stats :                                                     [LoadBalance][rank=0]
    npatch = 1
    min = 20153
    max = 20153
    avg = 20153
    efficiency = 100.00%
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 22.16 us   (4.7%)
   patch tree reduce : 2.57 us    (0.5%)
   gen split merge   : 1.13 us    (0.2%)
   split / merge op  : 0/0
   apply split merge : 1.22 us    (0.3%)
   LB compute        : 425.76 us  (89.8%)
   LB move op cnt    : 0
   LB apply          : 4.06 us    (0.9%)
Info: Scheduler step timings :                                                  [Scheduler][rank=0]
   metadata sync     : 1.50 us    (62.8%)
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.26030863891232076
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.03503955180694534 unconverged cnt = 20127
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.29479481962983184
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.03854350698763988 unconverged cnt = 19995
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.3368729221455863
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.04239785768640387 unconverged cnt = 19353
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.38237483253113674
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.04663764345504426 unconverged cnt = 16699
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.43844588894953596
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.05130140780054869 unconverged cnt = 10578
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.5010172182801569
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.05643154858060356 unconverged cnt = 4052
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.5702873021386394
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.06207470343866393 unconverged cnt = 916
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.6555351560561704
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.06828217378253032 unconverged cnt = 108
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.7489207562149557
Warning: smoothing length is not converged, rerunning the iterator ...    [Smoothinglength][rank=0]
     largest h = 0.07511039116078332 unconverged cnt = 9
Warning: High interface/patch volume ratio.                                  [InterfaceGen][rank=0]
    This can lead to high mpi overhead, try to increase the patch split crit
    patch 0 high interf/patch volume: 0.8623529995534163
Warning: the unit system is not set                                           [sph::Config][rank=0]
Info: conservation infos :                                                     [sph::Model][rank=0]
    sum v = (0,0,0)
    sum a = (0,0,0)
    sum e = 0
    sum de = 0
Info: cfl dt = 1.7976931348623157e+308 cfl multiplier : 0.56                   [sph::Model][rank=0]
Info: Timestep perf report:                                                    [sph::Model][rank=0]
+======+============+=======+========+===========+======+=============+=============+=============+
| rank | rate (N/s) | Nobj  | Npatch |   tstep   | MPI  | alloc d% h% | mem (max) d | mem (max) h |
+======+============+=======+========+===========+======+=============+=============+=============+
| 0    | 2.4896e+04 | 20153 |      1 | 8.095e-01 | 0.0% |   0.5% 0.0% |   134.92 MB |   460.80 kB |
+------+------------+-------+--------+-----------+------+-------------+-------------+-------------+
Info: estimated rate : 0 (tsim/hr)                                             [sph::Model][rank=0]

<shamrock.model_sph.TimestepLog object at 0x7fbc60976bf0>

Recover data

Info: collected : 1 patches                                                [PatchScheduler][rank=0]

Test h value

151 import numpy as np
152
153 min_hpart = np.min(dat["hpart"])
154 max_hpart = np.max(dat["hpart"])
155 mean_hpart = np.mean(dat["hpart"])
156
157 print(f"hpart min={min_hpart} max={max_hpart} delta={max_hpart - min_hpart}")
158
159 assert min_hpart < 0.04, "hpart min is too large"
hpart min=0.03052490988824677 max=0.07734862180276868 delta=0.04682371191452191

Plot particle distrib

164 import matplotlib
165 import matplotlib.pyplot as plt
166 from mpl_toolkits.mplot3d import Axes3D
167
168 fig = plt.figure(dpi=120)
169 ax = fig.add_subplot(111, projection="3d")
170 ax.set_xlim3d(bmin[0], bmax[0])
171 ax.set_ylim3d(bmin[1], bmax[1])
172 ax.set_zlim3d(bmin[2], bmax[2])
173
174 cm = matplotlib.colormaps["viridis"]
175 sc = ax.scatter(
176     dat["xyz"][:, 0],
177     dat["xyz"][:, 1],
178     dat["xyz"][:, 2],
179     s=1,
180     c=dat["hpart"],
181     cmap=cm,
182 )
183
184 ax.minorticks_off()
185
186 plt.colorbar(sc)
187 plt.show()
run upscale simulation restart

Total running time of the script: (0 minutes 3.131 seconds)

Estimated memory usage: 163 MB

Gallery generated by Sphinx-Gallery