1045 Commits

Author SHA1 Message Date
f7daa3f60d Merge branch 'master' into flux-tubes 2023-06-02 16:26:03 -03:00
7deb0d369d EVOLUTION: Make shape update more consistent.
For of all, update_shape now works with the conservative variables.

It is called in three points:
1) Just after the integration update or when the block were (de)refined.
2) Afted the boundary update.
3) If the unphysical cell correction is on, it is applied to blocks
   which contain unphysical cells after they are corrected.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-31 18:16:59 -03:00
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
e8e903aadf Merge branch 'master' into flux-tubes 2023-02-28 10:16:03 -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
2b79fb73c8 Merge branch 'master' into flux-tubes 2023-02-27 10:07:12 -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
22ae707b99 Merge branch 'master' into flux-tubes 2023-02-22 16:10:36 -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
0c37c62585 Merge branch 'master' into flux-tubes 2023-02-15 10:32:25 -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
1d7e17cd07 Merge branch 'master' into flux-tubes 2023-02-08 12:33:40 -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
614f51099b Merge branch 'master' into flux-tubes 2023-02-07 10:18:48 -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
f4ef9f3595 Merge branch 'master' into flux-tubes 2022-12-08 13:09:47 -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
021a3de384 Merge branch 'master' into flux-tubes 2022-12-06 20:24:29 -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
2f4aade054 Merge branch 'master' into flux-tubes 2022-12-04 20:20:31 -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
2561c11567 USER_PROBLEM: Estimate the thickness from the resistivity, by default.
The thikness of the current sheet is set to the square root of the
resistivity, if it is not set explictely in the parameter file.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-27 18:23:56 -03:00
5793fe7810 USER_PROBLEM: Calculate Alfvén speed using bamp only.
This is the Alfvén speed along the X direction defining the velocity
scale, time scale, and the Lundquist number.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-27 18:16:24 -03:00
20492048aa USER_PROBLEM: Correct the way the zeta parameter works.
Parameter 'zeta' controls if the thermal pressure (zeta=0.0) or
guide field (zeta=1.0) should contribute to make the total
pressure uniform.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-11-27 17:06:13 -03:00
ef68c12b44 Merge branch 'master' into flux-tubes 2022-11-27 16:00:15 -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
c438dca1fb Merge branch 'master' into flux-tubes 2022-11-25 18:21: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
116a49821b Merge branch 'master' into flux-tubes 2022-11-25 16:08:40 -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