|
239 | 239 | function calculate_sum_dij(system::ImplicitIncompressibleSPHSystem, particle, pressure, |
240 | 240 | grad_kernel, time_step) |
241 | 241 | p_b = pressure[particle] |
242 | | - d_ij = calculate_dij(system, particle, grad_kernel, time_step) |
243 | | - return d_ij * p_b |
| 242 | + d_ab = calculate_dij(system, particle, grad_kernel, time_step) |
| 243 | + return d_ab * p_b |
244 | 244 | end |
245 | 245 |
|
246 | 246 | # Calculates the sum d_ij*p_j over all j for a given particle i ('IHMSEN et al' section 3.1.1) |
@@ -278,8 +278,7 @@ function calculate_sum_term(system, neighbor_system::ImplicitIncompressibleSPHSy |
278 | 278 | p_a = pressure[particle] |
279 | 279 | p_b = pressure[neighbor] |
280 | 280 | sum_db = get_sum_dj(neighbor_system, sum_dj, neighbor) |
281 | | - dba = -time_step^2 * hydrodynamic_mass(system, particle) / |
282 | | - particle_density(0, system, particle)^2 * -grad_kernel |
| 281 | + dba = calculate_dij(system, particle, -grad_kernel, time_step) |
283 | 282 | return m_b * dot(sum_da - d_b * p_b - (sum_db - dba * p_a), grad_kernel) |
284 | 283 | end |
285 | 284 |
|
@@ -442,11 +441,11 @@ function pressure_solve(system, v, u, v_ode, u_ode, semi, t, time_step) |
442 | 441 | (; max_iterations) = system |
443 | 442 |
|
444 | 443 | rest_density = 1000.0 #TODO: not hardcoded |
445 | | - avg_density_error = 0.0 |
446 | 444 | l = 1 |
447 | 445 | check = false |
448 | 446 | while (!check) |
449 | 447 | set_zero!(sum_dij) |
| 448 | + avg_density_error = 0.0 #TODO |
450 | 449 | foreach_system(semi) do neighbor_system |
451 | 450 | # Get neighbor system u and v values |
452 | 451 | u_neighbor_system = wrap_u(u_ode, neighbor_system, semi) |
@@ -502,7 +501,7 @@ function pressure_solve(system, v, u, v_ode, u_ode, semi, t, time_step) |
502 | 501 | pressure[particle] = max((1-omega) * pressure[particle] + |
503 | 502 | omega * 1/a[particle] * |
504 | 503 | (rest_density - predicted_density[particle] - |
505 | | - s_term[particle]), 0) #version with pressure clamping (no negative pressure values) |
| 504 | + s_term[particle]), 0) |
506 | 505 | else |
507 | 506 | pressure[particle] = 0 |
508 | 507 | end |
|
524 | 523 | # Calculates the pressure values by solving a linear system with a relaxed jacobi scheme |
525 | 524 | function update_quantities!(system::ImplicitIncompressibleSPHSystem, v, u, |
526 | 525 | v_ode, u_ode, semi, t) |
527 | | - time_step = 0.0001 |
| 526 | + time_step = 0.001 |
528 | 527 |
|
529 | 528 | @trixi_timeit timer() "predict advections" predict_advection(system, v, u, v_ode, u_ode, |
530 | 529 | semi, t, time_step) |
|
0 commit comments