To prevent solution instability caused by sudden increases in the
timestep, such as when the maximum refinement level decreases, a new
parameter 'dt_jump_factor' has been introduced. This parameter controls
the allowable increase in the timestep.
By default, 'dt_jump_factor' is set to 1.05, permitting a maximum
increase of 5% from the previous timestep.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
Restricted initial time steps to values smaller than the CFL time step
to ensure numerical stability. This prevents instability issues that
may arise from excessively large initial steps.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit separates the smoothness indicator and weight calculations
for 5th order WENO methods into different subroutines. This allows
modification of only the weight factor calculations for different WENO methods.
It extends the 5th order methods to include WENO5-JS, WENO5-Z+, WENO5-ZC,
WENO5-ZC+, WENO5-Z+M, and WENO5-AT.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
The injected energy and rate were added to the global array within the
loop over the blocks, essentially multiplying the energy by the number
of blocks for each process. This fix moves the injected energy
accounting out of the loop over the blocks.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
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>