1000 Commits

Author SHA1 Message Date
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
e50e83bb1c EQUATIONS: Adapt unphysical cell info for 2D and 3D.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-27 11:54:32 -03:00
edb3924499 EQUATION: Correct formatting in correct_unphysical_states().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-26 22:34:47 -03:00
aa99145260 EQUATIONS: Print the location of unphysical cell.
Also slightly rewrite and simplify the arguments of
correct_unphysical_states().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-26 22:21:02 -03:00
2696d5dffb EVOLUTION: Rewrite the handling of unimplemented methods.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 19:20:57 -03:00
94ea7d171d SCHEMES: Remove redundant empty line.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 19:02:56 -03:00
1033b4ede7 INTERPOLATIONS: Rewrite the handling of unimplemented methods.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 18:48:01 -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
b0e221e2f3 HELPERS: Print all messages in two lines.
The first line shows the location from which the message was called, and
the second one shows the actual message.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 18:19:57 -03:00
d02c46e6d8 HELPERS: Add function to change the string case.
New functions uppercase() and lowercase() change the input string to the
upper case and lower case, respectively.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-24 18:17:55 -03:00
4f68d94827 FORCING: Implement driving region for in non-periodic directions.
This allows to control in which region the turbulence perturbation
should be injected.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-04-07 10:33:30 -03:00
fbc04e4996 EVOLUTION: Mark updated blocks as physical in update_variables().
Otherwise, these blocks are considered as non-physical if the
fix_unphysical_cells is on.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 15:40:26 -03:00
95d117cd1a EVOLUTION: Quit update_variables() in case of problems.
The possible failure could take place in the boundary update or
conversion to the conservative variables. In case of a failure, jump
directly to the end part of subroutine in which the %boundary flag is
cleared.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 13:39:58 -03:00
a4890bb240 EQUATIONS: Rewrite slightly correct_unphysical_states().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 13:34:31 -03:00
571e352e5b EVOLUTION: Remove unused variable from check_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 13:12:30 -03:00
9aa74d2343 EVOLUTION: Rewrite update_variables().
After the boundary update, all respective blocks modified by the mesh or
boundary update are required to update their primitive variables. If a
data block contains a non-physical cell, it is corrected by
correct_unphysical_states(), if fix_unphysical_cells is switched on.
As the last steps, the shapes are updated if they are switched on.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 13:07:17 -03:00
ef1dff58f7 BLOCKS: Add field %physical to data block structure.
This field should be set to .true. if all block cells are physical,
otherwise it should be set to .false..

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 12:54:57 -03:00