- the level resolution array 'res' has been moved to mesh module, where
it should belong; due to this it needs to be provided as an argument
to subroutines in BLOCK and PROBLEM modules which use it;
- the level resolution array stores block resolutions in each
directions, so it is now a two dimensional array, with the dimensions
corresponding to the number of levels and number of dimensions;
- update subroutine write_coordinates_h5() to store the level
resolution array properly;
- add a new subroutine set_datablock_dims() to set dimensions of the
allocatable arrays in data blocks; this subroutine is called from
init_mesh(), which is the right place to initiate BLOCK module;
- remove dependency of blocks.o on variables.o;
- boundaries.o depends on timers.o;
- 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;
- in subroutine prolong_block() prolongate the magnetic field
components and scalar potential during the block refinements if the
GLM-MHD equations are used;
VARIABLES
- create new module 'variables' which stores references to variable
indices; we gonna store dofferent objects related to variables in
this module;
BLOCK STRUCTURE
- the global variable nblocks tells how many metablocks are allocated,
thus its name is changed to mblocks;
- remove unnecessary checking of the list allocation;
MESH
- subroutine restrict_block has been rewritten to use one big array for
storage variables from all children and them restricting this array
and putting resulted variables in a new data block;
BOUNDARY CONDITIONS
- remove the third argument from all calls of the subroutine shrink();
INTERPOLATION
- remove ng argument from subroutines shrink() and shrink_1d();
- small fixes to subroutine magtocen() in the divergence free
correction calculation;
MESH
- fix index calculation and remove the third argument from calling the
subroutine shrink();
BOUNDARY CONDITIONS
- rewrite subroutine bnd_prol() and use expand_mag() in it;
- fix some index calculations in bnd_rest();
INTERPOLATION
- implement new subroutine expand_mag() performing divergence-free
prolongation of the staggered magnetic field;
- implement divergence-free correction in interpolation of cell
centered magnetic field in subroutine magtocen();
MESH
- use new subroutine expand_mag() in block prolongation;