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