1134 Commits

Author SHA1 Message Date
e18dfc5977 BOUNDARIES: Reintroduce edge/corner update.
This guarantees that the very edges or corners are always physical and
minimizes their influence on the variable evolution in the ghost zones.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-30 12:23:38 -03:00
be40a6113c IO: Store ghost cells in the snapshots by default.
This is just in case we would like to use interpolation to reconstruct
the full domain resolution.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-19 19:04:42 -03:00
88edaec837 EQUATIONS, SCHEMES: Implement Roe's solver for adiabatic MHD.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-06 14:19:31 -03:00
42c738c78d EQUATIONS, SCHEMES: Implement Roe's solver for isothermal MHD.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-06 13:55:09 -03:00
78b15d5596 EQUATIONS, SCHEMES: Implement Roe's solver for adiabatic HD.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-06 13:16:57 -03:00
a8d575e471 EQUATIONS, SCHEMES: Implement Roe's solver for isothermal HD.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-06 12:59:51 -03:00
a49dad5ad0 SCHEMES: Separate Riemann state reconstruction from Riemann solvers.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-06 12:15:44 -03:00
f1378c6e4e SCHEMES: Group subroutines according to the equations.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-03-05 19:04:23 -03:00
73cbed8192 PROBLEMS: Rewrite module.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-02-07 13:57:28 -02:00
55de38609d SHAPES: Update module dependencies and spell check.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-02-07 13:50:17 -02:00
e0ca4b0392 SHAPES: Add new module to handle shapes embedded in domain.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-02-07 12:12:27 -02: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
9efa568ddf PROBLEMS: Change default B angle to 0.0 in KH problem.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-31 11:08:44 -02:00
613ef775bb REFINEMENTS: Modify the way of estimating error.
We take the maximum error along each direction instead of calculating
the norm sqrt(ex*ex+ey*ey+ez*ez).  This solves the symmetry problems
with some of the reconstructions.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-31 10:50:18 -02:00
35cbbc9313 PROBLEMS: Add Kelvin-Helmholtz instability problem setup.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-31 10:47:05 -02:00
ffc6d0b538 TIMERS: Avoid usingg MAX() with INTEGER(KIND=8) variables.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-30 18:03:33 -02:00
32fb3177e0 REFINEMENT: Fix return value kind in check_refinement_criterion().
The meta block field %refine is 4 byte integer. Make the value returned
by check_refinement_criterion() of the same type.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-30 17:57:01 -02:00
29a1aa67d7 DRIVER: Add missing comma.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-30 17:55:41 -02:00
57e3e7ec42 DOMAINS: Rewrite module.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 16:20:42 -02:00
fa3ea8ca5d COORDINATES: Rewrite this module.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 16:05:45 -02:00
0cd8abb47c BLOCKS: Clean up comments in refine_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 15:51:28 -02:00
2d4f4eac5b BLOCKS: Prepare arrays order, config, and set once in refine_block().
Those arrays are prepared only at the first execution and then stored in
memory, therefore there is no need to preparing them each time
refine_block() is called. This removes also one 'select which' condition
check.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 15:48:32 -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
3b537eb412 COORDINATES: Remove module variable res().
This variable is not used anymore.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 14:49:34 -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
fa6ca28885 BLOCKS: All real variables should be double precision.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-29 13:36:44 -02:00
1ed3747efb EVOLUTION: Turn on the selective update for refined blocks.
Now, the selective update after refinement/derefinement process is on.
Before checking the refinement and update the mesh, We set all blocks to
not be updated. Then, only blocks which are refined or derefined
including all their neighbors, are set to be updated. This reduces the
repeated work, i.e. boundary update and variable conversion, on blocks
which didn't actually change.

After the mesh refinement, boundary and variable update, we mark all
blocks to be updated, so the regular temporal integration process works.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:58:15 -02:00
d3dc784c5e EVOLUTION: Rewrite subroutine update_variables().
Now, primitive variables are calculated only for the blocks marked to be
updated.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:56:29 -02:00
a75c3975ec BOUNDARIES: Update boundaries only for marked blocks.
Boundaries are updated between blocks which are set to be update.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:53:06 -02:00
bd53c20597 BLOCKS: Mark blocks and neighbors for update when (de)refining.
This patch marks all refined or derefined blocks to be updated. All
their face, edge, and corner neighbors are marked for update as well, in
order to keep the boundary consistency.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:34:42 -02:00
86f98083eb SCHEMES: Fix the Sm=0 case in riemann_mhd_adi_hllc().
Since all components are continuous, return the HLL flux.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:29:34 -02:00
9c49fd8cc1 SCHEMES: Revert previous flux for Sm=0 and Bx=0.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:24:53 -02:00
a44c0c25c6 SCHEMES: Fix states when Sm=0 in riemann_mhd_adi_hlld().
When contact dicontinuity wave is not present (Sm=0), all components are
continuous, therefore the flux can be average from outern states.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-23 10:16:44 -02:00
3dd9c42e4a SCHEMES: Fix wrong loop limits in update_flux_mhd_adi().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-22 22:58:50 -02:00
823b958c72 BLOCKS: Add set_blocks_update().
This subroutine marks or unmarks all blocks on the meta block list to be
updated depending on the input argument.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 20:20:44 -02:00
63cc647747 BLOCKS: Add subroutines to mark and unmark block update.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 19:27:14 -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
aaccd7fff0 BLOCKS: Rename meta block field %coord to %coords.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 19:09:30 -02:00
1956fecad2 BLOCKS: Rename meta block field %config to %conf.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 19:06:31 -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
a695f90dd7 BLOCKS: Rewrite metablock_(un)set_leaf().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:58:47 -02:00
d95d4354cc BLOCKS: Rewrite metablock_set_bounds().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:52:00 -02:00
4d0b3c007b BLOCKS: Rename and rewrite metablock_set_coordinates().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:48:36 -02:00
88c6a0f1a6 BLOCKS: Rewrite metablock_set_position().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:43:53 -02:00
ee9595ffe6 BLOCKS: Rename and rewrite metablock_set_refinement().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:40:48 -02:00
afc2407881 BLOCKS: Rename and rewrite metablock_set_configuration().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:34:49 -02:00
7f16adaf48 BLOCKS: Change metablock_set_* subroutines order.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:27:37 -02:00
94f4dfcc5b BLOCKS: Rewrite metablock_set_level().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:23:15 -02:00
243475ee46 BLOCKS: Rename metablock_set_cpu() to metablock_set_process().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:18:07 -02:00
4ec6184026 BLOCKS: Rewrite subroutine metablock_set_id().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-16 18:13:06 -02:00