2293 Commits

Author SHA1 Message Date
Grzegorz Kowal
970293c024 Fix compilation with PGI compilers. 2011-06-10 19:23:02 -03:00
Grzegorz Kowal
d18174a567 Make at least one interation of the forcing. 2011-06-10 19:00:45 -03:00
Grzegorz Kowal
6922c8140c Complete the printed line with spaces. 2011-06-10 18:13:23 -03:00
Grzegorz Kowal
29071a00fc Add 'fixed' boundary conditions for the reconnection problem. 2011-06-10 18:04:08 -03:00
Grzegorz Kowal
1abbafed99 Allow for gradual introduction of the forcing term.
- the new parameter tbfor determines the time when the forcing starts
   to be introduced gradually; the parameter tefor determines at what
   time the forcing operates with the full power; the transition between
   tbfor and tefor is described by sinus function;
2011-06-10 15:46:40 -03:00
Grzegorz Kowal
3af808978d Improve MP reconstructions according to ZhiWei et al. (2010).
- ZhiWei et al. (2010) replaced equation to calculate flc in the
   original paper by Suresh & Huynh (1997); this resulted in a scheme
   free from Gibbs phenomenon;

 - they also suggested to calculate parameter alpha from cfl;
2011-06-09 18:37:59 -03:00
Grzegorz Kowal
65cde9f9d7 Use eps returned by epsilon() in the MP reconstruction. 2011-06-09 16:17:06 -03:00
Grzegorz Kowal
07b1e8c92d Improve function minmod4(). 2011-06-09 14:47:59 -03:00
Grzegorz Kowal
214ca3a457 Improve function minmod(). 2011-06-09 14:12:33 -03:00
Grzegorz Kowal
707b0ff503 Store Psi potential in the HDF5 files when GLM-MHD is used. 2011-06-08 21:32:14 -03:00
Grzegorz Kowal
a5e146b2db Rewrite subroutine write_variables_h5().
- the primitive variables in the 'p' file are stored now with single
   precision;

 - the subroutine has been also rewritten in order to simplify it;
2011-06-08 21:24:17 -03:00
Grzegorz Kowal
eb19e3ea2f Add a subroutine to store a 4D single precision array.
- subroutine write_array4_float_h5() stores a 4D single precision array
   in the HDF5 file;
2011-06-08 21:05:45 -03:00
Grzegorz Kowal
f613d52ff3 Declare block bounds as real, not double precision values. 2011-06-07 20:59:16 -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
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
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
ba7dd3c7ba Change argument name from msecs to csecs in timer_to_time(). 2011-06-07 14:41:56 -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
dc8a5830a4 Implement job restart with decrease of maxlev.
- in some rare situations we want to restart a job with the maximum
   refinement level decreased; this change implements this feature; the
   blocks are read with the previous range of refinement levels, but
   after the first mesh update all blocks which lay on levels higher
   than maxlev are automatically derefined;
2011-06-06 18:39:17 -03:00
Grzegorz Kowal
e5e265bbe5 Add new parameter for the top level.
- the new parameter toplev stores the level of refinement larger or
   equal to maxlev; this level cannot be set in the config.in, but is
   determined during the initiation or restarting the job;

 - several subroutines have been updated to use toplev instead of
   maxlev;
2011-06-06 17:31:51 -03:00
Grzegorz Kowal
9382cf3297 Refine all blocks at levels lower than minlev. 2011-06-06 17:05:49 -03:00
Grzegorz Kowal
c3e21e6408 Add parameter for the minimum refinement level. 2011-06-06 16:54:16 -03:00
Grzegorz Kowal
0a6f244f35 Allow for restart with less CPUs than restart files.
- the files corresponding to the processors are read in a normal way,
   however, the remaining files are read only on the last processor and
   the data blocks stored there are appended to this processor; as soon
   as the data block restoring finishes, the data blocks are
   redistributed among all processors;
2011-06-06 14:32:42 -03:00
Grzegorz Kowal
bbe7b6f92a Allocate restart data blocks in read_datablocks_h5().
- move allocation of restarted data blocks from read_attributes_h5() to
   read_datablocks_h5(); in this way we allocate data blocks only on the
   processors which read the data block group;

 - add a new subroutine read_datablock_dims_h5() which returns the
   dimensions of variable arrays stored in the data block group;
2011-06-06 13:20:15 -03:00
Grzegorz Kowal
0ae3872393 Optimize a bit the MP reconstructions. 2011-05-31 12:38:20 -03:00
Grzegorz Kowal
7848be9bea Optimize the WENO-Z reconstruction.
- the optimization gives about 35% speed up;
2011-05-30 12:29:50 -03:00
Grzegorz Kowal
494af11fa4 Optimize the WENO3 reconstruction.
- the optimization gives roughly 30% speed up;
2011-05-30 09:21:06 -03:00
Grzegorz Kowal
0eba0ca1e3 Compare to eps instead of 0.0 in CENO3 reconstruction. 2011-05-29 23:03:23 -03:00
Grzegorz Kowal
d17c501e6c Optimize the CENO3 reconstruction.
- optimization speeds up the CENO3 reconstruction by about 35%;
2011-05-29 22:49:41 -03:00
Grzegorz Kowal
3df4e1e4d8 Add timers for reconstruction and Riemann solver. 2011-05-29 12:22:50 -03:00
Grzegorz Kowal
980c9464c0 Correct interpolation coefficients for ENO methods. 2011-05-29 12:09:35 -03:00
Grzegorz Kowal
622d9bd86f Correct year in the reference of WENO3 reconstruction. 2011-05-28 19:39:19 -03:00
Grzegorz Kowal
86f880f4e6 Implement improved 5th order WENO-Z reconstruction.
- the implemented WENO-Z reconstruction as described by Borges at al.,
   2008, Journal of Computational Physics, 227, 3191
2011-05-28 19:37:51 -03:00
Grzegorz Kowal
2367983dfb Implement improved 3rd order WENO reconstruction.
- the improved 3rd order WENO reconstruction has been described in the
   paper by Yamaleev & Carpenter, 2000, Journal of Computational
   Physics, 228, 3025
2011-05-28 17:42:13 -03:00
Grzegorz Kowal
fef1ab3669 Rewrite a bit the CENO3 reconstruction. 2011-05-28 17:13:06 -03:00
Grzegorz Kowal
109ec2f113 Split reconstructions into separate subroutines. 2011-05-28 16:45:49 -03:00
Grzegorz Kowal
cf1c08d6ef Slightly rewrite TVD reconstructions. 2011-05-28 09:49:35 -03:00
Grzegorz Kowal
2f78b2bf3c Implement the CENO3 reconstruction.
- the CENO3 reconstruction is based on the 3rd order Convex ENO
   reconstruction presented in Del Zanna & Buciantini, 2002,
   A&A, 390, 1177.
2011-05-28 09:44:20 -03:00
Grzegorz Kowal
8b748dc2d2 Move parameter decay to CONFIG module.
- the parameter decay depends only on alpha_p and cfl parameters and is
   constant for all evolution, so move it to CONFIG module;
2011-05-27 12:59:09 -03:00
Grzegorz Kowal
97306e4262 Remove unnecessary variable from boundary_restrict(). 2011-05-27 12:53:37 -03:00
Grzegorz Kowal
9e9fdce183 Use constant interpolation in boundary_prolong().
- in the corners of prolongated boundaries we use constant
   interpolation, but the remaining part of boundaries is still
   prolongated using the linear interpolation; in this way we solve the
   problem of 90 degree symmetry;
2011-05-26 20:35:48 -03:00
Grzegorz Kowal
37077fda98 Small fixes in boundary_variables(). 2011-05-26 19:41:59 -03:00
Grzegorz Kowal
ecfc9e75ab Rewrite boundary_variables().
- the boundary update goes through levels and updates first from blocks
   at the same levels, then restricts from higher level blocks, then in
   the another round prolongates from blocks at lower levels, and
   finally copies once again from blocks at the same level;
2011-05-26 19:20:31 -03:00
Grzegorz Kowal
fc60dc1b7b Rename pmeta_block, pdata_block to pmeta, pdata in generate_mesh(). 2011-05-26 10:14:37 -03:00
Grzegorz Kowal
e7a057b3d9 Use linear interpolation for boundary prolongation. 2011-05-25 22:32:16 -03:00
Grzegorz Kowal
283713ce07 Try to slightly improve the boundary conditions. 2011-05-25 22:08:31 -03:00