1325 Commits

Author SHA1 Message Date
fa1488dfc9 MPITOOLS: Generate processor pairs in round-robin order.
The list of processor pairs in round-robin order should guarantee the
optimal MPI exchange between processors, i.e. that all processors will
be involved in the data exchange in the same time.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-11-30 13:45:18 -02:00
70ad8c92e5 SOURCES: Use temporary array tmp(:,:,:,:,:) instead of jc(:,:,:,:).
In this way adday jc(:,:,:,:) can be removed.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-11-28 08:02:20 -02:00
d0808436b6 SOURCES: Rewrite resistive source terms.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-11-19 20:19:08 -02:00
e2fd3a6b2d Revert "SOURCES: Rewrite resistive source terms."
This reverts commit 34f2871b350b207bfc9a4c1cb872da7d85a47040.

The new implementation based on curl produces numerical oscillation at
small scales.
2014-11-19 19:14:24 -02:00
34f2871b35 SOURCES: Rewrite resistive source terms.
The resistive source terms are calculated without assumption about the
uniform resistivity coefficient.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-11-19 18:29:24 -02:00
ded726db79 SOURCES: Correct the energy term for viscous stress.
The energy term which corresponds to the viscous stress tensor was
incorrect. This patch implements the correct term.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-11-18 20:38:37 -02:00
cd0161515c SOURCES: Implement full viscous stress tensor.
The viscous source term can be expressed as the laplacian only in the
incompressible case (div V = 0) with uniform viscosity. If we have
compressibility or non-uniform viscosity, we need to use the full
viscous stress tensor.

This patch implements it.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-11-18 19:08:50 -02:00
e737ad8995 INTERPOLATIONS: Add timer to extrema clipping.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-10-23 08:49:58 -02:00
9bf6dc9bc9 IO: Detection and reading from the new restart file format.
These changes introduce if the restart files are using the old or new
data block format storing, and respectively restores data in the proper
way.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-10-22 09:25:58 -02:00
c66bfc1b0a IO: Format change for storing data blocks in restart files.
This format change is required to remove unnecessary allocation of large
arrays in order to store primitive and conservative variables in the
restart files. With this format change the memory limit of the half of
the available total memory is removed. However, in the case of use of
the data compression the sizes of restart files are typically large. The
compression ratio, however, can be improved by repacking the files using
the tools provided by the HDF5 libraries.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-10-22 08:51:12 -02:00
eea602a673 MPITOOLS: Don't use timers if MPI=N.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-10-11 22:06:21 -03:00
6c223c2e3b MESH: Increase exponent digit number in mesh statistics.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-27 14:07:12 -03:00
402357eff1 INTEGRALS: Make sure tiny numbers represented in the integral files.
With the standard formatting, there are only two digits for the
exponent, however, the double precision numbers can have exponents down
to -308 and up to 308. That means that three digit exponents are
required to the number representation in the integral files.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-27 14:02:27 -03:00
5997d7310d REFINEMENT: Return current density not its square.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-23 14:17:38 -03:00
736912f791 REFINEMENT: Add refinement criterion based on current density magnitude.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-23 11:24:52 -03:00
a2cfc96f10 PROBLEMS: Update problem parameter files.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-19 08:23:49 -03:00
310961ca7e SOURCES: Implement GLM-MHD source terms (EGLM and HEGLM).
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-19 08:04:48 -03:00
f9d3ed87df OPERATORS: Add support for module profiling.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-19 07:34:04 -03:00
e00dd584e4 OPERATORS: Add gradient operator.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-19 07:17:28 -03:00
7c3a621096 MESH: Redistribute all variable arrays in redistribute_blocks().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-17 08:34:47 -03:00
f89d213386 EVOLUTION: Add support for profiling.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-14 20:38:53 -03:00
d1e78eb0b7 MESH: Replace pblock with pmeta in some subroutines.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 10:19:25 -03:00
2960aea9c4 EVOLUTION: Update some comments.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 10:17:02 -03:00
8f86be865f EVOLUTION: Slightly rewrite update_fluxes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 10:15:34 -03:00
f11cdf7097 EVOLUTION: Slightly rewrite evolve_rk3().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 10:10:54 -03:00
984fec49ed EVOLUTION: Slightly rewrite evolve_rk2().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 10:00:16 -03:00
2c359fd5f2 EVOLUTION: Slightly rewrite evolve_euler().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 09:53:40 -03:00
b5d1896d30 EVOLUTION: Slightly rewrite new_time_step().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-13 09:47:07 -03:00
557abc5b82 MESH: Make MPI tag in redistribute_blocks() consistent.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-11 20:00:06 -03:00
5eecf860ef BOUNDARIES: Make sure MPI tags are unique and valid.
The tag for boundary flux update was overfloating producing invalid tag
for MPI Send, while using high number of processes. Make sure that all
tags in module BOUNDARIES are generated without overflow.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-11 19:48:46 -03:00
39483913e9 COORDINATES: Add domain boundary areas.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-29 09:08:13 -03:00
809426e6c9 MPITOOLS: Add profiling to module subroutines.
The timing is counted for four separate groups: broadcasting, reducing,
sending and receiving.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-29 08:58:58 -03:00
b69fb5f3d4 EVOLUTION: Correct comments in evolve_ssprk2().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-26 14:53:11 -03:00
dd54da1e5c EVOLUTION: Correct comments in evolve_ssprk35().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-26 14:51:14 -03:00
3738e9dbef EVOLUTION: Rewrite 3rd order 4-stage SSPRK integration.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-26 14:47:16 -03:00
2e5e8b6747 EVOLUTION: Implement 3rd order 5-stage SSPRK integration.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-26 13:51:11 -03:00
074fcb3e54 EVOLUTION: Implement 2nd order multi-stage SSPRK integration.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-26 13:25:31 -03:00
86cf4d059d EQUATIONS: Make csnd2 public too.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-26 07:10:48 -03:00
b75ad37011 EVOLUTION: Rename RK coefficients in evolve_rk34().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-21 14:01:27 -03:00
f4236e791e EVOLUTION: Remove "method" from intergration method descriptions.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-21 12:39:35 -03:00
f7469b1d67 INTEGRALS: Store the current time step, not fractional dt.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-20 18:10:30 -03:00
c1d7c9a52f EVOLUTION: Implement 3rd order 4-stage Runge-Kutta integraiton.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-19 21:12:20 -03:00
d59a5be1fc EVOLUTION: Implement 3rd order Runge-Kutta temporal integraiton.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-19 20:50:49 -03:00
fdf1274b28 EVOLUTION: Fix wrong function name iee_is_nan().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-13 07:43:14 -03:00
39b560065d EVOLUTION: Use ieee_is_nan() instead of isnan() in IBM BG/P.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-13 07:31:05 -03:00
02a67e86b2 DRIVER: Print information about the number of MPI processes used.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-09 09:31:52 -03:00
5927fb6536 INTERPOLATIONS: Correct warning about too few ghost zones.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-08 08:24:54 -03:00
87f74a90ba INTERPOLATIONS: Implement Compact WENO5 with NS stencil weights.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-08 08:16:46 -03:00
92da0e6698 INTERPOLATIONS: Remove general method CRWENO5.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-07 19:32:39 -03:00
48b962cf54 INTERPOLATIONS: Print warning if nghosts too low for a given method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-07 19:03:58 -03:00