This subroutine now used the new XML module to parge XML files. It also
used new subroutine read_binary_xml() to read binary files.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This subroutine is also responsible for detection if binary data are
compressed and encoded, and respectively decompress and decode them.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This module offers a user-friendly interface for parsing XML data and
retrieving elements and attributes.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit does not change any functionality. It just prepares for
easier implementation of the compression of the restart snapshots.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
The default compression levels correspond now to the default levels
defined by each compression format library.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
This commit implements two data filters:
1) "shuffle" - reorganizes bytes to group most to less significant parts
together: |a1|a2|a3|b1|b2|b3| -> |a1|b1|c1|a2|b2|c2|a3|b3|c3|
2) "bytedelta" - additionally stores differences between subsequent
values: |a1|a2|a3|b1|b2|b3| -> |a1|b1-a1|c1-b1|a2|b2-a2|c2-b2|a3|b3-a3|c3-b3|
For large datasets, in particular in 3D, the compression ratio can be
significantly better after applying these filters.
Inspired by https://aras-p.info/blog/2023/03/01/Float-Compression-7-More-Filtering-Optimization/
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
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>
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>
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>
The meaning of these variables was inverted. Therefore, the limiting of
positive variables was not working.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
It help with cross compilation and these flags can be added from the
command line, e.g., using
cmake <source_path> -DCMAKE_Fortran_FLAGS="-march=native".
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
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>
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>
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>
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>