1016 Commits

Author SHA1 Message Date
da43f1f896 MESH: Do not redistribute block after each block refinement.
This makes the multiple block refinement extremenly slow, especially
when job is restarted with the maximum refinement level increased.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-31 18:12:55 -03:00
dac7168a19 EQUATIONS: Introduce interface for prim2cons().
This interface allows to call prim2cons() both, for a single cell and
for a stencil.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-31 18:07:45 -03:00
4fd24e3a62 EQUATIONS: Print unphysical cell locations in DEBUG only.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-31 16:08:19 -03:00
31e13b43b8 EVOLUTION: Introduce "dt_safe_factor".
In the case of embedded integration method, the time step resulting from
the error could drop to very small values. In such situation, the next
time step is taken to a maximum value between the time step due to error
and the stability time step multiplied by the safe factor. By default
this factor is set to 0.01.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-17 15:32:29 -03:00
8343890abc INTERPOLATION: Fix variables qmn and qmx in mp_limiting().
The meaning of these variables was inverted. Therefore, the limiting of
positive variables was not working.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-16 18:15:06 -03:00
271dd571ae FORCING: Reset forcing statistics if there is no driving.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-28 10:15:23 -03:00
99d5196736 FORCING: Allow to specify the period of turbulence injection.
The period is controlled by two parameters:

'injection_time_start' - the beginning of the injection period,
'injection_time_stop'  - the end of the injection period.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-27 10:04:06 -03:00
5b26a7f726 INTERPOLATIONS: Update coefficients for OCMP9T method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-25 18:01:53 -03:00
d1a386fcf7 INTERPOLATIONS: Update coefficients for OCMP7T method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-25 17:05:50 -03:00
42b40c5238 INTERPOLATIONS: Update coefficients for OCMP9P method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-25 16:03:37 -03:00
89a2a2b3c5 INTERPOLATIONS: Update coefficients for OCMP7P method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-25 16:01:41 -03:00
76c7059a37 INTERPOLATIONS: Update coefficients for OCMP5 method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-25 15:59:17 -03:00
84977e0c83 INTERPOLATIONS: Clean up some comments.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-22 14:36:44 -03:00
229759f1c0 INTERPOLATIONS: Implement tridiagonal version of OCMP9 scheme.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-22 14:31:49 -03:00
7a99094427 INTERPOLATIONS: Implement tridiagonal version of OCMP7 scheme.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-22 14:07:46 -03:00
d7b3a32e07 NTERPOLATIONS: Update coefficients for OCMP9 method.
The coefficient correspond to the maximum of the imaginary part of the
modified wave number to be 2e-6 and the integrated error to be 1.54e-11.

The subroutine was renamed to to OCMP9P, as pentadiagonal.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-22 13:08:57 -03:00
99598582c5 INTERPOLATIONS: Update coefficients for OCMP7 method.
The coefficient correspond to the maximum of the imaginary part of the
modified wave number to be 2e-6 and the integrated error to be 1.38e-11.

The subroutine was renamed to to OCMP7P, as pentadiagonal.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-22 13:03:44 -03:00
2f2c28154a INTERPOLATIONS: Update coefficients for OCMP5 method.
The coefficient correspond to the maximum of the imaginary part of the
modified wave number to be 2e-6 and the integrated error to be 6.4e-12.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-22 12:44:21 -03:00
162e567870 Revert "INTERPOLATIONS: Add variants to OCMP methods."
This reverts commit bedc743258597a7200b134e4374cc84ef42298fe.
2023-02-21 12:24:30 -03:00
3ddbe189a0 IO: Fix the restart from XML snapshots with more processes.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-15 10:27:41 -03:00
bedc743258 INTERPOLATIONS: Add variants to OCMP methods.
There two variants selected using parameter 'ocmp_scheme_mode':

1) 'stable' - which guarantees the scheme numerical instability by
   enforcing the stable dissipation errors
2) 'minimum' - which enforced the dissipation errors to be smaller than
   2e-5

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-08 11:40:25 -03:00
9f74a1e0c9 INTERPOLATIONS: Correct mispelled name in mp_limiter().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-07 10:14:20 -03:00
57795f0ca3 INTERPOLATIONS: Rewrite the monotonicity-preserving limiter.
Restore the original Suresh & Huynh limiter and add modification by
Ahn & Lee for compact schemes. Additionally, pass the variable
positivity flag and for positive variables modifie the lower limit
using the minimum value obtained from the cubic spline interpolation.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-02-07 10:11:48 -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
d9a7cc1b9e STATISTICS: Calculate current density only if magnetic field present.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-12-17 15:09:57 -03:00
4f8c9219b2 MESH: Rewrite and simplify redistribute_blocks().
Attribute new process division and distribute data blocks in one loop.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-12-08 12:48:54 -03:00
7da9421744 BLOCKS: Do nothing if processes are equal in change_blocks_process().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-12-06 13:01:13 -03:00
295453b01c IO: Distribute files better among the restarting processes.
This is an improvement in the case a job restarted with a higher
number of processes. The reading of data blocks is spread among new
processes, so it better balances memory.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-12-04 20:16:55 -03:00
f59db0375f FORCING: Add parameter 'driving_velocity'.
By default this parameter is set to zero and the behavior is the same as
before. However, if this parameter is set to a value larger than zero,
it determines the driving time scale for the Ornstein–Uhlenbeck method,
and the injection power for the Alvelius method.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-27 15:55:57 -03:00
0a20337054 EVOLUTION: Remove debug check for NaNs.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-25 18:16:02 -03:00
b28a42427c FORCING: Parallelize inject_eddy() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-25 18:13:22 -03:00
9ee8c0a2ae FORCING: Slightly rewrite the parallelization of get_vcoefs().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-25 18:10:12 -03:00
89be37c8b5 FORCING: Parallelize inject_fmodes() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-25 16:07:04 -03:00
36544af793 FORCING: Parallelize get_vcoefs() using OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-25 16:06:15 -03:00
ec7d12260e FORCING: Adjust forcing modes for domain smaller than unity.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-16 13:41:43 -03:00
22104fb867 FORCING: Fix region of turbulence driving.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-07 19:56:47 -03:00
caa0a1bcdb STATISTICS: Fix averaging of the boundary fluxes.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-10-24 10:06:36 -03:00
5c8d13f385 STATISTICS: Remove unused variables.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-10-24 08:54:03 -03:00
fbfc1983e6 STATISTICS: Implement mass and energy conservation terms calculation.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-10-23 22:42:17 -03:00
296da6a63e STATISTICS: Introduce flags to enable/disable statistics collection.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-10-17 12:37:20 -03:00
336a04377b BOUNDARIES: Remove unused variables.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-10-17 11:29:58 -03:00
64c58bb4bd EQUATIONS: Make compiler happy with imported variables.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-10-17 11:26:19 -03:00
cd0e6ea675 USEWR_PROBLEM: Fix identation in setup_user_problem().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-09-30 19:12:01 -03:00
cd9b909333 USER_PROBLEM: Correct arguments for update_user_sources().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-09-30 19:09:59 -03:00
8e4bd1712d EVOLUTION: Change safety factor to 0.91.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-06-11 00:22:56 -03:00
4af6e99ca8 EVOLUTION: Do not repeat if tolerance reached in embedded methods.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-06-09 18:04:53 -03:00
7c4f5660fa SYSTEM: Rewrite progress printing in evolve_system().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-06-04 15:25:00 -03:00
8d2edeed12 IO: Fix storing and restroring the forcing coefficients.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-31 19:30:51 -03:00
0f104bd033 EQUATIONS: Print the location just once in correct_unphysical_states().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-27 11:59:35 -03:00
cb56db7880 HELPERS: Introduce two print_message variants.
One prints the location, another one just the message.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-27 11:58:06 -03:00