diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-05 00:04:16 +0200 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-05 00:04:16 +0200 |
| commit | 52326efc80dfeae6e830527df2e7803ecf61b00a (patch) | |
| tree | f1dee71024c65ebeb1431f6e1b08d7e62383e971 | |
| parent | a31a302fb9fdf28b105eea55d98d2164dbeb7357 (diff) | |
| parent | 4476303fae9dfe44b1b0aee35a1978f9c885ff1d (diff) | |
| download | libs-lbm-52326efc80dfeae6e830527df2e7803ecf61b00a.tar.gz | |
Merge branch 'dev'
| -rw-r--r-- | examples/stokes_drag_particle_2d_hlbm_gpu/sim.cpp | 21 | ||||
| -rw-r--r-- | vtk_to_png.py | 75 |
2 files changed, 6 insertions, 90 deletions
diff --git a/examples/stokes_drag_particle_2d_hlbm_gpu/sim.cpp b/examples/stokes_drag_particle_2d_hlbm_gpu/sim.cpp index 18b5258..a919bbe 100644 --- a/examples/stokes_drag_particle_2d_hlbm_gpu/sim.cpp +++ b/examples/stokes_drag_particle_2d_hlbm_gpu/sim.cpp @@ -377,20 +377,6 @@ saw::error_or<void> lbm_main(int argc, char** argv){ } } sycl_q.wait(); - if(i.get() % 32u == 0u){ - { - auto eov = dev.copy_to_host(lbm_sycl_macro_data,*lbm_macro_data_ptr); - if(eov.is_error()){ - return eov; - } - } - { - auto eov = write_csv_file(out_dir,"m",i.get(), *lbm_macro_data_ptr); - if(eov.is_error()){ - return eov; - } - } - } // Stream sycl_q.submit([&](acpp::sycl::handler& h){ component<T,Desc,cmpt::Stream,encode::Sycl<saw::encode::Native>> stream; @@ -430,7 +416,12 @@ saw::error_or<void> lbm_main(int argc, char** argv){ return eov; } } - + { + auto eov = write_csv_file(out_dir,"m",time_steps.get(), *lbm_macro_data_ptr); + if(eov.is_error()){ + return eov; + } + } sycl_q.wait(); return saw::make_void(); } diff --git a/vtk_to_png.py b/vtk_to_png.py deleted file mode 100644 index 9c3f4f3..0000000 --- a/vtk_to_png.py +++ /dev/null @@ -1,75 +0,0 @@ -import vtk -import glob -import os - -vtk_files = sorted(glob.glob("*.vtk")) -output_dir = "frames" -os.makedirs(output_dir, exist_ok=True) - -renderer = vtk.vtkRenderer() -render_window = vtk.vtkRenderWindow() -render_window.SetOffScreenRendering(1) -render_window.SetSize(1024, 512) -render_window.AddRenderer(renderer) - -renderer.SetBackground(1, 1, 1) - -camera_initialized = False - -for i, vtk_file in enumerate(vtk_files): - reader = vtk.vtkStructuredPointsReader() - reader.SetFileName(vtk_file) - reader.Update() - - image = reader.GetOutput() - - mag = vtk.vtkImageMagnitude(); - mag.SetInputData(image); - mag.Update(); - image = mag.GetOutput(); - scalar_name = "Velocity magnitude"; - - scalars = image.GetPointData().GetScalars() - if scalars is None: - raise RuntimeError("No scalar data found") - - vmin, vmax = scalars.GetRange() - - # Image slice mapper (2D!) - slice_mapper = vtk.vtkImageSliceMapper() - slice_mapper.SetInputData(image) - - # Pick the only slice (or middle if dimension >1) - extent = image.GetExtent() - slice_mapper.SetSliceNumber(extent[4]) # Z slice - - slice_actor = vtk.vtkImageSlice() - slice_actor.SetMapper(slice_mapper) - - # Grayscale mapping - prop = slice_actor.GetProperty() - prop.SetColorWindow(vmax - vmin) - prop.SetColorLevel(0.5 * (vmax + vmin)) - - renderer.RemoveAllViewProps() - renderer.AddViewProp(slice_actor) - - if not camera_initialized: - renderer.ResetCamera() - camera_initialized = True - - render_window.Render() - - # Capture to PNG - w2i = vtk.vtkWindowToImageFilter() - w2i.SetInput(render_window) - w2i.ReadFrontBufferOff() - w2i.Update() - - writer = vtk.vtkPNGWriter() - writer.SetFileName(f"{output_dir}/frame_{i:04d}.png") - writer.SetInputConnection(w2i.GetOutputPort()) - writer.Write() - - print(f"Saved frame {i} range=({vmin},{vmax})") - |
