Commit Graph

93 Commits

Author SHA1 Message Date
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 75f74526f4 Fixed incorrect logic with ifdefs: LMAGNETIC etc are toggle switches and are always defined 2019-07-01 18:43:04 +03:00
jpekkila 21e9fc943b Removed all defines from the stencil assembly and processing files and moved them to the new stencil_defines header. There were spaces after some linebreaks which were removed when I autoformatted the code and that's why there seems to be more changes that there actually is. 2019-07-01 18:40:13 +03:00
jpekkila b8869bb848 Linked the defines used by the DSL and astaroth.h. Now f.ex. LENTROPY has to be set only once in acc/mhd_solver/stencil_defines.h and it is propagated throughout the whole project. The name for stencil_defines.h is not final and may change if I come up with a better name. In any case, there is now a standard header associated with each DSL solver where the user can set defines, and declare arrays (VTXBUF_LNRHO) and device constants (uniforms). 2019-07-01 18:37:56 +03:00
jpekkila 9a87053f26 README.md edited online with Bitbucket 2019-07-01 14:08:59 +00:00
jpekkila 7dc5161056 Added guidelines for contributing to the project. 2019-07-01 13:44:55 +00:00
jpekkila 2d91df19dc Added a flowchart on how to commit to Astaroth 2019-07-01 16:06:15 +03:00
jpekkila 11ceca4cb1 Second test commit (feature branches) 2019-07-01 14:54:55 +03:00
jpekkila 30b7cda35c Testing the git commands for creating feature branches and merging them back to master 2019-07-01 14:42:36 +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
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
jpekkila 9b45716186 Modified user.h such that astaroth compiles with Pencil Code. Note that this is a temporary fix: we should ultimately set the default parameters for all the logical switches in astaroth.h and let the user redefine them at will, either with the DSL or with user.h 2019-06-27 18:12:14 +03:00
jpekkila b694702cf8 Removed an old comment 2019-06-27 17:11:21 +03:00
jpekkila 30c21ff420 Formatting: defines stay indented if clang-format is turned off temporarily 2019-06-27 13:31:50 +03:00
jpekkila 8ca09668c1 Added an advance notice about LINDUCTION to be renamed to LMAGNETIC in the near future throughout the project. LMAGNETIC would be better name since he define is used to enable the magnetic field. 2019-06-27 13:28:52 +03:00
jpekkila fc96283c37 Reordered logical flags in a more logical order, density -> hydro -> induction -> entropy -> others 2019-06-27 13:22:14 +03:00
jpekkila 75fb756ad4 Autoformatted with clang-format. Clang-format does not support indented defines as far as I know, so this will have to do. The alternative would be not to use autoformatting at all (or some other tool). 2019-06-27 13:16:41 +03: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
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 65c8a39cb9 Removed old comments and renamed USER_PROVIDED to USER_PROVIDED_DEFINES to be more explicit 2019-06-26 18:56:40 +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 57a39fd848 MR: USER_PROVIDED 2019-06-26 17:10:51 +03:00
Matthias Rheinhardt daddde15b8 MR: encapsulated user stuff 2019-06-26 17:06:46 +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
jpekkila ffe9df1bb0 LFORCING was turned off in stencil_process and the autotests failed, re-enabled 2019-06-26 14:08:56 +03: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
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
Miikka Vaisala a574d6e4c3 To be friendly with the autotest. 2019-06-25 14:50:43 +08:00
Miikka Vaisala b1a2d9603c Cleaning the forcing part. 2019-06-25 14:48:47 +08:00
Miikka Vaisala 44f26cde42 Corrected a stencil bug from der6 2019-06-25 11:25:14 +08:00
Miikka Vaisala 59043e586b Added a missing switch to stencil_assembly.sas. 2019-06-24 18:03:24 +08:00
Miikka Vaisala 55ecdd0ac8 Working upwinding!
It works and it looks so much better than without.
2019-06-24 16:58:06 +08:00
Miikka Vaisala d0b27a0347 Upwinding terms now compile.
Not tested yet.
2019-06-24 16:32:21 +08:00
Miikka Vaisala 57881e5961 Implementetion for hyperdiffusion to be tested later. 2019-06-21 17:29:06 +08:00
Miikka Vaisala f2a33bf4f8 Starting with derivatives for upwinding. 2019-06-21 16:53:04 +08: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 4ee772cf5d Set the minimum gcc version required in CMakeLists.txt 2019-06-19 16:57:47 +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 f3cbc4984c Enabled toy forcing by default for testing purposes. Note that there are two LFORCING switches at the moment: one in astaroth.h and one in acc/mhd_solver/stencil_process.sps. The switches are not linked and the tests fail or simulations generate unexpected results if both switches are not set to the same value. This will be fixed in the near future. 2019-06-19 16:14:46 +03:00
jpekkila 6da061b854 Fixed a bug in the Astaroth compiler: the boilerplate code for kernels was generated for all nested compound statements instead of just the top-level one 2019-06-19 16:10:29 +03:00
jpekkila e580f6f5d7 Improvements to GPU forcing (now applied only at substep 2) 2019-06-19 16:08:44 +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