2369 Commits

Author SHA1 Message Date
a9cf789833 EVOLUTION: Rewrite SSPRK2(1)m method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 22:16:40 -03:00
a87bcce907 EVOLUTION: Reorganize methods.
Put first non-embedded and then embedded methods.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 16:16:26 -03:00
6dcd400219 EVOLUTION: Treat any unphysical state properly in SSPRK3(2)4 method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 16:09:32 -03:00
a52da2830d EVOLUTION: Treat any unphysical state properly in SSPRK3(2)n² method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 16:05:22 -03:00
380e4c8d7e EVOLUTION: Synchronize status among processes in update_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 15:59:34 -03:00
89bc706673 EVOLUTION: Treat any unphysical state properly in 3S*+ method.
If any unphysical cell is detected, the integration is immediately
reverted and resumed with a time step reduced by a factor or four.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 15:37:47 -03:00
ea49382c49 EQUATIONS: Add status flag to all cons2prim_*() subroutines.
We also check if the positive variables are indeed positive.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 13:21:32 -03:00
17f867cb08 EQUATIONS: Add status flag to update_primitive_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 12:51:23 -03:00
86cf55e836 EVOLUTION: Add status flag to update_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-09 12:32:49 -03:00
9f1c072704 DRIVER: Use only few last steps to estimate the remaining time.
This improved the remaining time estimation in case the number of leafs
changes significantly.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-08 22:35:38 -03:00
4f73c95616 BOUNDARIES: Use the same buffer for boundary copy.
The copy of boundaries between blocks at the same level always uses the
same size of buffer, so instead of using two of them, one for sending
and another for receiving, use just one for sending and receiving. This
will use the appropriate subroutine from MPITOOLS
exchange_arrays_same().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-04 10:22:13 -03:00
787e07d572 BLOCKS: Rename %block to %meta in block_info structure.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-04 09:31:44 -03:00
f3ad7924ea MPITOOLS: Use interface for exchange_arrays().
Implement two subroutines, one for exchange of arrays of different
sizes, and the second for exchange of arrays of the same sizes.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 22:44:30 -03:00
95617866b1 MPITOOLS: Use MPI_IN_PLACE in all MPI_Allreduce().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 22:39:33 -03:00
3a056d4ddc HOSTS: By default use IMPI with Intel compiler.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 13:01:33 -03:00
5bbd6b1242 MAKE: Add option -fcheck=all for DEBUG.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 12:41:19 -03:00
9ecbf83d5f MESH: Make sure again the index nc is not out of the range.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 12:32:48 -03:00
192d417431 HOSTS: Add a few check flags to NVIDIA compiler options.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 11:33:57 -03:00
01d0549bf5 MESH: Make sure the index nc is no out of the range.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-03 10:32:23 -03:00
20cb799fba MPITOOLS: Fix argument intent in exchange_arrays().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-01 13:11:35 -03:00
e352c2cb0e HOSTS: Add support for NVIDIA HPC compilers.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-01 11:33:50 -03:00
2098661d3c EQUATIONS: Remove cruft.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-30 16:59:32 -03:00
8d5f356d8d MPITOOLS: A real value and array are the same for NVIDIA compiler.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-30 16:53:35 -03:00
0ff346597d HELPERS: fnum() is GNU Fortran specific.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-29 11:55:43 -03:00
f567a9ddf8 USER_PROBLEM: Pass the simulation time to user_time_statistics().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 12:01:01 -03:00
b0401e96c6 PROBLEMS: Pass the run count to user problem initialization.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 11:59:11 -03:00
6187c6d76d USER_PROBLEM: Rename user gravitational acceleration subroutine.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 09:09:13 -03:00
8c808fd70c USER_PROBLEM: Rename subroutines boundary_user_() to user_boundary().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 09:02:43 -03:00
22455676f4 USER_PROBLEM: Add user_time_statistics() to module USER_PROBLEM.
This file can we use to calculate and store the user defined time
statistics.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 09:00:03 -03:00
94a621a3c5 USER_PROBLEM: Rename use problem subroutines.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 08:52:03 -03:00
6362fe13ad EVOLUTION: Fix partial times and timesteps in 3S*+ methods.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-23 20:52:03 -03:00
8297482639 IO: Store 'cmax' so we can properly resume jobs.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-23 11:23:58 -03:00
44ea63bc3d EVOLUTION: Implement optimized embedded methods by Ranocha et al.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-20 18:08:54 -03:00
27041d0feb DRIVER, EVOLUTION, IO: Rewrite handling precise snapshots.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-19 14:03:57 -03:00
55b0d24b77 EVOLUTION: Rework slightly the way new time step is calculated.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-19 13:28:25 -03:00
c604467a5c DRIVER: Use the initialize_time_step() instead of new_time_step().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-19 13:15:04 -03:00
d501b19041 EVOLUTION: Implement estimation of the initial time step.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-19 13:11:41 -03:00
6ca36c93e3 DRIVER, EVOLUTION: Move dtnext to evolution module.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-18 11:33:14 -03:00
0c8d8fac9c EVOLUTION: Rewrite SSPRK4(2)M integration method.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-16 19:03:25 -03:00
e7612f5cfd PYTHON: It should be 'block x of y'.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-15 23:03:26 -03:00
418a580888 EVOLUTION: Print 'err/tol' not the error during the integration.
This is more meaninful, since it shows the ratio of the maximum error to
the tolerance atol + rtol * max(U).

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-15 15:29:42 -03:00
155b5d7575 EVOLUTION: Implement L2 and maximum norms for error calculation.
Alow the user to choose between these two norms.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-15 13:51:25 -03:00
271af020df EVOLUTION: Implement 3rd order embedded SSP3(2)4 with error control.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-15 12:15:14 -03:00
27b6daebca PYTHON: Version 0.9.5
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 18:06:43 -03:00
0d4e955eb0 PYTHON: Reduce dimensions for 2D datasets in AmunH5.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 18:06:07 -03:00
9a7235b72d PYTHON: Use None for fields in chunks with dblocks == 0.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 18:05:58 -03:00
51cc3ea83b PYTHON: Determine toplev only for chunks with dblocks > 0.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 18:05:46 -03:00
d217d092ab PYTHON: Version 0.9.4
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 13:31:05 -03:00
e13bd00a0e PYTHON: Replace numpy.empty with numpy.zeros in AmunXML.__fill_chunks().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 13:07:57 -03:00
07fc5c20b0 PYTHON: Create empty chunk fields for chunks with no dblocks.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-06 13:02:31 -03:00