170 Commits

Author SHA1 Message Date
83c1a5da1e MESH: Move the second part of update_mesh() to update_neighbor_refinement().
The second part of update_mesh(), in which we update neighbor refinement
flags, has been moved to a new subroutine update_neighbor_refinement().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-06-23 10:33:10 -03:00
b12335528a MESH: Move part of update_mesh() to check_data_block_refinement().
The first part of update_mesh(), where we check and update the
refinement flags, has been moved to a new private subroutine
check_data_block_refinement().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-06-23 10:10:29 -03:00
e06a7edfdd BLOCKS: Check neighbor consistency if DEBUG=Y.
Add subroutines to iterate over all block neighbors and check if they
reference to correct meta blocks.  The neighbor consistency check is
done after initial mesh generation and each time the mesh has been
updated.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-27 21:00:08 -03:00
75eb97125e BLOCKS, MESH, IO: Fix restart with less processes.
The job restart with smaller number of processors than the number of
files didn't work well, since all metablocks of all remaining files
where set to the last process before actually reading the corresponding
data blocks.  This resulted in a crash in redistribute_blocks() due to
pointer not associated.

The fix lets the meta blocks to be restored with the original process
numbers.  While reading files with the indices larger than the index of
the last process, all meta blocks which corresponding data blocks are
stored in the read file, are set to the process number of the reading
process.  After reading data blocks from each file, the blocks are
redistributed.  However, only data blocks belonging to the active
processes are redistributed.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-23 17:33:44 -03:00
962c5fce94 MESH: Remove calling check_mesh() if DEBUG=Y.
Subroutine check_mesh() has been removed.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-23 15:08:58 -03:00
0a81a01242 MESH: Micro optimization in prolong_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-17 11:52:06 -03:00
b226959097 MESH: Interpolation symmetry in prolong_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-17 11:35:15 -03:00
4bbd84147f BLOCKS: Rewrite neighbor selection for refinement.
In this patch we make a general subroutine iterating over all neighbors
iterate_over_neighbors() which takes as arguments a pointer to the block
which neighbors are evaluated and pointer to subroutine which should be
called with each neighbor. So far two such subroutines are used, one to
select the proper refinement flag, and another to select the neighbor
for update.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-02-07 10:25:53 -02:00
4e7b5def3e COORDINATES, MESH: Remove effres.
The mesh coefficients are calculated in a bit different way in
store_mesh_stats().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 14:58:35 -02:00
c2656c9b6a BLOCKS: Field %coords mean global coordinates at the block level.
If we take the whole domain and divide it between blocks of the size
corresponding to the current lever, the field %coords identifies the
position of the current block in the domain.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 14:00:42 -02:00
d182934fcf BLOCKS: Rename meta block field %cpu to %process.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 19:20:41 -02:00
3ec7bdf232 BLOCKS, MESH: Remove checking the meta block structure.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 19:01:41 -02:00
b2dbb01cd8 BLOCKS: Rename datablock_set_dims() to set_block_dimensions().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 17:58:28 -02:00
2ad980142b ERROR: Rewrite module a bit and the way messages are printed.
Subroutine print_error() does not stop the execution anymore.  This
should be controlled by the code.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-10 11:27:39 -02:00
a366a9cede MESH: Send primitive variables in redistribute_blocks() too.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-08 15:51:31 -02:00
39e80d3e55 MESH: Fix coverage and efficiency factors calculation.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-07 21:59:13 -02:00
9307817387 MESH: Change timer descriptions.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-03 12:44:21 -02:00
788d328f7a Update years in copyright information.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-02 11:52:59 -02:00
7a4e402c8a BLOCKS, IO, MESH: Rename nchild to nchildren.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 17:58:40 -02:00
acb7eb812d MESH, REFINEMENT: Use statement formatting.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 17:41:04 -02:00
053e72ead4 MESH: Rewrite check_mesh().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 15:17:27 -02:00
24b644aa6a MESH: Rewrite prolong_block() and restrict_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 15:14:31 -02:00
c1db19d55f MESH: Rewrite update_mesh().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 15:11:03 -02:00
c6c1ed97ed MESH: Relocate store_mesh_stats() in the module.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 13:17:25 -02:00
081eeee471 MESH: Add module subroutines profiling.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 13:15:17 -02:00
c877cc6b7c MESH: Rewrite redistribute_blocks().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-27 08:02:07 -02:00
758c712991 MESH: Rewrite initialization and statistics.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-26 19:51:26 -02:00
156d8cf1dd MESH: Rewrite generate_mesh().
The new version uses the minimum amount of memory (1 data block per
process) with a small sacrifice of the problem initialization speed.
This version fully supports 2D and 3D with and without MPI.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-23 21:35:30 -02:00
3052f9aa04 BLOCKS: Replace associate_blocks() with link/unlink_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-23 18:19:13 -02:00
853618b874 MESH: Replace deallocate_datablock() with remove_datablock().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-23 17:44:36 -02:00
b21b7f99d1 MESH: Change summation order in restrict_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-19 10:18:06 -02:00
70d43808b0 MESH: Rewrite restrict_block().
Make sure that the summation symmetry is preserved.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-19 09:48:53 -02:00
0dc7b24c43 Replace minmod3 with the proper limiter() function.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-12 12:41:55 -02:00
8b11a56312 Clean up GLM dependent code.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-11 11:09:19 -02:00
1bd066f56f Remove dependency of the module VARIABLES.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 21:36:35 -02:00
386fd36f5e Update copyright line.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 15:23:28 -02:00
Grzegorz Kowal
b7bdcb3982 Implement MC limiter and use it in prolongation. 2012-08-05 22:03:13 -03:00
Grzegorz Kowal
fcac1db487 Move domain subroutines to new module DOMAINS. 2012-07-27 21:37:57 -03:00
Grzegorz Kowal
d5e720fb5c Move refinement check to new module REFINEMENT. 2012-07-27 21:28:59 -03:00
Grzegorz Kowal
92462e76b9 Rewrite module PROBLEMS.
Heavy rewrite of the module PROBLEMS in order to remove the dependency
on module CONFIG and improve the cleariness of the module.
2012-07-27 21:13:43 -03:00
Grzegorz Kowal
fc72250516 Rename module PROBLEM to PROBLEMS and update dependencies. 2012-07-27 19:23:11 -03:00
Grzegorz Kowal
18886475fc Rename module INTERPOLATION to INTERPOLATIONS. 2012-07-27 16:36:51 -03:00
Grzegorz Kowal
20b300ab74 Use variables from COORDINATES in module MESH.
Remove dependency on module CONFIG.
2012-07-27 16:02:07 -03:00
Grzegorz Kowal
eb4b41ecbd Rename init_mesh() to initialize_mesh(). 2012-07-27 10:34:19 -03:00
Grzegorz Kowal
3fb472d760 Move domain bounds to module COORDINATES.
Also rename init_coords() to initialize_coordinates(), and
clear_coords() to finalize_coordinates().
2012-07-23 22:43:23 -03:00
Grzegorz Kowal
2a5e9bc89b Rename init_blocks() and clear_blocks() and describe them. 2012-07-22 22:47:25 -03:00
Grzegorz Kowal
ff60bb681c Rename module COORDS to COORDINATES. 2012-07-22 22:26:51 -03:00
Grzegorz Kowal
515c82d435 Rewrite module MPITOOLS and adopt the rest to the changes.
Another step of reducing differences between the AMUN and GODUNOV codes.
2012-07-22 19:01:27 -03:00
Grzegorz Kowal
0da52f7aec Rewrite module TIMERS to be compatible with Godunov version. 2012-07-22 15:46:56 -03:00
Grzegorz Kowal
64a098c9bb Rename module TIMER to TIMERS.
Rename internal array timers(:) to times(:) to not conflict with the
module name.
2012-07-22 12:59:15 -03:00