805 Commits

Author SHA1 Message Date
8dcc4d95b7 Remove PREC flag to set the computation precision.
The code by default works only with double precision arithmetics.  Quad
precision arithmetics can be added as an option in the future.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 12:04:29 -02:00
9df9b7fa45 Make the config and host file detection similar to GODUNOV.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 11:58:26 -02:00
Grzegorz Kowal
b7bdcb3982 Implement MC limiter and use it in prolongation. 2012-08-05 22:03:13 -03:00
Grzegorz Kowal
139a4bca00 Rewrite some subroutines of module INTERPOLATIONS. 2012-08-05 19:42:06 -03:00
Grzegorz Kowal
e448cd2dfb Remove unused subroutines from module INTERPOLATIONS. 2012-08-05 18:00:10 -03:00
Grzegorz Kowal
92e67b2f36 Fix an MPI bug in new_time_step().
The maximum level was estimated from the list of data blocks.  If we
have many processors, sometimes all blocks could lay at level smaller
than maxlev, what can cause wrong dx_min estimation and desyncronization
between processors.
2012-08-03 02:48:38 -03:00
Grzegorz Kowal
4669367697 Rewrite subroutine check_refinement_criterion().
These modifications slightly speed up the criterion calculation and
applies new default values of the parameters crefmin and crefmax, which
have been tuned in the blast problem.
2012-08-03 01:37:31 -03:00
Grzegorz Kowal
39afde1328 Check the refinement criterion before storing it in the file.
This step is required, since the mesh can be refined/derefined just
before the snapshot dump.  Since the refinement is checked before the
mesh update, it means that the freshly refined/derefined blocks have
undetermined array %c in their structure.
2012-08-02 23:50:46 -03:00
Grzegorz Kowal
b3a455fa52 Remove unused variables from advance() in EVOLUTION. 2012-08-02 23:45:53 -03:00
Grzegorz Kowal
5629bc1d3f Support strings both with ' and " in the parameter file. 2012-08-02 23:21:57 -03:00
Grzegorz Kowal
6dee6c643a Fix compilation with MPI=Y after recent changes. 2012-08-02 19:26:32 -03:00
Grzegorz Kowal
b2d14727f2 Rewrite subroutine boundy_variables(). 2012-08-02 19:06:12 -03:00
Grzegorz Kowal
8e672aff60 Add subroutine specific_boundaries() to module BOUNDARIES. 2012-08-02 18:45:10 -03:00
Grzegorz Kowal
d20487494f Add subroutine copy_boundaries() to module BOUNDARIES. 2012-08-02 18:28:33 -03:00
Grzegorz Kowal
b276bbec00 Add new subroutine prolong_boundaries() to BOUNDARIES. 2012-08-02 18:18:30 -03:00
Grzegorz Kowal
2aa2ed841a Add new subroutine restrict_boundaries() to BOUNDARIES. 2012-08-02 18:09:50 -03:00
Grzegorz Kowal
d9a43e8b32 Add subroutine update_corners() to module BOUNDARIES.
This subroutine is called before the boundary update and assures that
the values stored in all cells of block are physical, even if they do
not influence the solution.
2012-08-02 17:21:42 -03:00
Grzegorz Kowal
c49dabf737 First step of the BOUNDARY module rewrite. 2012-08-02 16:05:02 -03:00
Grzegorz Kowal
179ae41321 Fix compilation when MPI=N. 2012-08-02 15:09:44 -03:00
Grzegorz Kowal
fd7b393415 Implement storing refinement criterion values if DEBUG is on. 2012-08-02 13:09:44 -03:00
Grzegorz Kowal
9dbb5186ec First step of the module IO rewrite. 2012-08-02 00:35:37 -03:00
Grzegorz Kowal
eff71922d2 Change the default refinement criterion parameters. 2012-08-01 19:13:13 -03:00
Grzegorz Kowal
1d02d28905 Rename subroutine boundary_correct_fluxes() to boundary_fluxes(). 2012-08-01 17:41:56 -03:00
Grzegorz Kowal
85c25ea2c4 Correct comments. 2012-08-01 17:25:49 -03:00
Grzegorz Kowal
9c1bda9e6c Rewrite Roe's Riemann solvers and eigensystem for HYDRO. 2012-08-01 17:24:12 -03:00
Grzegorz Kowal
2c463858e7 Add compilation flag FIX_POSITIVITY. 2012-08-01 16:56:14 -03:00
Grzegorz Kowal
c6f046485f Remove all occurences of the flag CONSERVATIVE.
The scheme is fully conservative now.
2012-08-01 16:52:07 -03:00
Grzegorz Kowal
abc98f8369 Implement positivity fix subroutine in module INTERPOLATIONS. 2012-08-01 16:42:45 -03:00
Grzegorz Kowal
88bbafeeb4 Rename module SCHEME to SCHEMES and rewrite it completely. 2012-08-01 16:38:10 -03:00
Grzegorz Kowal
4006de5584 Update makefile after the rename of file scheme.F90. 2012-08-01 12:59:27 -03:00
Grzegorz Kowal
02fc228cd6 Rename file scheme.F90 to schemes.F90. 2012-08-01 12:58:19 -03:00
Grzegorz Kowal
bbed8c41e5 Rewrite module EVOLUTION. Move update_interval() to SCHEME.
Improve subroutine comments and remove unused code.
2012-08-01 12:56:52 -03:00
Grzegorz Kowal
2413de249f Move maxspeed() to module EQUATIONS. 2012-08-01 12:16:38 -03:00
Grzegorz Kowal
fca524da42 Remove all remaining and unused evolution subroutines. 2012-07-31 17:43:11 -03:00
Grzegorz Kowal
abc6c263b0 Remove subroutine evolve(). 2012-07-31 17:40:34 -03:00
Grzegorz Kowal
ec16790010 Use fluxspeed() from module EQUATIONS in SCHEME. 2012-07-31 17:02:29 -03:00
Grzegorz Kowal
c15296df8e In Riemann solvers use prim2cons() from module EQUATIONS. 2012-07-31 16:57:39 -03:00
Grzegorz Kowal
bc57d406d1 Use primitive variables in maxspeed() and remove cons2prim(). 2012-07-31 16:55:00 -03:00
Grzegorz Kowal
db606cfa1a Use primitive variables in the Riemann solvers.
There is no need to convert conservative variables to primitive ones,
since they are already up to date, so pass primitive variables directly
to Riemann solvers in subroutine update_flux().
2012-07-31 16:49:14 -03:00
Grzegorz Kowal
272b40ddbb Move primitive variable update for all blocks to update_variables(). 2012-07-31 16:38:16 -03:00
Grzegorz Kowal
e0860d9afb Move variable interval calculation to update_interval(). 2012-07-31 16:23:20 -03:00
Grzegorz Kowal
3d5582f230 Remove flag CONSERVATIVE from advance_rk2(). 2012-07-31 16:04:43 -03:00
Grzegorz Kowal
68dc3de4d9 Move flux update of data blocks to update_fluxes(). 2012-07-31 16:02:59 -03:00
Grzegorz Kowal
e3df4f38f2 Update time step after updating primitive variables in advance(). 2012-07-31 15:16:25 -03:00
Grzegorz Kowal
eda9cdcf43 Make subroutine find_new_timestep() private.
Also call it in initialize_evolution().
2012-07-31 15:13:51 -03:00
Grzegorz Kowal
63d1c8c0b1 Implement subroutines advance() and advance_rk2().
Subroutine advance() is a replacement for the subroutine evolve().  It
performs one step variable update by calling the selected integration
method.  So far only 2nd order Runge-Kutta is supported, which is
implemented in subroutine advance_rk2().

Subroutine advance_rk2() advances the conservative variables by one step
using the 2nd order Runge-Kutta method with the boundary update after
each substep.  This results in the reduced number of ghost zones, for
example 2 instead of 4, as in the previous version.
2012-07-31 15:04:40 -03:00
Grzegorz Kowal
b337e89f88 Merge branch 'master' into new_time_advance 2012-07-31 14:37:34 -03:00
Grzegorz Kowal
771c769c70 Fix the flux boundary update. 2012-07-31 14:37:05 -03:00
Grzegorz Kowal
2e26d47362 Add two arrays of conserved variables to the block structure.
In these two arrays we store temporary states during the Runge-Kutta
integration.  The new pointer %u in the block structure points to the
current array of the conservative variables.
2012-07-31 14:14:42 -03:00
Grzegorz Kowal
b09f21351a Remove variable conversion and dependency on SCHEME from module IO. 2012-07-28 14:21:39 -03:00