113 Commits

Author SHA1 Message Date
e339cf15e8 SCHEMES: Add symmetry preserving optimizations to isothermal KEPES Riemann solver
- Update riemann_mhd_iso_kepes() subroutine to include missing symmetry
  preserving optimizations.
- Ensure consistency with the adiabatic version by adding and utilizing
  the ch variable.
- Correct the initialization and usage of transformation matrices (rm and tm).
- Adjust calculations to ensure symmetric properties, particularly in the handling
  of variables cs, ca, and cglm.
- Include appropriate sign functions for consistent behavior.
- Make changes to the calculation of intermediate variables to maintain symmetry
  and consistency.
- Adjusted flux calculation to correctly apply symmetry preserving
  terms.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2024-07-30 16:32:16 -03:00
e76e875004 Update the copyright year to 2024.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2024-03-07 09:34:43 -03:00
fb25489487 SCHEMES: Fix ROE solvers for MHD.
The tearing test problem was numerically unstable in the adiabatic case.
Setting bty to 1 in the case of br beeing zero solved the issue. Make it
consistent for the isothermal ROE solver as well. Additionaly, one typo
was fixed in the calculation of the left eigenvectors.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2024-03-06 21:21:59 -03:00
81de98d9e2 Update the copyright year to 2023.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-01 18:36:37 -03:00
94ea7d171d SCHEMES: Remove redundant empty line.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 19:02:56 -03:00
74737b71f5 SCHEMES: Rewrite the handling of unimplemented Riemann solvers.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 18:32:02 -03:00
9829505650 Update copyright year to 2022.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-02 09:51:41 -03:00
a1c465a3a1 SCHEMES: Keep alpha_f,s in the limites for ROE and KEPES.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-29 18:24:33 -03:00
68ca97ac6c SCHEME: Simplify speed calculation in riemann_mhd_iso_roe().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-28 12:58:31 -03:00
415d2a8efb SCHEME: Simplify speed calculation in riemann_mhd_iso_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-28 11:59:55 -03:00
85a2f6ed32 SCHEME: Rewrite speed calculation in riemann_mhd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-28 11:49:46 -03:00
509e126583 SCHEMES: Rewrite riemann_mhd_adi_roe().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-28 10:36:05 -03:00
13332a7377 SCHEMES: Simplify symmetry preserving in riemann_mhd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-26 17:31:57 -03:00
2fdb52d972 SCHEMES: Rewrite riemann_mhd_iso_roe().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-26 13:10:55 -03:00
a343a400e6 SCHEMES: Simplify symmetry preserving in riemann_mhd_iso_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 23:31:54 -03:00
1514fc0872 SCHEMES: Micro optimizations in riemann_mhd_iso_hlld().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 21:29:38 -03:00
03f5606461 SCHEMES: Remove unnecessary parenthesis in riemann_hd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 19:40:55 -03:00
51a9794a84 SCHEMES: Simplify symmetry preserving in riemann_hd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 19:35:58 -03:00
889882c48f SCHEMES: Simplify symmetry preserving in riemann_hd_iso_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 19:06:28 -03:00
64d194933d SCHEMES: Simplify symmetry preserving in riemann_hd_iso_roe().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 18:59:20 -03:00
257b23078c SCHEMES: Rewrite riemann_hd_adi_roe().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-21 18:47:17 -03:00
6363ee5323 SCHEMES: Rewrite riemann_hd_hllc().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-20 18:02:05 -03:00
1180d22cda SCHEMES: Rewrite riemann_hd_iso_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-20 17:48:33 -03:00
beb31d0fe6 SCHEMES: Rewrite riemann_hd_iso_roe().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-20 16:57:06 -03:00
982637c745 SCHEMES: Polish riemann_hll().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-20 12:51:34 -03:00
f52539e34a SCHEMES: Reorganize Riemann solvers.
Move calculation of the conservative variables and fluxes at the states
to the solvers themselfes. Also group solvers by the system of
equations.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-19 11:53:56 -03:00
b7f5d28a45 SCHEMES: Micro optimizations in riemann_mhd_iso_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-09 17:48:50 -03:00
210689da08 SCHEMES: Make variable initialization OpenMP conformant.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-08 10:37:53 -03:00
c8ed7fc07a SCHEMES: Rewrite slighly riemann_mhd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-07 11:43:25 -03:00
b744ab7180 SCHEMES: Use cglm speed in KEPES MHD Riemann solvers.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-06 22:49:45 -03:00
4f3a05f9ba SCHEMES: Optimize slightly riemann_mhd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-04 12:51:05 -03:00
9af9357032 SCHEMES: Optimize slightly riemann_hd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-04 12:44:10 -03:00
4534972a1d SCHEMES: Make riemann_mhd_iso_kepes() numerically symmetric.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-04 12:11:07 -03:00
9dd79d7124 SCHEMES: Make riemann_hd_iso_kepes() numerically symmetric.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-04 11:56:55 -03:00
446bb2e8bd SCHEMES: Fix lmean().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-04 11:52:40 -03:00
ab86dd07d5 SCHEMES: Get rid of function diff().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-03 17:25:13 -03:00
49d42b268f SCHEMES: There is no need for matrix transposition in KEPES methods.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-03 12:45:11 -03:00
894a3362a2 SCHEMES: Make lmean() numerically symmetric.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-03 11:38:08 -03:00
e6cca5468e SCHEMES: Make isothermal MHD HLLD solver numerically symmetric.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-03 10:28:36 -03:00
e52fb7c633 SCHEMES: Fix KEPES to not produce non-zero Vz and Bz in 2D.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-02 17:25:04 -03:00
edfed7e732 SCHEMES: Make isothermal MHD HLLD solver consistent with other solvers.
The isothermal MHD HLLD solver by Mignone gives results too different
comparing with HLL, ROE, and KEPES solvers. Modify it allowing for the
density jump across the Alfvén waves to make is consistent.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-02 12:56:24 -03:00
03345b82a3 SCHEMES: Implement KEPES Riemann solver for isothermal magnetohydrodynamics.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-01 12:36:53 -03:00
fdf8dbc6c9 SCHEMES: Implement KEPES Riemann solver for isothermal hydrodynamics.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-24 07:45:30 -03:00
8089cb8cb3 SCHEMES: Small optimizations in riemann_hd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-24 07:12:05 -03:00
d40393690a SCHEMES: Use matmul in riemann_hd_adi_kepes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-24 06:44:56 -03:00
3e1a5553b6 SCHEMES: Implement optimized version of the logarithmic average.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-23 23:45:29 -03:00
c715c87676 SCHEMES: Implement KEPES Riemann solver for adiabatic magnetohydrodynamics.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-23 23:30:46 -03:00
ef52c8e707 SCHEMES: Move riemann_hd_adi_kepes() to a different location.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-22 06:44:17 -03:00
9bcd8d8c5a SCHEMES: Treat separatelly KEPES solvers in numerical_flux().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-21 22:59:19 -03:00
242942a35b SCHEMES: Implement KEPES Riemann solver for adiabatic hydrodynamics.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-12-21 22:11:44 -03:00