Miikka Vaisala
b4cd92da0c
Now compiles and runs.
...
PLEASE NOTE THAT FLAGS NEED TO BE SET SEPARATELY IN simulation.cc and renderer.cc FOR LSINK and LFORCING!
2019-09-02 14:47:58 +08:00
Miikka Vaisala
6eeb225924
Merge branch 'master' into sink_20190723
...
Hopefully the merge isssues were resolved.
2019-09-02 11:58:48 +08:00
jpekkila
6ea02fa28e
DSL now 'feature complete' with respect to what I had in mind before the summer. Users can now create multiple kernels and the library functions are generated automatically for them. The generated library functions are of the form acDeviceKernel_<name> and acNodeKernel_<name>. More features are needed though. The next features to be added at some point are 1D and 2D device constant arrays in order to support profiles for f.ex. forcing.
2019-08-27 18:19:20 +03:00
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
022e46f2e7
Merge branch 'master' into dsl_parameter_overhaul_2019-08-19
2019-08-23 13:13:57 +03:00
JackHsu
5617eaac8a
stable disk-like model.
2019-08-23 16:49:51 +08:00
JackHsu
833319ad01
constant density keplerian velocity.
2019-08-23 15:23:48 +08:00
Miikka Vaisala
3a0c3402d0
Critical bug correction.
2019-08-22 19:07:25 +08:00
Miikka Vaisala
1410e57866
Preparing isothermal collapse.
2019-08-22 18:18:30 +08:00
Miikka Vaisala
a81bc22fb6
Write now sink infor to time series. Also a bug cerrection for sink switch.
2019-08-22 11:52:02 +08:00
jpekkila
f6040f89dc
Added acPrintMeshInfo for printing all mesh parameters
2019-08-21 16:24:48 +03:00
jpekkila
d52e002e5d
Made Astaroth Standalone a library component (still works as before but can be included in other projects which need f.ex. autotesting)
2019-08-21 16:18:48 +03:00
jpekkila
5867ff4b3e
Stashing MPItest changes
2019-08-21 16:16:12 +03:00
jpekkila
39dcda4a04
Made warnings about unused functions go away (this is intended functionality and not all programs will use all types of device constants, thus unnecessary warning)
2019-08-21 14:28:46 +03:00
JackHsu
7ac8c29b56
Now visualization prints time-series for accretion. Corrections to output.
2019-08-21 17:20:15 +08:00
jpekkila
73d393e419
Changed order for linking the MPI library to work around cmake error on CMP0004
2019-08-20 18:40:38 +03:00
JackHsu
5b686bc659
Fixed on/off switch for forcing and accretion, now forcing only happens for first 1000 steps (currently hard-coded), and accretion only happen after 1000 steps.
2019-08-20 23:12:42 +08:00
JackHsu
eda83e5807
Added on/off switch for forcing and accretion. Now both set to take effect in 1000 steps.
2019-08-20 12:08:06 +08:00
jpekkila
5b7408eb55
User config param overhaul complete, works. If I haven't missed anything, all fields and user parameters, and everything related to simulation can now be declared with the DSL. The only thing that you need to do is to fill the declared symbols with data, like with OpenGL and GLSL.
2019-08-19 18:43:16 +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
d801ebdd41
Now parameters and vertexbuffers (fields) can be declared with the DSL only. TODO: translation from the DSL header to C
2019-08-19 17:35:03 +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
787363226b
Added functions for loading int, int3, scalar and vector constants to the device layer (acDeviceLoad...Constant)
2019-08-19 15:28:16 +03:00
jpekkila
41805dcb68
Added some error checking for the case where user supplies an incomplete meshinfo to acDeviceLoadMeshInfo
2019-08-19 15:17:51 +03:00
jpekkila
598799d7c3
Added a new function to the device interface: acDeviceLoadMeshInfo
2019-08-19 15:14:00 +03:00
jpekkila
e89897985e
Battled with math.h and cmath. We probably should move from C standard libraries to C++ ones internally (in places which are not visible via the interface)
2019-08-19 14:02:30 +03:00
JackHsu
9a1a6fef17
modified the sink_mass initial value to make it stable.
2019-08-19 15:38:35 +08:00
Miikka Vaisala
5d93d743c7
Improved sink particle stability vie Truelove criterion.
2019-08-19 14:38:36 +08:00
Miikka Vaisala
42ba2ee5aa
For live rendering.
2019-08-16 11:14:26 +08:00
JackHsu
a5bb56873a
Now resets accretion buffer at every step.
2019-08-15 17:51:39 +08:00
jpekkila
6d4d53342e
Removed old comments
2019-08-15 11:14:52 +03:00
jpekkila
aa45ce04de
Made the linear algebra functions used in forcing.cc static to avoid collisions with the functions defined in math_utils.h
2019-08-15 11:09:40 +03:00
jpekkila
36fea70560
Moved basic built-in functions for vector operations to math_utils.h from integration.cuh so that they are shared with the CPU and GPU
2019-08-15 11:04:22 +03:00
Miikka Vaisala
00f92f25fa
Merge branch 'master' into sink_20190723
2019-08-13 14:04:50 +08:00
Miikka Vaisala
d79dd428e7
Corrections to the previous.
2019-08-13 14:03:36 +08:00
Miikka Vaisala
870eb32bb3
Added some preprocessing directives for accretion
2019-08-13 13:51:46 +08:00
jpekkila
d5b2e5bb42
Added placeholders for new built-in variables in the DSL. Also overloads to DCONST_INT etc. Naming still pending and old DCONST_REAL etc calls still work.
2019-08-12 14:05:35 +03:00
JackHsu
8c7176d702
Completed function to sum VTXBUF_ACCRETION and updates mass of sink particle. Needs further work with crashing problem.
2019-08-12 19:02:22 +08:00
jpekkila
b8c4d07de2
Removed unnecessary comments
2019-08-12 13:31:24 +03:00
jpekkila
e027f7e548
Removed grid_n in astaroth.cu and replaced it with the new acNodeQueryDeviceConfiguration call
2019-08-12 13:25:47 +03:00
jpekkila
bba9ec7c3b
Implemented acNodeQueryDeviceConfiguration
2019-08-12 11:40:38 +03:00
jpekkila
b5daf22c26
Added interface function acSynchronizeMesh
2019-08-12 10:25:05 +03:00
jpekkila
8bbb2cd5df
Now prints device info before trying to run the dummy kernel
2019-08-12 09:46:37 +03:00
JackHsu
e7ff447510
Merge branch 'master' into sink_20190723
...
Conflicts:
acc/mhd_solver/stencil_process.sps
I've mannaully resolved the conflict, only that I'm leaving int3 globalVertexIdx as is, as instructed by Miikka.
2019-08-12 14:01:19 +08:00
JackHsu
b782ead4f3
Now initilize VTXBUFF_ACCRETION to 0.0, and accretion now works as expected.
2019-08-12 12:34:38 +08: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
5397495496
Added acLoadWithOffset
2019-08-08 20:43:01 +03:00
jpekkila
e79e1207f2
Added a function for checking whether CUDA-capable devices are available
2019-08-08 20:35:02 +03:00
jpekkila
8a9099d75e
Added missing functions to fix backwards compatibility with the version interfaced with Pencil Code
2019-08-08 19:49:57 +03:00