88 Commits

Author SHA1 Message Date
Grzegorz Kowal
7f38a53bb2 Rewrite module INTERPOLATIONS and initialize in main program. 2012-07-27 16:46:36 -03:00
Grzegorz Kowal
87dd287a8f Update makefile after file interpolation.F90 rename. 2012-07-27 16:40:06 -03:00
Grzegorz Kowal
dbd38c9399 Remove dependency of module SCHEME on CONFIG. 2012-07-27 16:30:55 -03:00
Grzegorz Kowal
28ec2b9144 Initialize module EQUATIONS in the main program. 2012-07-27 16:29:30 -03:00
Grzegorz Kowal
4fd6ed0f84 Add new module EQUATIONS.
This module handles variable conversion for a given set of equations.
2012-07-27 16:18:02 -03:00
Grzegorz Kowal
e1b79a34d0 Use variables from COORDINATES in module INTERPOLATION. 2012-07-27 16:07:50 -03:00
Grzegorz Kowal
24c261afb5 Use variables from COORDINATES in module SCHEME. 2012-07-27 16:06:27 -03:00
Grzegorz Kowal
20b300ab74 Use variables from COORDINATES in module MESH.
Remove dependency on module CONFIG.
2012-07-27 16:02:07 -03:00
Grzegorz Kowal
91fb4324be Rewrite initialize_coordinates().
The coordinate dimensions and bounds have been moved to module
COORDINATES.  In the rewritten subroutine initialize_coordinates() the
block dimensions and domain bounds are obtained from module PARAMETERS,
and then all other module variables are initialized.
2012-07-27 15:10:31 -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
48c40f19da Update makefile after the coords.F90 to coordinates.F90 rename. 2012-07-22 22:18:47 -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
3e9ff91f5a Add new module to handle parameter files.
This module is 100% compatible with the module from GODUNOV code.
Another step to reduce differences between those codes.
2012-07-22 19:22:07 -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
080aa4c7b1 Update makefile after timer.F90 to timers.F90 rename. 2012-07-22 12:51:42 -03:00
Grzegorz Kowal
14e58a4369 Pass COMPILER flag to the compilation options.
- this allows for use preprocessor to compile incompatible parts;
2011-06-07 16:51:52 -03:00
Grzegorz Kowal
3df4e1e4d8 Add timers for reconstruction and Riemann solver. 2011-05-29 12:22:50 -03:00
Grzegorz Kowal
b20c60404a Use precomputed coordinates in the BINARIES problem. 2011-05-11 17:20:20 -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
dcd58927cc Remove remaining dependency of BLOCK on CONFIG modules.
- now, the BLOCK module dependends only on ERROR module; all other
   dependencies have been removed;
2011-05-05 16:59:51 -03:00
Grzegorz Kowal
e28a0a83c8 Make module BLOCKS independent of VARIABLES.
- add a new subroutine set_datablock_dims() to set dimensions of the
   allocatable arrays in data blocks; this subroutine is called from
   init_mesh(), which is the right place to initiate BLOCK module;

 - remove dependency of blocks.o on variables.o;

 - boundaries.o depends on timers.o;
2011-05-05 15:56:38 -03:00
Grzegorz Kowal
67ba2b5422 Module blocks does not depend on mpitools. 2011-05-05 14:26:26 -03:00
Grzegorz Kowal
0494df3285 Add CONSERVATIVE flag to the build system.
- CONSERVATIVE flag determines if the scheme must be fully
   conservative; this works only when adaptive mesh is used; in such a
   case instead of update variables at each block, we first calculate
   high order integration of fluxes, then we synchronize them between
   blocks at different levels, and finally we perform one-step update
   for each block using updated fluxes; this might be also a first step
   to implement Galerkin methods;
2011-04-30 11:45:48 -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
0ff433e16b Rename the code from Godunov-AMR to AMUN. 2011-04-25 13:44:34 -03:00
Grzegorz Kowal
fa01b0e205 Fix correction of FLUX in Makefile. 2011-04-24 09:59:45 -03:00
Grzegorz Kowal
042a520be7 Store random number generator seed in HDF5 files.
- the number of seeds and seed values must be stored in the restart
   file in order to restart a job properly and guarantee unchanged
   generation of random numbers after restart;
2011-04-24 09:02:35 -03:00
Grzegorz Kowal
3df814ab8a Store evolution parameters in the restart files. 2011-04-15 00:09:50 +02:00
Grzegorz Kowal
a0f7d5118f Introduce the compression of the HDF5 output files. 2011-03-26 13:31:52 -03:00
Grzegorz Kowal
b3b4b42ad8 Change flag RESIS to RESISTIVITY. 2011-03-22 17:24:28 -03:00
Grzegorz Kowal
ca30b0674c Implement Roe Riemann solver for isothermal hydrodynamics. 2011-03-21 14:58:18 -03:00
Grzegorz Kowal
2e77f327b1 Implement viscous terms. 2011-03-18 15:33:24 -03:00
Grzegorz Kowal
5a8cd7d184 Implement 'multi current sheet' problem. 2011-03-18 14:00:27 -03:00
Grzegorz Kowal
cd91d350ab Introduce a compilation flag REFINE.
- the flag REFINE determines if the code should be compiler with the
   adaptive mesh refining/derefining; otherwise, the static mesh is
   generated;
2011-03-10 01:08:00 -03:00
Grzegorz Kowal
de3d89bb1b FORCE: implement and use Fourier transform of velocity.
- we need to calculate Fourier transform of velocity for all forcing
   components in order to minimize the velocity-force correlation;
2011-03-07 00:08:31 -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
fb4218e542 Add support for timer in the FORCING module subroutines. 2011-03-01 18:58:18 -03:00
Grzegorz Kowal
b3c1c94e1c MAKE: add more cleaning options to makefile. 2011-02-28 16:08:20 -03:00
Grzegorz Kowal
272a8b2d50 DRIVER: change a bit the progress info. 2011-02-28 16:04:38 -03:00
Grzegorz Kowal
5520e726bf RESISTIVITY: add a compilation flag to turn on resistivity. 2010-12-10 15:38:17 -02:00
Grzegorz Kowal
23fd6d9deb FORCING: implement real_forcing().
- implement the subroutine real_forcing() which returns the forcing
   terms transformed to real space;
2010-12-08 19:37:01 -02:00
Grzegorz Kowal
ac2a969636 EVOLUTION: evolve the forcing source terms.
- call subroutine evolve_forcing() before the update of all blocks;
   this subroutine evolves the forcing source terms by an interval dt in
   the Fourier space; then during the update the forcing Fourier
   coefficients will be transformed to real space for each block
   separately;
2010-12-08 18:19:16 -02:00
Grzegorz Kowal
bd28a527d7 FORCING: implement evolution of forcing terms.
- implement subroutine evolve_forcing() which evolves the driving
   components in Fourier space during the one hydrodynamic timestep; the
   integrated forcing Fourier components are stored in module array
   ftab; this complex array will be used to calculate forcing in real
   space for each block;
2010-12-08 17:45:24 -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
edb8f970bc CONSTANTS: add constants module and utilize.
- a new module stores mathematical and physical constants and can be
   used in problem initialization or source terms calculation;
2010-12-08 11:56:44 -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
6d31ce2c4b INTERPOLATION: implement the MP family of reconstruction.
- implement the monotonicity preserving family of reconstruction; the
   implementation covers the 5th, 7th and 9th order spacial MP
   reconstruction;
 - implement two new functions used by the MP reconstructions, minmod()
   and median();
2010-12-07 10:08:30 -02:00
Grzegorz Kowal
478de929c1 MAKE: add TVD flag for TVD reconstruction.
- other types of reconstruction may include WENO or MP;
2010-12-06 16:58:00 -02:00