144 Commits

Author SHA1 Message Date
f510a2ec15 EVOLUTION: Call variable conversion after the boundary update.
The variable conversion is done for the whole blocks, including ghost
zones.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-04 16:40:20 -03:00
9e327d76ca EQUATIONS: Add option ghosts to update_primitive_variables().
This is a logical flag controling if the conversion should be done for
the whole block, including the ghost zones, or just the interior part.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-04 16:36:50 -03:00
4634081ca9 BOUNDARIES: Rewrite boundary_fluxes().
Slighly change the shape of block fluxes. Also add status flag to this
subroutine.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-02 16:39:51 -03:00
9829505650 Update copyright year to 2022.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-02 09:51:41 -03:00
124ad01eca EVOLUTION: Fix time step estimation with OpenMP.
The variable um should be also thread private in initialize_time_step()
and new_time_step().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-09 17:24:56 -03:00
a634d9bed5 VARIOUS: Make thread number thread private.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-08 11:52:16 -03:00
c56daa6991 EVOLUTION: Make variable initialization OpenMP conformant.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-08 11:12:15 -03:00
9b5198a5ff EQUATIONS, EVOLUTION: Rework get_maximum_speeds().
There is no need for the maximum characteristic speed. The divergence
correcting speed cglm is calculated using the maximum eigenvalue and
physical velocity.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-07 15:38:54 -03:00
c32e4adcde EVOLUTION: Use get_maximum_speeds() in the time step estimation.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-06 22:48:35 -03:00
27fd2fb6e1 EVOLUTION: Improve the initial time step estimation.
First of all, the estimation is of the third order, so use the cubic
square in the calculation of h1. Secondly, fix the normalization factor
fnorm. Finally, use only the variables corresponding to the fluxes in
the increment norms sc(..) and df(..).

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-16 09:18:32 -03:00
df9b301734 EVOLUTION: Restore the initial state in initialize_time_step().
The estimation of the initial time step requires the advance of the
system by one step. This, however, alters the primitive variables of
data blocks. Restore the primitive variables to the initial state, once
the initial time step has been estimated, in order to solve this
inconsistency.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-15 09:11:49 -03:00
76695febbd EVOLUTION: Reorganize integration method selection.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-15 08:47:23 -03:00
5d8c6d994d EVOLUTION: Produce the same initial time step for OpenMP on and off.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-10 13:16:26 -03:00
c54539a379 EVOLUTION: Parallelize initialize_time_step() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-10 09:44:02 -03:00
21cbecef26 EVOLUTION: Remove unused variables.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 22:07:36 -03:00
46696e4790 EVOLUTION: Rename local variables c to something else.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 22:00:09 -03:00
93068909d9 EVOLUTION: Add 4th order 5-step SSPRK(5,4) method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 21:45:14 -03:00
416c35ed9a EVOLUTION: Parallelize evolve_ssprk410() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 16:23:53 -03:00
aa8f9b6fe9 EVOLUTION: Parallelize evolve_ssprk35() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 16:03:22 -03:00
df5791f0b5 EVOLUTION: Parallelize evolve_ssprk34() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 13:36:03 -03:00
b4622f3c48 EVOLUTION: Parallelize evolve_ssprk3() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 12:58:55 -03:00
7b13e8fdf1 EVOLUTION: Parallelize evolve_ssprk2() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 12:38:40 -03:00
a5202090a4 EVOLUTION: Parallelize evolve_euler() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-09 12:23:53 -03:00
a61c4fa52a EVOLUTION: Parallelize evolve_ssprk21m() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 22:12:22 -03:00
fce5e43b2a EVOLUTION: Parallelize new_time_step() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 21:54:40 -03:00
c680b7772a EVOLUTION: Parallelize evolve_ssprk32m() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 21:40:59 -03:00
ee89bc42e6 EVOLUTION: Parallelize evolve_ssp324() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 18:27:43 -03:00
537f8693bc EVOLUTION: Parallelize update_errors_max() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 17:36:46 -03:00
806d74d4cf EVOLUTION: Parallelize update_errors_l2() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 17:18:55 -03:00
beca028b2f EVOLUTION: Parallelize evolve_3sstarplus() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 16:58:12 -03:00
8568dbb709 EVOLUTION: Parallelize update_variables() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-08 16:40:10 -03:00
2151d483ec EVOLUTION: Make some variable threadprivate in update_increment().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-07 20:53:57 -03:00
ea0b9b83dc WORKSPACE: Make workspace thread safe.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-07 10:46:18 -03:00
e1fa68b54f EVOLUTION: Fix alignment.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-03 19:56:26 -03:00
fd40fffc64 BOUNDARIES: Add interface to custom boundaries.
Also return the call status from block_boundary_specific().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-26 16:42:53 -03:00
4ceb008987 SHAPES: Do not pull update_user_shapes() from module USER_PROBLEM.
The pointer to update_shapes can be associated in
initialize_user_problem().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-26 13:47:05 -03:00
1f1ae8084f EVOLUTION: Remove warning in initialize_evolution() if NDIMS=2.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-25 08:39:52 -03:00
78ae62528a EVOLUTION: Eliminate uninitialized conditions.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-24 13:16:59 -03:00
546bb5eb0d EVOLUTION: Use print_message().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-19 17:53:14 -03:00
1979eae289 PROBLEM: Move FORCING initialization/finalization to EVOLUTION.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-17 13:19:04 -03:00
e6d1965088 PROBLEM: Move GRAVITY initialization/finalization to EVOLUTION.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-17 13:11:00 -03:00
f659000e8c PROFILE: Remove all custom profiling.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-16 15:22:15 -03:00
384e1ab3d6 EVOLUTION: Move initialization/finalization of SOURCES to EVOLUTION.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-16 13:08:37 -03:00
f3fd8aca1d EVOLUTION: Move initialization/finalization of SHAPES to EVOLUTION.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-16 13:00:04 -03:00
2f9db104d5 EVOLUTION: Use resize_workspace() in update_increment().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-13 20:33:02 -03:00
a381fc0cce MESH: Remove workspace from this module.
Use everywhere the workspace provided by module WORKSPACE.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-12 22:35:05 -03:00
0c1dab5a95 SCHEMES: Eliminate local arrays from update_flux().
However, the arrays which are used to store the reconstructed primitive
variables at Riemann states are passed now from update_increment() in
module EAVOLUTION. These arrays use the common workspace.

The array used for 4-vector velocity reconstruction is removed by
utilizing the output array for fluxes.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-12 12:43:40 -03:00
f045189b8d EVOLUTION: Use workspace in update_increment().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-12 10:05:43 -03:00
9acf0bdb0d Revert "EVOLUTION: Use workspace in initialize_time_step()."
This reverts commit 4bb02028df6bc4dd9fa21e7689131592c6466d86.

We need to use workspace in update_increment().

Subroutine initialize_time_step() is called only once at the beginning,
so it is fine to use allocated arrays here.
2021-11-12 09:35:17 -03:00
4bb02028df EVOLUTION: Use workspace in initialize_time_step().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-12 09:15:15 -03:00