117 Commits

Author SHA1 Message Date
5dc8dba168 SCHEMES: complete rewrite of the module.
Riemann solver is selected now through the runtime parameter
'riemann_solver'.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-11 10:16:06 -02:00
601a35eeb0 EQUATIONS should be initialized after MPI.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-11 00:09:15 -02:00
74e5058dd8 Update the year in copyright.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-11 00:06:30 -02:00
f48950aa4d EQUATIONS: Completely rewrite this module.
Now, module EQUATIONS provides a complet interface for equation systems,
including the definition of the number of equations/independent
variables, variable indices and names, conversion subroutines between
primitive and conservative variables, flux and characteristic speed
calculation, and maximum speed determination.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 20:56:37 -02:00
386fd36f5e Update copyright line.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 15:23:28 -02:00
Grzegorz Kowal
179ae41321 Fix compilation when MPI=N. 2012-08-02 15:09:44 -03:00
Grzegorz Kowal
9dbb5186ec First step of the module IO rewrite. 2012-08-02 00:35:37 -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
0f57b01d61 Rewrite main program in driver.F90. 2012-07-28 13:48:15 -03:00
Grzegorz Kowal
f5347db830 Rename initialize_mpi() and finalize_mpi() subroutines. 2012-07-28 12:29:44 -03:00
Grzegorz Kowal
50429d322d First step of the rewrite of the main program. 2012-07-28 12:24:12 -03:00
Grzegorz Kowal
f74146691c Remove completely dependencies and module CONFIG. 2012-07-28 12:12:35 -03:00
Grzegorz Kowal
03bace4603 Move iterm from CONFIG to common block. 2012-07-28 12:03:17 -03:00
Grzegorz Kowal
4cca807172 Remove module dependency of EVOLUTION on CONFIG. 2012-07-28 11:47:14 -03:00
Grzegorz Kowal
d5e720fb5c Move refinement check to new module REFINEMENT. 2012-07-27 21:28:59 -03:00
Grzegorz Kowal
92462e76b9 Rewrite module PROBLEMS.
Heavy rewrite of the module PROBLEMS in order to remove the dependency
on module CONFIG and improve the cleariness of the module.
2012-07-27 21:13:43 -03:00
Grzegorz Kowal
d2a6ebcb8b Remove dependency on CONFIG from module BOUNDARIES. 2012-07-27 17:18:24 -03:00
Grzegorz Kowal
6f6ecbb592 Rewrite a bit the module FORCING. 2012-07-27 16:55:32 -03:00
Grzegorz Kowal
7f38a53bb2 Rewrite module INTERPOLATIONS and initialize in main program. 2012-07-27 16:46:36 -03:00
Grzegorz Kowal
28ec2b9144 Initialize module EQUATIONS in the main program. 2012-07-27 16:29:30 -03:00
Grzegorz Kowal
eb4b41ecbd Rename init_mesh() to initialize_mesh(). 2012-07-27 10:34:19 -03:00
Grzegorz Kowal
3fb472d760 Move domain bounds to module COORDINATES.
Also rename init_coords() to initialize_coordinates(), and
clear_coords() to finalize_coordinates().
2012-07-23 22:43:23 -03:00
Grzegorz Kowal
2a5e9bc89b Rename init_blocks() and clear_blocks() and describe them. 2012-07-22 22:47:25 -03:00
Grzegorz Kowal
ff60bb681c Rename module COORDS to COORDINATES. 2012-07-22 22:26:51 -03:00
Grzegorz Kowal
3d7a74f61d Copy module RANDOM from GODUNOV and make it working. 2012-07-22 19:37:58 -03:00
Grzegorz Kowal
77d9e511c1 Initialize and finalize module PARAMETERS in the main program. 2012-07-22 19:32:21 -03:00
Grzegorz Kowal
515c82d435 Rewrite module MPITOOLS and adopt the rest to the changes.
Another step of reducing differences between the AMUN and GODUNOV codes.
2012-07-22 19:01:27 -03:00
Grzegorz Kowal
0da52f7aec Rewrite module TIMERS to be compatible with Godunov version. 2012-07-22 15:46:56 -03:00
Grzegorz Kowal
64a098c9bb Rename module TIMER to TIMERS.
Rename internal array timers(:) to times(:) to not conflict with the
module name.
2012-07-22 12:59:15 -03:00
Grzegorz Kowal
dbfbabc613 Change the license to GNU General Public License version 3. 2012-07-22 12:30:20 -03:00
Grzegorz Kowal
05dc326d3d Change compiler flag from EKO to PATHSCALE. 2011-06-18 10:16:45 -03:00
Grzegorz Kowal
02594822af Fix signal handling for all compilers. 2011-06-17 20:21:10 -03:00
Grzegorz Kowal
94a11094c9 Fix print formating for compilers (Pathscale, Intel, PGI, and GNU). 2011-06-17 20:05:15 -03:00
Grzegorz Kowal
f3e03ca8ad Allow to compile with EKOPath compiler. 2011-06-13 16:58:39 -03:00
Grzegorz Kowal
6922c8140c Complete the printed line with spaces. 2011-06-10 18:13:23 -03:00
Grzegorz Kowal
f9f6984988 Change the returned signal from 9 to 15 in terminate(). 2011-06-07 18:13:41 -03:00
Grzegorz Kowal
773a391d63 Rework signals so they work on GNU and INTEL compilers. 2011-06-07 17:29:03 -03:00
Grzegorz Kowal
ccf2dc3216 Replace carriage return '\r' with char(13). 2011-06-07 16:50:17 -03:00
Grzegorz Kowal
b27b478911 Simplify signal handling to work better with GNU Fortran.
- move termination flag iterm to module CONFIG;

 - simplify subroutine 'terminate';
2011-06-07 16:47:28 -03:00
Grzegorz Kowal
6b01c5fdae Terminate a job after a specified execution time.
- two new parameters trun and tsav control how long the job can run;
   the parameter trun, expressed in hours, determines the maximum
   execution time and the parameter tsav, expressed in minutes, tells
   when to terminate the job before the execution time exceeds trun;
2011-06-07 14:34:54 -03:00
Grzegorz Kowal
a16a6024b5 Improve calculation and printing of the execution time. 2011-06-07 10:05:32 -03:00
Grzegorz Kowal
e875c991ef Print the execution time in days, hours, minutes, and seconds. 2011-06-07 01:05:42 -03:00
Grzegorz Kowal
3df4e1e4d8 Add timers for reconstruction and Riemann solver. 2011-05-29 12:22:50 -03:00
Grzegorz Kowal
fae2fb8ca2 Do not call redistribute_blocks() if MPI is off. 2011-05-14 19:37:40 -03:00
Grzegorz Kowal
3dcd8ad2b9 Improve compatibility with Fortran 2003. 2011-05-13 15:25:09 -03:00
Grzegorz Kowal
0fc7717100 Move coordinate variables from MESH to new COORDS module.
- a new module COORDS handles the mesh variables which needed to be
   separated from the MESH module since they are used in PROBLEM module,
   which is required by MESH module; this created a circular dependency;
   by introducing a new COORDS module we removed that problem;
2011-05-11 15:32:01 -03:00
Grzegorz Kowal
81ba4935d2 Allow to restart job with more CPUs than the restart files.
- now, if we want to restart a job and use more processors than we used
   while creating restart files, all processors read and recreate meta
   block structure, but only N previously used processors will read data
   block; as soon as the job is restarted, we call redistribute_blocks()
   in order to get equal number of data blocks on each processor;
2011-05-10 17:15:33 -03:00
Grzegorz Kowal
0e930499a1 Fix diffusion of Psi in MHD-GLM after last changes.
- the diffusion of Psi in MHD-GLM requires spacial step dxmin, so
   update the diffusion so it works after the last commit changes;

 - call find_new_timestep() after job restart, since some parameters
   could change;
2011-05-07 09:32:10 -03:00
Grzegorz Kowal
1bdc4b8706 Replace update_maximum_speed() with find_new_timestep().
- subroutine update_maximum_speed() has been replaced with
   find_new_timestep(), which first finds the minimum spacial step
   dxmin, then finds the maximum speed in the domain, and finally
   estimates new time step;

 - dx_min has been removed from MESH module, since it is not required
   anymore;
2011-05-07 09:23:16 -03:00