- the program now handles properly some of the termination signals,
which means that if the program receives a signal to terminate its
execution, it will finish the current loop, write restart files,
end then exit properly;
- a new file 'mesh.log' is created with the following colums: step,
time, the number of leafs, the number of meta blocks, the coverage
efficiency, which is the number of leafs divided by the number of top
level blocks covering the whole domain, the AMR efficiency which
shows the advantage of using adaptive mesh (with boundaries taken
into account), block distribution over levels and processors;
- the AMR efficiency is the number of leafs multiplied by the number of
cells in one block (with boundaries included) and divided by the
effective resolution with boundaries included; if this parameter is
smaller than 1.0 we should expect faster calculations due to the
adaptive mesh, if the parameter is larger than 1.0, we only slow down
the calculations by using the adaptive mesh;
- add a new module INTEGRALS which handles initialization and
calculation of the conserved variables and energies;
- add make dependencies to makefile;
- call the initialization, storage and termination subroutines from the
driver;
- add a new module FORCING to handle forcing source terms, e.g. for
turbulence driving;
- implement initial versions of init_forcing() and clear_forcing()
subroutines;
- add compilation flag FORCING and use it during compilation process in
makefile;
- add a new module RANDOM which handles initialization and generation
of different type random number distributions;
- include the module in the compilation process;
- initialize the random generator from driver;
Rewritten boundaries allow for a proper handling boundaries between
blocks at different refinement levels. Prolongation and restriction of
the boundaries are improved now.
Rewritten interpolation for prolongation and restriction.
References to the variable indices are assigned more properly.
A new 'mpitools' module has been added. This module contains subroutines
to initialize, deinitialize and handle MPI communication. This initial
version can now initialize and deinitialize parallelization. It does not
support full parallelization yet.
Now we can control the levels of refinement/derefinement criterion from
the config file. The bounds of the domains are stored in the HDF5 files
from now.
The function to calculate the maximum speed in the block has been added.
This function is used to determine the maximum speed globally, which is
next used to estimate the next time step.
A new parameter to control the time interval between writing data has
been added. Also the condition to check if data should be written has
been added in the main loop.
A new module for the time integration has been added. This module
contains a set of subroutines to perform one step time integration of
each leaf block using 2nd order Runge-Kutta method. More methods can be
added later. Time 't', timestep 'dt' and iteration 'n' have been moved
to this module as well.