Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:19:07

0001 #include "include/opencl_backend.h"
0002 #include "include/clideal.h"
0003 #include <iostream>
0004 
0005 clvisc::Config set_hydro_config() {
0006     clvisc::Config cfg;
0007     cfg.block_size = 64;
0008     cfg.nx = 200;
0009     cfg.ny = 200;
0010     cfg.nz = 1;
0011     cfg.nxskip = 2;
0012     cfg.nyskip = 2;
0013     cfg.nzskip = 2;
0014     cfg.tau0 = 0.6;
0015     cfg.dt = 0.02;
0016     cfg.dx = 0.16;
0017     cfg.dy = 0.16;
0018     cfg.dz = 0.16;
0019     cfg.etaos_xmin = 0.15;
0020     cfg.etaos_ymin = 0.15;
0021     cfg.etaos_left_slop = 0.0;
0022     cfg.etaos_right_slop = 0.0;
0023     cfg.result_directory = "./";
0024     return cfg;
0025 }
0026 
0027 
0028 std::vector<clvisc::cl_real> trivial_initial_condition(const clvisc::Config & cfg) {
0029     std::vector<clvisc::cl_real> ini;
0030     long ngrids = cfg.nx * cfg.ny * cfg.nz;
0031     ini.reserve(ngrids);
0032     for (long idx = 0; idx < ngrids; idx++) {
0033         clvisc::cl_real const_ed = 30.0f;
0034         ini.push_back(const_ed);
0035     }
0036     return ini;
0037 }
0038 
0039 int main(int argc, char ** argv) {
0040     auto backend0 = clvisc::OpenclBackend("cpu", 0);
0041     backend0.DeviceInfo();
0042 
0043     auto backend1 = clvisc::OpenclBackend("gpu", 1);
0044     backend1.DeviceInfo();
0045 
0046     auto cfg = set_hydro_config();
0047     std::string device_type = "gpu";
0048     int device_id = 1;
0049     clvisc::CLIdeal ideal(cfg, device_type, device_id);
0050     auto ini = trivial_initial_condition(cfg);
0051     ideal.read_ini(ini);
0052     ideal.evolve();
0053     return 0;
0054 }