|
16 | 16 | multz = 1 |
17 | 17 |
|
18 | 18 | cell_size = 1 << 2 # refinement is limited to cell_size = 2 |
19 | | -base = 8 |
| 19 | +base = 16 |
20 | 20 |
|
21 | 21 | cfg = model.gen_default_config() |
22 | 22 | scale_fact = 2 / (cell_size * base * multx) |
|
33 | 33 | # cfg.set_slope_lim_vanleer_sym() |
34 | 34 | cfg.set_slope_lim_minmod() |
35 | 35 | cfg.set_face_time_interpolation(True) |
36 | | -mass_crit = 0.0000001 * 5 * 2 * 2 |
| 36 | +mass_crit = 1e-6 * 5 * 2 * 2 |
37 | 37 | cfg.set_amr_mode_density_based(crit_mass=mass_crit) |
38 | 38 | model.set_solver_config(cfg) |
39 | 39 |
|
@@ -88,13 +88,29 @@ def rhovel_map(rmin, rmax): |
88 | 88 | model.set_field_value_lambda_f64("rhoetot", rhoetot_map) |
89 | 89 | model.set_field_value_lambda_f64_3("rhovel", rhovel_map) |
90 | 90 |
|
91 | | -t_target = 0.05 |
| 91 | +t_target = 0.245 |
| 92 | + |
| 93 | +dt = 0 |
| 94 | +t = 0 |
| 95 | +freq = 10 |
| 96 | +for i in range(1000): |
| 97 | + if i % freq == 0: |
| 98 | + model.dump_vtk(f"test{i:04d}.vtk") |
| 99 | + next_dt = model.evolve_once_override_time(t, dt) |
| 100 | + |
| 101 | + t += dt |
| 102 | + dt = next_dt |
| 103 | + |
| 104 | + if t_target < t + next_dt: |
| 105 | + dt = t_target - t |
| 106 | + if t == t_target: |
| 107 | + break |
92 | 108 |
|
93 | 109 | # for i in range(1000): |
94 | | -# model.dump_vtk(f"test{i:04d}.vtk") |
| 110 | +# model.dump_vtk(f"test{i:04d}.vtk") |
95 | 111 | # model.timestep() |
96 | 112 |
|
97 | | -model.evolve_until(t_target) |
| 113 | +# model.evolve_until(t_target) |
98 | 114 |
|
99 | 115 | # model.evolve_once() |
100 | 116 | xref = 1.0 |
@@ -213,7 +229,7 @@ def convert_to_cell_coords(dic): |
213 | 229 | ax1.set_xlim(0.5, 1.5) |
214 | 230 | ax2.set_ylabel("AMR level") |
215 | 231 | plt.title(r"$m_{crit}=" + str(mass_crit) + "$") |
216 | | - plt.savefig("sod_tube.pdf") |
| 232 | + plt.savefig(f"sod_tube-mass-{mass_crit}-base-{base}-tf-{t_target}.pdf") |
217 | 233 | plt.savefig("sod_tube.png") |
218 | 234 | ####### |
219 | 235 | plt.show() |
|
0 commit comments