The kappa parameter is calculated from CFL value. It is a decreasing
value with increasing CFL. However, to maintain the precision of MP
limiter, it should be kept above 1. Therefore, instead of taking the min
values between the user defined kappa and the one calculated from the
CFL value, take its maximum.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
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>
This commit implements a better way (less I/O operations) restoring of
the parameters during the job restart. Some parameters, such as the size
of the block, or the equation system, cannot be changed during the
restart. Such parameters need to be restored from the restart snapshots.
The new way restores these parameters on the MPI master process only,
updates their values if they were changed, and distributes them to other
MPI processes. This way the number of I/O operations is kept to the
minimum (only one process access one file).
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit restores the previous way of processing the parameter file.
It is read and processed on the MPI master process, and then the list
of parameters is distributed to other MPI processes. This way only one
process accesses the parameter file, reducing the number of I/O
operations, which can be significant in the case of multiprocess MPI
jobs.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
The methods by Ranocha et al. (2021) are error-controlled embedded RK
methods, therefore the CFL value should be set explicitely for these
methods.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This flag indicates whether the energy injection was performed. If not,
there is no need for the variable update.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
It seems that the selective block update, i.e., update of the blocks
which have been (de)refined only, is not perfect. It violates the
numerical conservation somehow, and requires more investigation.
In order to fix this, perform the update of all data blocks, no matter
if they were refined or not. This makes some blocks to be updated twice,
but resolves the problem of variable conservation.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>