182 Commits

Author SHA1 Message Date
97b221dc14 EVOLUTION: Move DEBUG section to a better position in advance().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2018-02-09 07:24:47 -02:00
fedba83d17 EQUATIONS: Implement correction of unphysical cells.
The unphysical cells (those with negative density or pressure) will be
corrected by averaging their states from the values of physical
neighbors.

The option is off by default, but can be turned on by setting:

fix_unphysical_cells = "on"

in the parameter file.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2018-01-16 09:57:23 -02:00
2c32139d8c Update copyright info.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2018-01-04 12:13:09 -02:00
2a202605b0 BOUNDARIES: Pass time and dt to boundary_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-03-07 16:02:01 -03:00
d63d6bbe6f EVOLUTION, SOURCES: Pass tm and dtm to update_sources().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-03-07 15:41:10 -03:00
5786b7f457 EVOLUTION: Move tm and dtm calculation befor applying source terms.
If we have time dependent source terms, we should pass tm and dtm to
subroutine update_sources().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-03-07 15:36:51 -03:00
5c4248581f Update the year.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-03-03 17:51:42 -03:00
84a3f1e687 COPYRIGHTS: Update year.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2016-11-18 11:09:19 -02:00
677284b003 EVOLUTION, SCHEMES: Calculate all directional fluxes at once.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2016-07-26 22:47:55 -03:00
4a5cec8168 EVOLUTION: No need to initialize fluxes in update_fluxes().
The fluxes are already initialized in update_flux().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-06-05 19:09:46 -03:00
8678de92f5 EVOLUTION: Initialize array %f(:,:,:,:,:) in update_fluxes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-05-27 18:22:55 -03:00
769e69d704 EVOLUTION: Initialize array du in update_increment().
We do not update all elements of array du(:,:,:,:) in
update_increment(), therefore some of its elements may be NaNs. Make
sure that all elements have arithmetic representation by initializing
du(:,:,:,:) with zeros.

Also, indicate that array du(:,:,:,:) is only output argument.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-05-27 17:58:30 -03:00
4534110d28 EQUATIONS: Pass time and time increment to update_shapes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-05-16 15:58:01 -03:00
c48aa3ee8a EVOLUTION: Update shapes after updating boundaries.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-05-16 10:31:16 -03:00
2e4dfbdc09 EVOLUTION: Move boundary_variables() to update_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-05-11 07:33:29 -03:00
568644c61f EVOLUTION: Rewrite slighty update_increment().
This rewrite seems to speed up this subroutine by a factor of 3 in the
2D case.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-01-09 13:38:18 -02:00
81f1c2bbbf COPYRIGHT: Update year to 2015.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-01-06 16:01:36 -02:00
f89d213386 EVOLUTION: Add support for profiling.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-09-14 20:38:53 -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
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
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
b5caafef4c EVOLUTION: Change real variables to double precision.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-04 09:12:05 -03:00
9d2b829179 EVOLUTION: Add check for NaNs in variables if DEBUG=Y.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-14 13:25:30 -03:00
ad7125f27b EVOLUTION: Correct line formatting in new_time_step().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-06-02 11:47:37 -03:00
97054d050d EVOLUTION: Improve the stability for dt_hyd ~ dt_diff.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-06-02 10:37:43 -03:00
d5625ccb9f SOURCES: Implement resistive source term for MHD.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-05-29 12:04:55 -03:00
c292b88cbd SOURCES: Implement simple model of viscosity.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-05-27 17:53:35 -03:00
81bec38a77 EVOLUTION: Move here update_increment() from SCHEMES.
Subroutine update_increment() was using time information which broke the
source term contribution. It has been moved to module EVOLUTION and its
arguments have been simplified.

The time step is now directly taken into account in the time integration
subroutines.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-05-27 16:29:53 -03:00
8ac8248279 SOURCES: Add initial version of source terms module.
This contains only point mass gravitational acceleration so far, as an
example.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-29 18:35:58 -03:00
f874511673 EVOLUTION: Update primitive variables before boundaries.
The new order is to first, convert the updated conserved variables to
their primitive representation in the block interiors, update boundaries
of the primitive variables, and finally, convert the primitive variables
at the ghost cells to conserved ones.

The change updates the primitive variables in the block interiors before
the boundary update.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-04-09 08:51:04 -03: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
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
c01e0760fe DRIVER, IO: Implement precise snapshot times.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-08 18:07:54 -02:00
8009d6ff5c EVOLUTION: Rename n and t to step and time, respectively.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-01-08 17:34:15 -02:00