6bfc5f04f7Added 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.
jpekkila
2019-06-26 13:33:03 +03:00
be0e46c814Can move forcing vector information now from the host to device.
Miikka Vaisala
2019-06-26 17:41:39 +08:00
231a8aa06eTrying to figure out how to upload values to GPU.
Miikka Vaisala
2019-06-26 15:23:46 +08:00
656e50316aMerge branch 'master' into forcing
Miikka Vaisala
2019-06-26 13:19:20 +08:00
8191c47fa0Scetching the helical forcing.
Miikka Vaisala
2019-06-25 19:04:53 +08:00
912dffca4fRenamed 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.
jpekkila
2019-06-25 13:58:59 +03:00
a574d6e4c3To be friendly with the autotest.
Miikka Vaisala
2019-06-25 14:50:43 +08:00
b1a2d9603cCleaning the forcing part.
Miikka Vaisala
2019-06-25 14:48:47 +08:00
44f26cde42Corrected a stencil bug from der6
Miikka Vaisala
2019-06-25 11:25:14 +08:00
59043e586bAdded a missing switch to stencil_assembly.sas.
Miikka Vaisala
2019-06-24 18:03:24 +08:00
d0b27a0347Upwinding terms now compile.
Miikka Vaisala
2019-06-24 16:32:21 +08:00
57881e5961Implementetion for hyperdiffusion to be tested later.
Miikka Vaisala
2019-06-21 17:29:06 +08:00
f2a33bf4f8Starting with derivatives for upwinding.
Miikka Vaisala
2019-06-21 16:53:04 +08:00
a5ab388af7Fixed 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.
jpekkila
2019-06-19 20:18:25 +03:00
2310186c71Added a skeleton function for updating an arbitrary block inside the computational domain instead of the whole mesh
jpekkila
2019-06-19 19:43:46 +03:00
383d2b696cGot a warning about potentially too small array, increased size to avoid overflows
jpekkila
2019-06-19 16:58:24 +03:00
4ee772cf5dSet the minimum gcc version required in CMakeLists.txt
jpekkila
2019-06-19 16:57:47 +03:00
a7515fbbd7Made the simple forcing to scale with dt s.t. it does not explode so easily
jpekkila
2019-06-19 16:34:23 +03:00
f3cbc4984cEnabled 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.
jpekkila
2019-06-19 16:14:46 +03:00
6da061b854Fixed 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
jpekkila
2019-06-19 16:10:29 +03:00
e580f6f5d7Improvements to GPU forcing (now applied only at substep 2)
jpekkila
2019-06-19 16:08:44 +03:00
feef97563dAdded a model solution for forcing. Accidentally also autoformatted the file. Finally, removed unused cruft
jpekkila
2019-06-19 16:06:57 +03:00
2eacb98246Now acBoundcondStep is applied after acIntegrate to ensure that the whole grid visible to the host, including boundaries, are always up to date
jpekkila
2019-06-19 14:29:07 +03:00
68af32b7efSmall edit to docs
Miikka Vaisala
2019-06-19 17:11:46 +08:00
40b4a61a4cAdded DEPRECATED marking to the old forcing function.
Miikka Vaisala
2019-06-19 13:46:03 +08:00
b5753f0becPlayed around with forcing and cleaned the example implementation a bit
jpekkila
2019-06-18 17:40:27 +03:00
d4907332f2Disabled automated formatting in some parts where overfull lines are easier to read
jpekkila
2019-06-18 16:51:53 +03:00
8864266042Autoformatted all CUDA/C/C++ code
jpekkila
2019-06-18 16:42:56 +03:00
6fdc4cddb2Updated the autoformatting configuration
jpekkila
2019-06-18 16:39:30 +03:00
123fc78705Disable forcing by default s.t. the autotests pass
jpekkila
2019-06-18 16:39:07 +03:00
4ca4dbefdfAdded the machinery for implementing forcing with the DSL on multiple GPUs and a simple model solution
jpekkila
2019-06-18 16:13:32 +03:00
57e2e48fb0Added functions for loading device constants. Also introduced a new int3 constant that can be used to determine the global vertex index inside kernels
jpekkila
2019-06-18 14:11:55 +03:00
efc54f1d5fTurned off separable compilation as it is not used at the moment (all kernels are defined in a single header)
jpekkila
2019-06-18 14:09:54 +03:00
0f62651374Easier time series plotting.
Miikka Vaisala
2019-06-18 14:50:35 +08:00
ce6f453bc5Rewrote reductions, now much simpler than before
jpekkila
2019-06-17 20:38:28 +03:00
270ba4d562Rewrote reductions to work with arbitrary grid sizes, TODO more testing
jpekkila
2019-06-17 19:56:30 +03:00
f970dca68cDisabled 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
jpekkila
2019-06-17 18:32:23 +03:00
5e6cc9b8ccChanged names of some parameters to better ones
jpekkila
2019-06-17 18:18:00 +03:00
d9845920e0Simplified reductions further and added comments
jpekkila
2019-06-17 18:17:30 +03:00
18d6ad4f61Simplified the logic used for calculating reductions
jpekkila
2019-06-17 18:05:36 +03:00
a47e59c484Simplified/shortened the names of the functions used for reductions
jpekkila
2019-06-17 17:57:36 +03:00
361725adc6Cleaned reductions a bit
jpekkila
2019-06-17 17:52:14 +03:00
1d3d331570.gitignore not includes the standard build directory and the headers generated with Astaroth DSL
jpekkila
2019-06-17 14:46:30 +03:00
59086b3e79Added multi-GPU reductions. Tested to work with 1-2 GPUs with power of two grid dimensions. Requires more testing in special cases (when using exotic grid dimensions and a large number of GPUs)
jpekkila
2019-06-17 14:45:41 +03:00