Commit Graph

296 Commits

Author SHA1 Message Date
jpekkila
0e1d1b9fb4 Some optimizations for DSL compilation. Also a new feature: Inplace addition and subtraction += and -= are now allowed 2019-10-07 16:33:24 +03:00
jpekkila
f7c079be2a Removed everything unnecessary from integration.cuh. Now all derivatives etc are available in a standard library header (acc/stdlib/stdderiv.h) 2019-10-07 15:47:33 +03:00
Miikka Vaisala
f8e82d41af Can now set the endtime for simulation, instead of step number. 2019-10-02 15:09:26 +08:00
Miikka Vaisala
79fe634a84 Tested and works. Now it is possible to continue the simulatiom with a specific file number.
Next task: move I/O to src/utils/
2019-10-02 14:30:13 +08:00
Miikka Vaisala
0dbbcd22d5 Tested and works. We can now continue simulation from the chose snapshot number. 2019-10-02 14:09:47 +08:00
Miikka Vaisala
1b0e9803b0 Compiles and runs again.
Now to actual testing. Can we read and cotinue from and old file?
2019-10-02 13:52:38 +08:00
Miikka Vaisala
54d89f7a46 In principle should read a specifield old run.
Needs still testing and compilation.
2019-10-02 11:37:51 +08:00
Miikka Vaisala
d5b6f3b48e Drafted read_mesh() to read existing binary data with at a specific step number. 2019-10-02 11:16:30 +08:00
Miikka Vaisala
cbbfd941f8 Merge branch 'master' into io_improvement_20190924 2019-10-02 10:47:51 +08:00
jpekkila
9a16c79ce6 Renamed all references to uniforms to f.ex. loadScalarConstant -> loadScalarUniform (for consistency with the DSL) 2019-10-01 17:12:20 +03:00
jpekkila
20c2069231 Made the utility library more consistent with the core library 2019-10-01 15:45:56 +03:00
jpekkila
19b16eecc8 Added an example for creating arbitrary projects, see acc/test_solver and src/exampleproject. Note: make sure that dt is calculated adequately and that all parameters are defined properly (see src/exampleproject/simulation.cc) 2019-10-01 15:33:26 +03:00
jpekkila
5a45fe11a8 Added the utility library itself (linked with target astaroth_utils) 2019-10-01 15:23:39 +03:00
jpekkila
2c8c49ee24 Removed or updated some old .gitignore files 2019-09-24 17:50:41 +03:00
jpekkila
e4eea7db83 Added support for Volta GPUs 2019-09-24 17:19:45 +03:00
Miikka Vaisala
d7bd92ed1b Data read and written now with respect to actual AcReal properties. This will save space in the future. 2019-09-24 16:54:04 +08:00
Miikka Vaisala
d2e13d0139 Determine endianness. 2019-09-24 12:52:52 +08:00
jpekkila
bf34ec006a Merge branch 'master' into config_selection_as_runtime_option_20190918 2019-09-23 17:35:11 +03:00
jpekkila
4dfd4a1012 Changed from strncmp to strdup to work around warnings 2019-09-23 17:25:03 +03:00
Miikka Vaisala
cccc11798a Better mesh_info.list 2019-09-23 17:53:19 +08:00
jpekkila
24f46324e0 Deprecated the old style of selecting a config file (was a compile-time parameter). The config file is now a runtime parameter and can be changed without recompilation. Usage: ./ac_run -s <path/to/config/file/relative/to/ac_run/path>. config/astaroth.conf is selected by default if the custom path is not supplied to ac_run. 2019-09-18 19:22:15 +03:00
jpekkila
3bb6ca1712 The Astaroth Code Compiler (acc) is now built with cmake. Additionally, make is now used to generate the CUDA headers from DSL sources. The headers are also properly regenerated whenever a DSL file has been changed. With this commit, the DSL is now seamlessly integrated to the library and we no longer need complicated scripts to figure out the correct files. The current workflow for using custom DSL sources is to pass the DSL module directory to cmake, f.ex. cmake -DDSL_MODULE_DIR=/acc/mhd_solver. Note that the path must be absolute or then given relative to the CMakeLists.txt directory. f.ex cd build && cmake -DDSL_MODULE_DIR=../acc/mhd_solver does not work. CMake then takes all DSL files in that directory and handles the rest. 2019-09-18 17:28:29 +03:00
jpekkila
bce3e4de03 Made warnings about unused device functions go away 2019-09-18 16:58:04 +03:00
jpekkila
d2057b8f5a Added a suggestion for writing out the configuration in simulation.cc 2019-09-17 18:12:43 +03:00
jpekkila
9b0be40b98 Auto-formatted 2019-09-17 17:36:28 +03:00
Miikka Vaisala
af254257a2 Back to defualts in renderer.cc 2019-09-16 12:38:17 +08:00
Miikka Vaisala
297b788ce7 Small corrections to keep the defaults in place. 2019-09-16 12:33:56 +08:00
Miikka Vaisala
4d7cb0184c Corrected type definition problems. 2019-09-16 12:12:10 +08:00
Miikka Vaisala
f5733e5144 Turnin LSINK off by default to prepare for merge to master. 2019-09-16 11:15:44 +08:00
Miikka Vaisala
42f92c7d49 Merge branch 'master' into sink_20190723 2019-09-16 10:57:15 +08:00
jpekkila
021e5f3774 Renamed NUM_STREAM_TYPES -> NUM_STREAMS 2019-09-12 15:48:38 +03:00
jpekkila
53230c9b61 Added errorchecking and more flexibility the the new acDeviceLoadScalarArray function 2019-09-05 19:56:04 +03:00
jpekkila
263a1d23a3 Added a function for loading ScalarArrays to the GPU 2019-09-05 16:35:08 +03:00
Miikka Vaisala
88a8198810 Revising the initial condition into a self-similar profile. 2019-09-03 18:42:14 +08:00
Miikka Vaisala
65d69027be Found an error in the gravitational constant. Now corrected! 2019-09-03 17:48:56 +08:00
Miikka Vaisala
6560ab04bf Improvement to the initial velocity profile. 2019-09-03 12:33:44 +08:00
jpekkila
9e57aba9b7 New feature: ScalarArray. ScalarArrays are read-only 1D arrays containing max(mx, max(my, mz)) elements. ScalarArray is a new type of uniform and can be used for storing f.ex. forcing profiles. The DSL now also supports complex numbers and some basic arithmetic (exp, multiplication) 2019-09-02 21:26:57 +03:00
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