43 Commits

Author SHA1 Message Date
95b331a559 FORCING: Add initial implementation of the eddy-type driving.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-08-11 10:08:23 -03:00
90118e4502 FORCING: Add skeleton for the energy injection module.
This module will be responsible for handling different types of
energy injection, such as turbulence driving or supernova
explosions.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-07-12 12:07:16 -03:00
3e09fa8088 Remove module FORCING.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-11 18:10:35 -02:00
1bd066f56f Remove dependency of the module VARIABLES.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 21:36:35 -02:00
386fd36f5e Update copyright line.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2013-12-10 15:23:28 -02:00
Grzegorz Kowal
6f6ecbb592 Rewrite a bit the module FORCING. 2012-07-27 16:55:32 -03:00
Grzegorz Kowal
ff60bb681c Rename module COORDS to COORDINATES. 2012-07-22 22:26:51 -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
d18174a567 Make at least one interation of the forcing. 2011-06-10 19:00:45 -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
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
8076970c22 Update copyright headers with the new email. 2011-05-05 18:37:53 -03:00
Grzegorz Kowal
fc32225dc1 Change the license to GNU General Public License, version 2. 2011-04-29 11:21:30 -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
2c3e4eb509 Slightly optimize subroutine fourier_transform(). 2011-03-10 15:56:21 -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
1169454cde Correct calculation of the forcing component amplitudes.
- correct calculating the amplitudes of the forcing components;
   micro optimizations of the force initialization;

 - correct the evolution of the forcing components so the power input
   corresponds exactly to the defined power fpow;
2011-03-10 01:04:06 -03:00
Grzegorz Kowal
aa5ecd5d38 FORCE: reduce number of components and fix constants.
- we don't need all components from a sphere in the Fourier space, only
   half components are independent, so reduce it's number;
 - correct the amplitude calculation so the proper amount of energy is
   injected in the system;
2011-03-08 23:47:18 -03:00
Grzegorz Kowal
01a1f671bb FORCE: adjust the power coefficient for forcing. 2011-03-08 22:39:38 -03:00
Grzegorz Kowal
0638a74d7b INTEGRALS: add forcing correlations to the integrals file.
- calculate the force-force correlation in the real and Fourier spaces
   and store them in the integrals file;
2011-03-08 21:56:47 -03:00
Grzegorz Kowal
dfe54acf48 FORCE: fix Fourier transform for multiblock domains. 2011-03-07 17:23:49 -03:00
Grzegorz Kowal
c597a3ef43 FORCE: correct sign in the inverse Fourier transform. 2011-03-07 01:06:00 -03:00
Grzegorz Kowal
28c525bcfc FORCE: implement condition for minimizing velocity-force correlation. 2011-03-07 00:54:46 -03:00
Grzegorz Kowal
cfb35e7cd9 MPI: implement reduction of a complex array.
- reduce the velocity Fourier components from all processors;
2011-03-07 00:28:58 -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
605cb1e370 FORCE: keep the forcing amplitudes in a separate array. 2011-03-06 23:53:36 -03:00
Grzegorz Kowal
16b550e765 FORCE: update momenta due to forcinf only once.
- do not put forcing terms in the RK substeps; instead, update the
   momenta components only once before executing the Riemann solver and
   update step;
2011-03-06 23:37:51 -03:00
Grzegorz Kowal
fb4218e542 Add support for timer in the FORCING module subroutines. 2011-03-01 18:58:18 -03:00
Grzegorz Kowal
ceae2e27e2 FORCE: optimize subroutine real_forcing().
- we moved the calculation of trigonometric functions out of the loop,
   and now we calculate the directional sinuses and cosinuses and
   calculate the total value using the trigonometric relations; this
   speeds up the inverse Fourier transform significantly;
2011-03-01 16:46:06 -03:00
Grzegorz Kowal
2682d37d20 Update the copyright information. 2011-02-27 22:45:54 -03:00
Grzegorz Kowal
b660be2409 FORCE: fix calculation of the direction of forcing terms.
- in the case when kx = ky = 0 and kz <> 0 all components of
   directional vectors e1 and e2 become zero; fix this situation by
   rotating the system, so e1 lays in the YZ plane instead of XY plane;
2011-02-22 19:08:12 -03:00
Grzegorz Kowal
e4504e3549 FORCING: generate the same phases on all CPUs.
- to make the forcing consistent across the domain we need to generate
   the same phases on all CPUs;
2010-12-09 18:17:59 -02:00
Grzegorz Kowal
2e8a1fd16f FORCING: normalize the forcing terms by dt.
- this normalization is required since the forcing terms integration
   takes into account dt;
2010-12-09 16:23:27 -02:00
Grzegorz Kowal
c430192a35 FORCING: slightly optimize real_forcing(). 2010-12-09 16:22:48 -02:00
Grzegorz Kowal
cb0c67faff EVOLUTION: add forcing terms in the block update. 2010-12-08 21:48:43 -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
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
f8f2a151cc FORCING: implement initialization of forcing.
- implement the preparation of perturbed wave vectors, their amplitudes
   and two ortoghonal unit vectors for divergence free driving;
2010-12-08 14:52:02 -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