Commit Graph

43 Commits

Author SHA1 Message Date
jpekkila
20138263f4 The previous attempt (dsl_feature_completeness_2019-08-23) to enable arbitrary kernel functions was a failure: we get significant performance loss (25-100%) if step_number is not passed as a template parameter to the integration kernel. Apparently the CUDA compiler cannot perform some optimizations if there is a if/else construct in a performance-critical part which cannot be evaluated at compile time. This branch keeps step_number as a template parameter but takes rest of the user parameters as uniforms (dt is no longer passed as a function parameter but as an uniform with the DSL instead). 2019-08-27 17:36:33 +03:00
jpekkila
5d2b658fb0 Autoformatted the DSL files 2019-08-20 18:41:26 +03:00
jpekkila
51cf1f1068 The C header is now generated from the DSL, stashing the changes just to be sure since I might overwrite something when updating the compilation scripts to work with this new scheme 2019-08-19 18:19:28 +03:00
jpekkila
bcdd827a4f Added a proper declarations for all user-specified uniform. Note: built-in uniforms are not correctly translated into CUDA 2019-08-19 17:05:56 +03:00
jpekkila
0208d55e4e Moved STENCIL_ORDER and NGHOST out of user-defined parameter as these are actually internal defines used to configure the built-in functions. Additionally, renamed all explicitly declared uniforms from dsx -> AC_dsx in the DSL in preparation for having clear connection between DSL uniforms and the library parameter handles created by the user (AcRealParam etc) 2019-08-19 16:40:47 +03:00
jpekkila
b53cabbc44 Made the DSL syntax less confusing: Input and output arrays are now ScalarField and VectorFields instead of scalars and vectors. C++ initializers are now also possible, removing the need to declare Fields as int or int3 which was very confusing, like "what, you assing an int value to a real, what the &^%@?" 2019-08-08 21:07:36 +03:00
jpekkila
fd94b6321d Renamed globalGrid.n to globalGridN 2019-08-07 18:16:34 +03:00
jpekkila
10200e4dd5 Merge branch 'master' into node_device_interface_revision_07-23 2019-08-07 16:25:33 +03:00
jpekkila
e2f5cced1e Renamed dox -> dot 2019-08-07 16:08:03 +03:00
Miikka Vaisala
7e6361a92a Forcing hotfix.
Will need more investigation before scientific runs. Now just something to correct the obvious bug.
2019-08-07 16:04:48 +08:00
jpekkila
a930864f42 Merge branch 'master' into node_device_interface_revision_07-23 2019-08-07 07:43:28 +03:00
jpekkila
a6fca069a7 Added a comment about helical forcing 2019-08-06 19:47:03 +03:00
jpekkila
3726847683 Made globalGridN and d_multigpu_offsets built-in parameters. Note the renaming from globalGrid.n to globalGridN. 2019-08-06 16:39:15 +03:00
jpekkila
acc53e1c2b Merged master to acc_parameter_overhaul 2019-07-03 17:37:37 +03:00
jpekkila
81a09501b8 Removed deprecated LNT0 and LNRHO0 defines, now the actual configuration parameters are used (AC_lnrho0 and AC_lnT0). Also accidental autoformatting again, there seems to be stray spaces before linebreaks in some files which get automatically removed by my text editor 2019-07-03 17:23:37 +03:00
Miikka Vaisala
98713ff9d2 A possible bug note added. Will look into late. 2019-07-03 14:49:10 +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
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
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
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
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
jpekkila
ffe9df1bb0 LFORCING was turned off in stencil_process and the autotests failed, re-enabled 2019-06-26 14:08:56 +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
Miikka Vaisala
5cacda2850 Helical forcing funtion works.
But we will need a wavenumber generator to add stochasticity.
2019-06-26 13:15:28 +08:00
Miikka Vaisala
8191c47fa0 Scetching the helical forcing.
Not the idead form. Not yet tested.
2019-06-25 19:04:53 +08: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
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
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
e580f6f5d7 Improvements to GPU forcing (now applied only at substep 2) 2019-06-19 16:08:44 +03:00
jpekkila
b5753f0bec Played around with forcing and cleaned the example implementation a bit 2019-06-18 17:40:27 +03:00
jpekkila
123fc78705 Disable forcing by default s.t. the autotests pass 2019-06-18 16:39:07 +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
0e48766a68 Added Astaroth 2.0 2019-06-14 14:19:07 +03:00