Commit Graph

108 Commits

Author SHA1 Message Date
Miikka Vaisala
f0d2be831e host_forcing now committed. Sorry. 2019-07-03 09:55:23 +08:00
Miikka Vaisala
334ff868d9 Forcing disabled from autotest and from defaults.
It is not suitable function of the autotest tool. If there in really a
mandatory need to add it. I will need special help from Johannes.
2019-07-02 18:46:04 +08:00
Miikka Vaisala
4766441ffb Tryin to prepare autotest for forcing. 2019-07-02 18:24:41 +08:00
Miikka Vaisala
03689709df Merge branch 'master' into forcing 2019-07-02 16:43:10 +08:00
Miikka Vaisala
d0eb308f17 Better interface to forcing. 2019-07-02 16:35:14 +08:00
jpekkila
1e6740f999 Added the equations for hydro only for both CPU and GPU. NOTE: NOT RIGOROUSLY CHECKED FOR CORRECTNESS. I just took the equations used with entropy and removed the terms which included entropy and magnetic fields 2019-07-01 18:56:13 +03:00
jpekkila
a3ca6cf132 Added skeletons for packing parts of the ghost zones into buffers to speed up data transfers 2019-07-01 13:56:05 +03:00
jpekkila
d9be66f65f NOTE: Renamed LINDUCTION to LMAGNETIC throughout the project. 2019-07-01 13:40:24 +03:00
Miikka Vaisala
0600790f41 Corrected a bug in the timestep and some scaling problems.
Now I can reach a saturated stated in forcing without crashing the code.
2019-07-01 14:19:56 +08:00
Miikka Vaisala
9f0be0d9ff Solved the forcing function boundary problem. 2019-07-01 11:06:42 +08:00
jpekkila
0c63d55fd7 Worked around a compiler bug in CUDA 9.1, which caused an "Internal Compiler Error (codegen): "there was an error in verifying the lgenfe output!". Apparently the compiler got confused by overloaded is_valid() if the input parameter was not passed as a reference in both cases. 2019-06-29 10:49:15 +03:00
Miikka Vaisala
f04ef8e64c Forcing function issue not yet fully resolved.
Now brain hurs. No more today. Break needed.
2019-06-28 19:23:18 +08:00
Miikka Vaisala
94a25383a9 Trying to calculate the forcing scaling.
Causes nans very quickly. Will need to look closer tomorrow again.
2019-06-27 19:20:18 +08:00
Miikka Vaisala
9b2e9d376f helical_forcing_k_generator() added.
Now Helical forcing almost works. I just need scale to force per tiome step
correctly. The current formulation is wrong.
2019-06-27 18:12:15 +08:00
jpekkila
7e40889245 Grid and subgrid dimensions are now only printed if VERBOSE_PRINTING == 1 2019-06-27 12:54:36 +03:00
jpekkila
44a1160962 Added an additional comment 2019-06-27 12:50:34 +03:00
Miikka Vaisala
fd6a5df0d6 helical_forcing_e_generator() randomized. 2019-06-27 15:59:58 +08:00
Miikka Vaisala
9ae3411cce helical_forcing_e_generator() added
Without randomization. Will add next.
2019-06-27 14:53:36 +08:00
Miikka Vaisala
d30b866a21 Merge branch 'master' into forcing
Now I need to test what works...

Conflicts:
	acc/mhd_solver/stencil_process.sps
2019-06-27 11:22:31 +08:00
jpekkila
401172bb74 Formatting 2019-06-26 19:43:37 +03:00
jpekkila
ee075e6741 Set the default number of devices to 0 (this is updated at acInit() 2019-06-26 19:42:49 +03:00
jpekkila
cda17c9b08 VERBOSE_PRINTING flag is now globally used in the whole program and should be used to suppress development/debugging-related printing. Also added comments to the new interface function acCheckDeviceAvailability and made it free from side effects. 2019-06-26 18:50:15 +03:00
Matthias Rheinhardt
0bc8b7e827 MR: VTXBUF_DENSITY -> VTXBUF_LNRHO, minor 2019-06-26 17:14:24 +03:00
Matthias Rheinhardt
522da0041f MR: new name for GetDevice 2019-06-26 16:53:56 +03:00
Matthias Rheinhardt
25f1ec7959 MR: intro'd VERBOSE_PRINT switch 2019-06-26 15:13:56 +03:00
Matthias Rheinhardt
174e29add6 MR: added PENCIL_ASTAROTH 2019-06-26 15:11:32 +03:00
Miikka Vaisala
76d251cd3e Makes now special helical forcing vector. 2019-06-26 18:50:42 +08:00
jpekkila
6bfc5f04f7 Added tighter bounds for gcc and nvcc versions. There was a bit of an chicken-and-egg issue: we need gcc 6.0 in order to get bug 48891 (see gcc bugzilla) fixed, but cuda < 9 supports gcc only up to 5.3. This is not a perfect solution, f.ex. ubuntu 16.04 ships with gcc 5.4 but with the fix backported from later versions so in practice that would also work but is not accepted anymore. 2019-06-26 13:33:03 +03:00
Miikka Vaisala
be0e46c814 Can move forcing vector information now from the host to device.
next step in to generate random waves in the CPU with a chosen degree of helicity etc.
2019-06-26 17:41:39 +08:00
Miikka Vaisala
231a8aa06e Trying to figure out how to upload values to GPU. 2019-06-26 15:23:46 +08:00
jpekkila
912dffca4f Renamed old single-GPU-only headers in core/kernels to avoid confusion. Only kernels.cuh is used for reductions, integration and boundary conditions at the moment. 2019-06-25 13:58:59 +03:00
jpekkila
a5ab388af7 Fixed a compilation error when not using entropy. This is a temporary workaround. There is no model solution for hydro only, therefore autotesting will break if entropy is not used. Note: LINDUCTION, LENTROPY and other logical flags are duplicated in both astaroth.h and stencil_process.sps. These flags are not linked and there will be errors and weird behaviour if a flag is set in one file and not in another. 2019-06-19 20:18:25 +03:00
jpekkila
2310186c71 Added a skeleton function for updating an arbitrary block inside the computational domain instead of the whole mesh 2019-06-19 19:43:46 +03:00
jpekkila
383d2b696c Got a warning about potentially too small array, increased size to avoid overflows 2019-06-19 16:58:24 +03:00
jpekkila
a7515fbbd7 Made the simple forcing to scale with dt s.t. it does not explode so easily 2019-06-19 16:34:23 +03:00
jpekkila
feef97563d Added a model solution for forcing. Accidentally also autoformatted the file. Finally, removed unused cruft 2019-06-19 16:06:57 +03:00
jpekkila
2c5d8bb9ae Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth 2019-06-19 14:29:59 +03:00
jpekkila
2eacb98246 Now acBoundcondStep is applied after acIntegrate to ensure that the whole grid visible to the host, including boundaries, are always up to date 2019-06-19 14:29:07 +03:00
Miikka Vaisala
68af32b7ef Small edit to docs 2019-06-19 17:11:46 +08:00
Miikka Vaisala
40b4a61a4c Added DEPRECATED marking to the old forcing function.
I do not want to remove it yet. Not until something like that exists in the DSL code.
2019-06-19 13:46:03 +08:00
jpekkila
d4907332f2 Disabled automated formatting in some parts where overfull lines are easier to read 2019-06-18 16:51:53 +03:00
jpekkila
8864266042 Autoformatted all CUDA/C/C++ code 2019-06-18 16:42:56 +03:00
jpekkila
4ca4dbefdf Added the machinery for implementing forcing with the DSL on multiple GPUs and a simple model solution 2019-06-18 16:13:32 +03:00
jpekkila
57e2e48fb0 Added functions for loading device constants. Also introduced a new int3 constant that can be used to determine the global vertex index inside kernels 2019-06-18 14:11:55 +03:00
jpekkila
efc54f1d5f Turned off separable compilation as it is not used at the moment (all kernels are defined in a single header) 2019-06-18 14:09:54 +03:00
Miikka Vaisala
71a35b2027 Defined nz
Otherwise the coude would not compile.
2019-06-18 11:58:46 +08:00
jpekkila
c9f26d6e58 Cleanup 2019-06-17 20:44:37 +03:00
jpekkila
ce6f453bc5 Rewrote reductions, now much simpler than before 2019-06-17 20:38:28 +03:00
jpekkila
270ba4d562 Rewrote reductions to work with arbitrary grid sizes, TODO more testing 2019-06-17 19:56:30 +03:00
jpekkila
f970dca68c Disabled a power-of-two error check as this may be too strict. See test_dims in autotest.cc which dimensions are guaranteed to work with reductions. Other dimensions may also work but are not yet extensively tested 2019-06-17 18:32:23 +03:00