325 Commits

Author SHA1 Message Date
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
Grzegorz Kowal
242a421b79 PROBLEM: prepare specific domain for reconnection problem. 2010-12-10 15:10:43 -02:00
Grzegorz Kowal
713868c713 PROBLEM: make total pressure uniform in reconnection problem. 2010-12-10 14:02:00 -02: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
da8d2fee81 EVOLUTION: include forcing terms in the RK3 integration. 2010-12-09 17:54: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
328200b6fc PROBLEM: fix q and u sizes in turbulence problem. 2010-12-08 22:23:31 -02:00
Grzegorz Kowal
83e53f1001 PROBLEM: implement setup for turbulence problem. 2010-12-08 22:05:18 -02:00
Grzegorz Kowal
04a3f6a4ba EVOLUTION: add forcing terms in the RK2 update. 2010-12-08 21:55:45 -02:00
Grzegorz Kowal
cf7db3c3a6 RANDOM: fix compilation without MPI. 2010-12-08 21:49:53 -02:00
Grzegorz Kowal
cb0c67faff EVOLUTION: add forcing terms in the block update. 2010-12-08 21:48:43 -02:00
Grzegorz Kowal
ebec9cfa81 MESH: update the coordinate variables preparation. 2010-12-08 20:09:41 -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
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
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