342 Commits

Author SHA1 Message Date
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
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
6e928be724 MESH: add an array to store volume elements for all levels. 2011-03-02 15:01:08 -03:00
Grzegorz Kowal
7d7a0b7e32 MPI: add subroutine to reduce double precision array. 2011-03-02 14:56:22 -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
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
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
d97799cd50 Make GNU Fortran happy. 2011-02-27 13:49:26 -03:00
Grzegorz Kowal
0bee62e6eb BOUNDARIES: prolongation needs to be done twice.
- prolongation needs to be done twice since it uses multidimensional
   interpolation;
2011-02-27 13:40:11 -03:00
Grzegorz Kowal
7bb39dbd35 BOUNDARIES: separate prolongation from copying and restriction.
- the interpolation used in the prolongation of boundaries requires the
   boundary values from the neighbor, thus if we prolongate the
   boundaries before restricting the neighbor boundaries the values
   might be incorrect resulting in a wrong interpolation; separating
   prolontation from copying and restriction and moving it to the last
   step of update procedure solves the problem of incorrect
   interpolation and in consequence wrong update of boundaries;
2011-02-26 22:46:45 -03:00
Grzegorz Kowal
2834d6fea1 Make GNU compiler happy. 2011-02-26 14:08:10 -03:00
Grzegorz Kowal
460e04bf30 Merge branch 'master' into mesh_rewrite 2011-02-22 19:10:53 -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
ab7e1c5143 MESH: improve printed info about the block structure. 2011-02-16 12:08:50 -02:00
Grzegorz Kowal
7fb9a56625 MESH: improve block configuration in domain_default().
- now the meta blocks are inserted in the chain in the proper order and
   their config flags are set accordingly to the block neighbors; this
   should work in 2D and 3D, as well;

note: in order of optimize the initial configuration we should first
      sort the dimentions, then generate the proper configuration for
      the sorted dimentions, and then rotate the domain back to the
      original dimensions updating the config flags properly; this
      require a bit of thinking so we leave the user for now, how to
      orient the domain properly;
2011-02-16 11:28:50 -02:00
Grzegorz Kowal
1da8cc659b MESH: remove subroutines for problem domain generation.
- remove subroutines domain_blast() and domain_reconnection() since
   subroutine domain_default() handles these configurations properly
   now;
2010-12-21 20:30:04 -02:00
Grzegorz Kowal
9aea1fb673 MESH: rewrite subroutine domain_default().
- rewrite subroutine domain_default() to support arbitrary number of
   blocks along each dimension for the lowest level; the lowest level
   block dimension is set in rdims vector; this version supports 2D for
   now;
2010-12-21 20:25:17 -02:00
Grzegorz Kowal
7c1636a193 CONFIG: rename parameters rdims(x,y,z) to rdim(x,y,z). 2010-12-15 15:54:30 -02:00
Grzegorz Kowal
3bd4868bb2 EVOLUTION: take resistivity timestep condition into account. 2010-12-14 17:29:38 -02:00
Grzegorz Kowal
c97175fc60 BOUNDARIES: restrict magnetic field not only when GLM. 2010-12-14 16:38:28 -02:00
Grzegorz Kowal
e2e404ad94 MESH: restrict magnetic field not only when GLM. 2010-12-14 16:34:51 -02:00
Grzegorz Kowal
937a74ff3f BOUNDARIES: update magnetic field not only when GLM. 2010-12-14 16:33:41 -02:00
Grzegorz Kowal
0a3d1036e2 BOUNDARIES: improve the divergence free boundary conditions.
- in order to find the boundary value for normal magnetic field
   component we use the divergence free condition, i.e., we need to
   calculate normal direvatived perpendicular components; now we used
   the derivative calculation with the proper limiting in order to keep
   the consistency of the scheme;
 - in the interpolation module the new function has been added returning
   the limited derivative;
2010-12-14 16:11:26 -02:00
Grzegorz Kowal
a359f3949a MESH: improve autobalancing for block distribution.
- improve the algorithm for autobalancing for more equal data block
   distribution;
2010-12-14 11:19:11 -02:00
Grzegorz Kowal
28cc35d0ab BLOCKS: remove the flux fields from data block structure.
- we do not use the flux fields so in order to save much more space
   remove them from the data block structure;
2010-12-14 10:35:42 -02:00
Grzegorz Kowal
cd995dd076 IO: don't store fluxes.
- fluxes will be removed from the data block structure so don't store
   them;
2010-12-14 10:33:32 -02:00
Grzegorz Kowal
9061068b5a IO: correct wording in some comments. 2010-12-14 10:31:23 -02:00
Grzegorz Kowal
5b74c7d4cb IO: store data objects only if available on CPU.
- the data blocks should be stored in the appropriate group only if
   they are allocated on the current processors;
2010-12-14 10:29:49 -02:00
Grzegorz Kowal
e2a154de2a CONFIG: remove warning about not implemented parameter. 2010-12-14 10:12:13 -02:00
Grzegorz Kowal
8cfee01238 BOUNDARIES: implement divergence free boundary conditions. 2010-12-13 11:47:38 -02:00
Grzegorz Kowal
15c31f92a1 SCHEME: small corrections in subroutine hll(). 2010-12-12 21:54:29 -02:00
Grzegorz Kowal
3c022bd80f SCHEME: remove subroutine emf(). 2010-12-12 21:41:26 -02:00
Grzegorz Kowal
623ddc73b6 SCHEME: correct flux calculation for magnetic field. 2010-12-11 19:26:33 -02:00
Grzegorz Kowal
b9798e1c96 PROBLEM: correct perturbation in reconnection problem. 2010-12-11 19:25:59 -02:00
Grzegorz Kowal
29b000c75f SCHEME: slightly rewrite subroutine update(). 2010-12-11 14:38:34 -02:00
Grzegorz Kowal
9f361b4175 SCHEME: slightly rewrite subroutine hll(). 2010-12-11 14:32:38 -02:00
Grzegorz Kowal
6be2c79940 BOUNDARIES: rewrite subroutine bnd_spec(). 2010-12-11 14:01:16 -02:00
Grzegorz Kowal
09095f14f6 PROBLEM: rewrite the perturbation in reconnection problem. 2010-12-10 18:47:28 -02:00
Grzegorz Kowal
e89c705ca5 RESISTIVITY: implement resistivity in Riemann solvers.
- implement the resistive term (with uniform resistivity) in the HLL
   and HLLD solvers;
2010-12-10 17:14:26 -02:00
Grzegorz Kowal
6764ed4a89 RESISTIVITY: add a new config parameter ueta.
- a new parameter ueta determines the value of resistivity coefficient;
2010-12-10 15:39:24 -02:00
Grzegorz Kowal
5520e726bf RESISTIVITY: add a compilation flag to turn on resistivity. 2010-12-10 15:38:17 -02:00