40 Commits

Author SHA1 Message Date
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
Grzegorz Kowal
ee3cb39fdc Timers counting the execution times added.
A new module called 'timer' has been added. The purpose of this module
is to handle the execution timers of the program or its subtasks, like
initialization, data writing, evolution, etc.

The final summary of the times spent on different task has been added
as well.
2008-12-07 14:06:04 -06:00
Grzegorz Kowal
e75cc33c1f Replaced pointer pfirst with plist. Improved formatting.
I replaced the pointer 'pfirst' pointing to the first element of the
list of blocks with 'plist'. I improved formatting of the informations
printed during the initial mesh generation.
2008-12-07 12:56:00 -06:00
Grzegorz Kowal
cd209ba785 Added a new module to handle the data input/output.
Initial implementation of subroutine 'write_data' to store all data.
This subroutine initially will support only HDF5 file format. The
block structure of the file is not decided yet.
2008-11-29 22:22:19 -06:00
Grzegorz Kowal
301619e296 Added a subroutine to check refinement criterion.
A new subroutine 'check_ref' to check the refinement criterion has been
added. I've added also a structure of the initial refinement of the
mesh.
2008-11-29 22:19:02 -06:00
Grzegorz Kowal
532cdf7b7e Generation of the initial mesh and problem setup.
Implemented the generation of initial blocks in N-configuration with
proper ataching to the list, pointer, neighbors and bounds
initialization, as well as the initial problem setup. Two new files has
been added: mesh.F90 - hadling the adaptive mesh structure, and
problem.F90 - handling the problem initialization.
2008-11-11 16:12:26 -06:00
Grzegorz Kowal
750fe27334 Added initial versions of config and error modules.
Config module takes care of the configuration file 'config.in'. It
reads the file line by line, parsing each line and extracting the name
and value of parameter. Then it substitutes the parameter with a new
value.

Error module handles error, warning and informative messages. So far it
only prints information on the screen.

There is some improvments for comments formating as well.
2008-11-05 22:16:24 -06:00
Grzegorz Kowal
847009aafb Initial implementation of block structure.
Block structure has been implemented. Blocks contain pointers to the next
and previous blocks. This easily allows to create block lists. Two
functions are implemented, one for creating initial structure of blocks
with lists, and the second for destroying all blocks from the list.

File 'blocks.F90' has been added to makefile too.
2008-11-04 21:00:50 -06:00
Grzegorz Kowal
e6ae8fd2b0 Initial commit of Godunov-AMR code.
Initial commit includes driver, make system files, license and default
host configurations.
2008-11-04 13:08:01 -06:00