158 Commits

Author SHA1 Message Date
Grzegorz Kowal
31ea11db57 Implement proper termination with restart file.
- the program now handles properly some of the termination signals,
   which means that if the program receives a signal to terminate its
   execution, it will finish the current loop, write restart files,
   end then exit properly;
2011-04-29 00:51:28 -03:00
Grzegorz Kowal
4406f4cedd Implement a log file for storing mesh statistics.
- a new file 'mesh.log' is created with the following colums: step,
   time, the number of leafs, the number of meta blocks, the coverage
   efficiency, which is the number of leafs divided by the number of top
   level blocks covering the whole domain, the AMR efficiency which
   shows the advantage of using adaptive mesh (with boundaries taken
   into account), block distribution over levels and processors;

 - the AMR efficiency is the number of leafs multiplied by the number of
   cells in one block (with boundaries included) and divided by the
   effective resolution with boundaries included; if this parameter is
   smaller than 1.0 we should expect faster calculations due to the
   adaptive mesh, if the parameter is larger than 1.0, we only slow down
   the calculations by using the adaptive mesh;
2011-04-28 12:04:22 -03:00
Grzegorz Kowal
01e290aa4d Rename subroutine init_coords() to init_mesh(). 2011-04-27 22:39:25 -03:00
Grzegorz Kowal
ef387eb448 Rename subroutine init_mesh() to generate_mesh(). 2011-04-27 22:35:38 -03:00
Grzegorz Kowal
f4631876fc Store integrals after the initiation of a problem. 2011-04-26 11:38:16 -03:00
Grzegorz Kowal
1729a53b67 Allow for appending the integrals for restarted jobs. 2011-04-26 11:37:27 -03:00
Grzegorz Kowal
2c715155e0 Small correction of the initial info printing. 2011-04-26 10:41:10 -03:00
Grzegorz Kowal
0ff433e16b Rename the code from Godunov-AMR to AMUN. 2011-04-25 13:44:34 -03:00
Grzegorz Kowal
8c6ebc3768 Improve program and module setup information formatting. 2011-04-25 13:31:41 -03:00
Grzegorz Kowal
09d477cb9c After the main loop store only restart files.
- in this way we keeps consistency in the file numbering;
2011-04-24 09:56:58 -03:00
Grzegorz Kowal
1237cbc5c8 Find the maximum speed only after problem initialization.
- this step is not required after job restart, since time and time
   steps are stored in the restart files;
2011-04-24 09:45:24 -03:00
Grzegorz Kowal
4de25ba527 Correct the next file number after restart. 2011-04-23 23:34:18 -03:00
Grzegorz Kowal
10a4d6b09f Move forcing and integrals initialization before problem setup. 2011-04-23 23:11:22 -03:00
Grzegorz Kowal
e25bc4f573 Merge branch 'master' into 'job_restart'.
Conflicts:
	src/driver.F90
2011-04-23 21:56:57 -03:00
Grzegorz Kowal
768312ef7f Move initialization of same variables just after read_params(). 2011-04-23 21:54:45 -03:00
Grzegorz Kowal
2c928038fb Initiate time estime of program execution. 2011-04-23 21:32:46 -03:00
Grzegorz Kowal
c24e09fedc Move coordinate variables generation to another subroutine. 2011-04-15 00:46:19 +02:00
Grzegorz Kowal
2d513508db Write restart files at the end of program execution. 2011-04-14 16:16:58 +02:00
Grzegorz Kowal
9b46eb5c61 Move init_blocks() to the driver. 2011-04-14 00:19:45 +02:00
Grzegorz Kowal
5d8efdcdb3 Add and call the initial subroutine to restore data from HDF5 file. 2011-04-11 16:27:08 +02:00
Grzegorz Kowal
1a26c3e204 Optimize hydro Roe solvers and prepare MHD Roe solvers. 2011-03-22 15:36:59 -03:00
Grzegorz Kowal
2320bafe93 Print some info about solved set of equations. 2011-03-21 18:24:55 -03:00
Grzegorz Kowal
f07457e084 Reorganize printed informations, parameters and timings. 2011-03-10 15:22:10 -03:00
Grzegorz Kowal
4176930759 Add more timers to forcing subroutines.
- now each step of forcing (initialization, evolution, Fourier
   transforms) has separate time; this helps to optimize the forcing
   algorithm;
2011-03-10 14:57:25 -03:00
Grzegorz Kowal
36967b6f00 INTEGRALS: add initial support for calculation of integrals.
- add a new module INTEGRALS which handles initialization and
   calculation of the conserved variables and energies;
 - add make dependencies to makefile;
 - call the initialization, storage and termination subroutines from the
   driver;
2011-03-02 15:52:33 -03:00
Grzegorz Kowal
ec59dcea1a FORCE: put back the initialization of the forcing module.
- it was mistakenly removed during moving the initialization of the
   mesh module;
2011-03-02 15:19:01 -03:00
Grzegorz Kowal
c4fe923faf MESH: move initialization of mesh to be done earlier.
- since other modules might depend on the mesh, move its initialization
   as soon as possible; similarly, perform clearing of the mesh at the
   end;
2011-03-02 15:04:16 -03:00
Grzegorz Kowal
fb4218e542 Add support for timer in the FORCING module subroutines. 2011-03-01 18:58:18 -03:00
Grzegorz Kowal
272a8b2d50 DRIVER: change a bit the progress info. 2011-02-28 16:04:38 -03:00
Grzegorz Kowal
2682d37d20 Update the copyright information. 2011-02-27 22:45:54 -03:00
Grzegorz Kowal
a8cd2b256f DRIVER: change the way progress is printed. 2011-02-27 22:39:56 -03:00
Grzegorz Kowal
40be345fe1 EVOLUTION: limit the time step due to the forcing.
- since the forcing update is base on iterations we need to limit the
   physical time step to the integer number of forcing time steps;
2010-12-08 18:11:15 -02:00
Grzegorz Kowal
29a7e0063a FORCING: add initial version of module.
- add a new module FORCING to handle forcing source terms, e.g. for
   turbulence driving;
 - implement initial versions of init_forcing() and clear_forcing()
   subroutines;
 - add compilation flag FORCING and use it during compilation process in
   makefile;
2010-12-08 12:21:41 -02:00
Grzegorz Kowal
904a9d0fd9 DRIVER: make GNU Fortran happy when calling subroutines. 2010-12-08 11:46:09 -02:00
Grzegorz Kowal
59db37fbae RANDOM: add random number generator module.
- add a new module RANDOM which handles initialization and generation
   of different type random number distributions;
 - include the module in the compilation process;
 - initialize the random generator from driver;
2010-12-08 11:40:38 -02:00
Grzegorz Kowal
022919c08c DRIVER: update the maximum speed initially.
- call update_maximum_speed() after the problem intialization in order
   to find the initial maximum speed;
2010-12-01 10:43:01 -02:00
Grzegorz Kowal
aab8831bbf Update the copyright info and fix the length of separating lines. 2010-10-13 03:32:10 -03:00
Grzegorz Kowal
476e800c93 Clean up the file driver.F90.
- also break long lines so they fit within 80 characters;
2010-10-06 23:11:22 -03:00
Grzegorz Kowal
14c901b8ee Update the copyright information in driver.F90. 2010-10-06 23:03:47 -03:00
Grzegorz Kowal
bbf998e4a0 Boundaries, interpolation, indices.
Rewritten boundaries allow for a proper handling boundaries between
blocks at different refinement levels. Prolongation and restriction of
the boundaries are improved now.

Rewritten interpolation for prolongation and restriction.

References to the variable indices are assigned more properly.
2010-02-11 23:30:46 -02:00
Grzegorz Kowal
5601bd6081 Add printing info about the MPI enabled. 2008-12-22 15:09:05 -06:00
Grzegorz Kowal
1f581e9610 Add new module for MPI handling.
A new 'mpitools' module has been added. This module contains subroutines
to initialize, deinitialize and handle MPI communication. This initial
version can now initialize and deinitialize parallelization. It does not
support full parallelization yet.
2008-12-22 14:57:31 -06:00
Grzegorz Kowal
9b4abbd520 Added control of refinement/derefinement criterions.
Now we can control the levels of refinement/derefinement criterion from
the config file. The bounds of the domains are stored in the HDF5 files
from now.
2008-12-16 22:34:54 -06:00
Grzegorz Kowal
f673596f20 Refinement based on density. More cleanups. 2008-12-13 22:41:37 -06:00
Grzegorz Kowal
6d38fe6476 Added CFL condition and calculation of the new time step.
The function to calculate the maximum speed in the block has been added.
This function is used to determine the maximum speed globally, which is
next used to estimate the next time step.
2008-12-09 14:51:33 -06:00
Grzegorz Kowal
2f1a710bcd Added storing of data in subsequent steps.
A new parameter to control the time interval between writing data has
been added. Also the condition to check if data should be written has
been added in the main loop.
2008-12-09 12:42:10 -06:00
Grzegorz Kowal
c18a7a3065 Added storing of the final state. 2008-12-08 21:14:12 -06:00
Grzegorz Kowal
4d8b0ca643 Updated comments in the driver subroutine. 2008-12-08 21:11:17 -06:00
Grzegorz Kowal
b331a539b5 New module 'evolution' for time integration.
A new module for the time integration has been added. This module
contains a set of subroutines to perform one step time integration of
each leaf block using 2nd order Runge-Kutta method. More methods can be
added later. Time 't', timestep 'dt' and iteration 'n' have been moved
to this module as well.
2008-12-07 18:57:08 -06:00
Grzegorz Kowal
a92ea21deb Add main loop and parameters to control execution time.
I've added the main loop in driver.F90. Also, I've added parameters
nmax, tmax, and dtini to be read from the configuration file.
2008-12-07 15:14:18 -06:00