From 5076e5d7891fcc220668512d6b618b307925325c Mon Sep 17 00:00:00 2001 From: Frank14f <1515444314@qq.com> Date: Sun, 29 Mar 2026 22:16:20 +0800 Subject: [PATCH] improve LES stability --- .gitignore | 3 +- output/poiseuille_d2q9.png | Bin 195964 -> 125234 bytes src/CelerisLab/cuda/compiler.py | 8 +- src/CelerisLab/lbm/driver.py | 85 ++- .../lbm/kernels/boundary/inlet_outlet.cuh | 151 +++-- src/CelerisLab/lbm/kernels/kernel_v2.cu | 33 +- src/CelerisLab/lbm/kernels/macros.h | 40 ++ .../lbm/kernels/operators/collision_mrt.cuh | 123 +++- .../lbm/kernels/operators/turbulence_smag.cuh | 111 ++++ .../lbm/kernels/step/one_step_double.cu | 51 +- .../lbm/kernels/step/one_step_esopull.cu | 77 ++- tests/test_d2q9_visual.py | 75 ++- tests/test_high_re_validation.py | 547 ++++++++++++++++++ 13 files changed, 1163 insertions(+), 141 deletions(-) create mode 100644 src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh create mode 100644 tests/test_high_re_validation.py diff --git a/.gitignore b/.gitignore index ee1fdd0..2982506 100644 --- a/.gitignore +++ b/.gitignore @@ -68,4 +68,5 @@ venv.bak/ *.log # reference: -ref/ \ No newline at end of file +ref/ +output/ \ No newline at end of file diff --git a/output/poiseuille_d2q9.png b/output/poiseuille_d2q9.png index 752f3a13378bf6d723e29b59e49b8d85696a024b..36c5a39801538eef8c4a5ef5d98fbcab37f15447 100644 GIT binary patch literal 125234 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 Mj>{M2IBY!d8`7mEcmMzZ literal 195964 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

&rL30xR7?CVpk9|ikN(&cD;ra8Ex%H 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 diff --git a/src/CelerisLab/cuda/compiler.py b/src/CelerisLab/cuda/compiler.py index 2164b71..18eb528 100644 --- a/src/CelerisLab/cuda/compiler.py +++ b/src/CelerisLab/cuda/compiler.py @@ -95,7 +95,9 @@ def config_kernal_v2(config_cuda: CudaConfig, config_field: FlowFieldConfig, collision_model: int = 2, streaming_model: int = 0, store_precision: int = 0, - use_ddf_shifting: int = 0): + use_ddf_shifting: int = 0, + use_les: int = 0, + les_cs: float = 0.16): """Configure macros.h for the new modular kernel architecture. Args: @@ -103,6 +105,8 @@ def config_kernal_v2(config_cuda: CudaConfig, config_field: FlowFieldConfig, streaming_model: 0=double-buffer (default), 1=Esoteric-Pull store_precision: 0=FP32 (default), 1=FP16S, 2=FP16C use_ddf_shifting: 0=off (default), 1=on + use_les: 0=off (default), 1=Smagorinsky LES + les_cs: Smagorinsky constant C_s """ # First apply legacy config config_kernal(config_cuda, config_field) @@ -113,6 +117,8 @@ def config_kernal_v2(config_cuda: CudaConfig, config_field: FlowFieldConfig, lines = modify_macro(lines, "STREAMING_MODEL", streaming_model) lines = modify_macro(lines, "STORE_PRECISION", store_precision) lines = modify_macro(lines, "USE_DDF_SHIFTING", use_ddf_shifting) + lines = modify_macro(lines, "USE_LES", use_les) + lines = modify_macro(lines, "LES_CS", f"{les_cs:.6f}f") write_lines(kernel_path("macros.h"), lines) def config_object(n_obj: int): diff --git a/src/CelerisLab/lbm/driver.py b/src/CelerisLab/lbm/driver.py index 94649f2..d33bd17 100644 --- a/src/CelerisLab/lbm/driver.py +++ b/src/CelerisLab/lbm/driver.py @@ -23,6 +23,13 @@ class FlowField: field_config: utils.FlowFieldConfig, cuda_config: utils.CudaConfig, device_id: Union[int, List[int]] = None, + use_kernel_v2: bool = True, + collision_model: int = 0, + streaming_model: int = 0, + store_precision: int = 0, + use_ddf_shifting: int = 0, + use_les: int = 0, + les_cs: float = 0.16, ): self.field_config = field_config self.cuda_config = cuda_config @@ -49,10 +56,26 @@ class FlowField: utils.check_cuda_capability(field_config, cuda_config, device_id) - # Config kernel - compiler.config_kernal(cuda_config, field_config) - compiler.config_object(int(0)) - # compiler.config_sensor(int(0)) + self.use_kernel_v2 = bool(use_kernel_v2) + self.collision_model = int(collision_model) + self.streaming_model = int(streaming_model) + self.store_precision = int(store_precision) + self.use_ddf_shifting = int(use_ddf_shifting) + self.use_les = int(use_les) + self.les_cs = float(les_cs) + + if self.collision_model not in (0, 1, 2): + raise ValueError("collision_model must be 0(SRT), 1(TRT), or 2(MRT).") + if self.streaming_model not in (0, 1): + raise ValueError("streaming_model must be 0(double-buffer) or 1(esopull).") + if self.store_precision not in (0, 1, 2): + raise ValueError("store_precision must be 0(FP32), 1(FP16S), or 2(FP16C).") + if self.use_ddf_shifting not in (0, 1): + raise ValueError("use_ddf_shifting must be 0 or 1.") + if self.use_les not in (0, 1): + raise ValueError("use_les must be 0 or 1.") + if not (0.0 < self.les_cs < 1.0): + raise ValueError("les_cs must be in (0, 1).") # Set constants if field_config.data_type == "FP32": @@ -84,11 +107,10 @@ class FlowField: f"Unsupported lattice type {field_config.lattice} in {field_config.dimensionality} dimensions." ) - # Compile kernel - compiler.compile_kernel() - self.ptx = cuda.module_from_file(compiler.kernel_path("kernel.ptx")) - self.step = self.ptx.get_function("OneStep") - initflow = self.ptx.get_function("InitTubeFlow") + self.objects = {} + + # Compile and load kernel + self._rebuild_kernel() # Initialize memory self.ddf = np.zeros(self.FIELD_SIZE * self.LATTICE, dtype=self.DATA_TYPE) @@ -105,11 +127,10 @@ class FlowField: self.delta_gpu = cuda.mem_alloc(1) self.vortex_gpu = cuda.mem_alloc(self.vortex_config.nbytes) - self.objects = {} self.action = np.zeros(0, dtype=self.DATA_TYPE) self.obs = np.zeros(0, dtype=self.DATA_TYPE) - initflow( + self.initflow( self.flag_gpu, self.ddf_gpu, block=(self.cuda_config.threads_per_block, 1, 1), @@ -122,6 +143,38 @@ class FlowField: cuda.memcpy_dtoh(self.flag, self.flag_gpu) cuda.memcpy_dtoh(self.ddf, self.ddf_gpu) + def _configure_kernel(self): + if self.use_kernel_v2: + compiler.config_kernal_v2( + self.cuda_config, + self.field_config, + collision_model=self.collision_model, + streaming_model=self.streaming_model, + store_precision=self.store_precision, + use_ddf_shifting=self.use_ddf_shifting, + use_les=self.use_les, + les_cs=self.les_cs, + ) + else: + compiler.config_kernal(self.cuda_config, self.field_config) + + def _compile_and_load_kernel(self): + if self.use_kernel_v2: + compiler.compile_kernel_v2() + self.ptx = cuda.module_from_file(compiler.kernel_path("kernel_v2.ptx")) + self.step = self.ptx.get_function("OneStep") + self.initflow = self.ptx.get_function("InitTubeFlow_v2") + else: + compiler.compile_kernel() + self.ptx = cuda.module_from_file(compiler.kernel_path("kernel.ptx")) + self.step = self.ptx.get_function("OneStep") + self.initflow = self.ptx.get_function("InitTubeFlow") + + def _rebuild_kernel(self): + self._configure_kernel() + compiler.config_object(len(self.objects)) + self._compile_and_load_kernel() + def add_cylinder(self, center: Tuple[float, float, float], radius: float, id_obj: Optional[int] = None): x_c, y_c, z_c = center @@ -193,10 +246,7 @@ class FlowField: cuda.memcpy_htod(self.flag_gpu, self.flag) cuda.memcpy_htod(self.indx_gpu, self.indx) - compiler.config_object(len(self.objects)) - compiler.compile_kernel() - self.ptx = cuda.module_from_file(compiler.kernel_path("kernel.ptx")) - self.step = self.ptx.get_function("OneStep") + self._rebuild_kernel() def add_sensor(self, center: Tuple[float, float, float], radius: float): x_c, y_c, z_c = center @@ -235,10 +285,7 @@ class FlowField: cuda.memcpy_htod(self.flag_gpu, self.flag) cuda.memcpy_htod(self.indx_gpu, self.indx) - compiler.config_object(len(self.objects)) - compiler.compile_kernel() - self.ptx = cuda.module_from_file(compiler.kernel_path("kernel.ptx")) - self.step = self.ptx.get_function("OneStep") + self._rebuild_kernel() def add_vortex(self, center: Tuple[float, float, float], radius: float, strength: float, direction: float, type: str): x_c, y_c, z_c = center diff --git a/src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh b/src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh index 3a87a5a..1fde9ca 100644 --- a/src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh +++ b/src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh @@ -15,6 +15,31 @@ #ifndef CELERIS_BOUNDARY_INLET_OUTLET_CUH #define CELERIS_BOUNDARY_INLET_OUTLET_CUH +#ifndef INLET_PROFILE +#define INLET_PROFILE 1 +#endif + +#ifndef OUTLET_MODE +#define OUTLET_MODE 0 +#endif + +#ifndef OUTLET_BACKFLOW_CLAMP +#define OUTLET_BACKFLOW_CLAMP 1 +#endif + +#ifndef OUTLET_BLEND_ALPHA +#define OUTLET_BLEND_ALPHA 0.70f +#endif + +__device__ __forceinline__ float inlet_target_u(float y_coord) { +#if INLET_PROFILE == 0 + return U0; +#else + float yy = (y_coord - 0.5f * (NY - 1)) / (NY - 2.0f); + return U0 * 1.5f * (1.0f - 4.0f * yy * yy); +#endif +} + #if NQ == 9 // --------------------------------------------------------------------------- @@ -33,37 +58,21 @@ __device__ inline void apply_parabolic_inlet(float* __restrict__ f, float y_coord) { // Neighbor macros - float p_neb = (f_neb[0]+f_neb[1]+f_neb[2]+f_neb[3]+f_neb[4] - +f_neb[5]+f_neb[6]+f_neb[7]+f_neb[8]) / 3.0f; + float rho_neb, u_neb, v_neb; + compute_rho_u(f_neb, rho_neb, u_neb, v_neb); // Target velocity (parabolic profile) - float yy = (y_coord - 0.5f * (NY - 1)) / (NY - 2.0f); - float u_target = U0 * 1.5f * (1.0f - 4.0f * yy * yy); + float u_target = inlet_target_u(y_coord); float v_target = 0.0f; - // Neighbor velocity - float u_neb = (f_neb[1]-f_neb[2]+f_neb[5]-f_neb[6]+f_neb[7]-f_neb[8]) / RHO; - float v_neb = (f_neb[3]-f_neb[4]+f_neb[5]-f_neb[6]-f_neb[7]+f_neb[8]) / RHO; - - // feq for direction i=1 (cx=1, cy=0), w=1/9: - // feq = (2p + RHO*(2u² + 2u - v²)) / 6 - float feq1_target = (2.0f*p_neb + RHO*(2.0f*u_target*u_target + 2.0f*u_target - v_target*v_target)) / 6.0f; - float feq1_neb = (2.0f*p_neb + RHO*(2.0f*u_neb*u_neb + 2.0f*u_neb - v_neb*v_neb)) / 6.0f; - - // feq for direction i=5 (cx=1, cy=1), w=1/36: - // feq = (p + RHO*(u² + 3uv + u + v² + v)) / 12 - float feq5_target = (p_neb + RHO*(u_target*u_target + 3.0f*u_target*v_target + u_target + v_target*v_target + v_target)) / 12.0f; - float feq5_neb = (p_neb + RHO*(u_neb*u_neb + 3.0f*u_neb*v_neb + u_neb + v_neb*v_neb + v_neb)) / 12.0f; - - // feq for direction i=7 (cx=1, cy=-1), w=1/36: - // feq = (p + RHO*(u² - 3uv + u + v² - v)) / 12 - float feq7_target = (p_neb + RHO*(u_target*u_target - 3.0f*u_target*v_target + u_target + v_target*v_target - v_target)) / 12.0f; - float feq7_neb = (p_neb + RHO*(u_neb*u_neb - 3.0f*u_neb*v_neb + u_neb + v_neb*v_neb - v_neb)) / 12.0f; + float feq_tar[9], feq_neb[9]; + compute_feq(rho_neb, u_target, v_target, feq_tar); + compute_feq(rho_neb, u_neb, v_neb, feq_neb); // Non-equilibrium extrapolation - f[1] = f_neb[1] - feq1_neb + feq1_target; - f[5] = f_neb[5] - feq5_neb + feq5_target; - f[7] = f_neb[7] - feq7_neb + feq7_target; + f[1] = f_neb[1] - feq_neb[1] + feq_tar[1]; + f[5] = f_neb[5] - feq_neb[5] + feq_tar[5]; + f[7] = f_neb[7] - feq_neb[7] + feq_tar[7]; } // --------------------------------------------------------------------------- @@ -76,35 +85,39 @@ __device__ inline void apply_pressure_outlet(float* __restrict__ f, const float* __restrict__ f_neb, float y_coord) { - float p_out = 0.0f; + (void)y_coord; - // Target velocity (parabolic, same as inlet for consistency) - float yy = (y_coord - 0.5f * (NY - 1)) / (NY - 2.0f); - float u_target = U0 * 1.5f * (1.0f - 4.0f * yy * yy); - float v_target = 0.0f; +#if OUTLET_MODE == 1 + // Simple zero-gradient copy for unknown incoming directions at outlet. + f[2] = f_neb[2]; + f[8] = f_neb[8]; + f[6] = f_neb[6]; +#else - // Neighbor velocity - float u_neb = (f_neb[1]-f_neb[2]+f_neb[5]-f_neb[6]+f_neb[7]-f_neb[8]) / RHO; - float v_neb = (f_neb[3]-f_neb[4]+f_neb[5]-f_neb[6]-f_neb[7]+f_neb[8]) / RHO; + // Convective non-reflecting style: extrapolate outlet density from neighbor + // and keep neighbor velocity. + float rho_neb, u_neb, v_neb; + compute_rho_u(f_neb, rho_neb, u_neb, v_neb); +#if OUTLET_BACKFLOW_CLAMP + u_neb = fmaxf(u_neb, 0.0f); +#endif + float rho_out = rho_neb; - // feq for direction i=2 (cx=-1, cy=0), w=1/9: - // feq = (2p - RHO*(-2u² + 2u + v²)) / 6 - float feq2_target = (2.0f*p_out - RHO*(-2.0f*u_target*u_target + 2.0f*u_target + v_target*v_target)) / 6.0f; - float feq2_neb = (2.0f*p_out - RHO*(-2.0f*u_neb*u_neb + 2.0f*u_neb + v_neb*v_neb)) / 6.0f; + float feq_tar[9], feq_neb[9]; + compute_feq(rho_out, u_neb, v_neb, feq_tar); + compute_feq(rho_neb, u_neb, v_neb, feq_neb); - // feq for direction i=8 (cx=-1, cy=1), w=1/36: - // feq = (p + RHO*(u² - 3uv - u + v² + v)) / 12 - float feq8_target = (p_out + RHO*(u_target*u_target - 3.0f*u_target*v_target - u_target + v_target*v_target + v_target)) / 12.0f; - float feq8_neb = (p_out + RHO*(u_neb*u_neb - 3.0f*u_neb*v_neb - u_neb + v_neb*v_neb + v_neb)) / 12.0f; - - // feq for direction i=6 (cx=-1, cy=-1), w=1/36: - // feq = (p + RHO*(u² + 3uv - u + v² - v)) / 12 - float feq6_target = (p_out + RHO*(u_target*u_target + 3.0f*u_target*v_target - u_target + v_target*v_target - v_target)) / 12.0f; - float feq6_neb = (p_out + RHO*(u_neb*u_neb + 3.0f*u_neb*v_neb - u_neb + v_neb*v_neb - v_neb)) / 12.0f; - - f[2] = f_neb[2] - feq2_neb + feq2_target; - f[8] = f_neb[8] - feq8_neb + feq8_target; - f[6] = f_neb[6] - feq6_neb + feq6_target; +#if OUTLET_MODE == 2 + const float a = OUTLET_BLEND_ALPHA; + f[2] = a * (f_neb[2] - feq_neb[2] + feq_tar[2]) + (1.0f - a) * f_neb[2]; + f[8] = a * (f_neb[8] - feq_neb[8] + feq_tar[8]) + (1.0f - a) * f_neb[8]; + f[6] = a * (f_neb[6] - feq_neb[6] + feq_tar[6]) + (1.0f - a) * f_neb[6]; +#else + f[2] = f_neb[2] - feq_neb[2] + feq_tar[2]; + f[8] = f_neb[8] - feq_neb[8] + feq_tar[8]; + f[6] = f_neb[6] - feq_neb[6] + feq_tar[6]; +#endif +#endif } #endif // NQ == 9 @@ -128,8 +141,7 @@ __device__ inline void apply_parabolic_inlet_3d(float* __restrict__ f, compute_rho_u(f_neb, rho_neb, un, vn, wn); // Target velocity (parabolic in y, uniform in z) - float yy = (y_coord - 0.5f * (NY - 1)) / (NY - 2.0f); - float u_tar = U0 * 1.5f * (1.0f - 4.0f * yy * yy); + float u_tar = inlet_target_u(y_coord); // feq arrays float feq_tar[19], feq_neb[19]; @@ -148,24 +160,47 @@ __device__ inline void apply_pressure_outlet_3d(float* __restrict__ f, const float* __restrict__ f_neb, float y_coord) { + (void)y_coord; + +#if OUTLET_MODE == 1 + // Simple zero-gradient copy for unknown incoming directions at outlet. + f[2] = f_neb[2]; + f[8] = f_neb[8]; + f[10] = f_neb[10]; + f[14] = f_neb[14]; + f[16] = f_neb[16]; +#else + // Neighbor macros float rho_neb, un, vn, wn; compute_rho_u(f_neb, rho_neb, un, vn, wn); +#if OUTLET_BACKFLOW_CLAMP + un = fmaxf(un, 0.0f); +#endif - // Target: p_out = 0 gauge → rho = 1.0 (using neighbor velocity) - float yy = (y_coord - 0.5f * (NY - 1)) / (NY - 2.0f); - float u_tar = U0 * 1.5f * (1.0f - 4.0f * yy * yy); - + // Convective non-reflecting style: extrapolate outlet density from neighbor + // and keep neighbor velocity. + float rho_out = rho_neb; float feq_tar[19], feq_neb[19]; - compute_feq(RHO, u_tar, 0.0f, 0.0f, feq_tar); - compute_feq(RHO, un, vn, wn, feq_neb); + compute_feq(rho_out, un, vn, wn, feq_tar); + compute_feq(rho_neb, un, vn, wn, feq_neb); // Reconstruct cx<0 directions: i = 2, 8, 10, 14, 16 +#if OUTLET_MODE == 2 + const float a = OUTLET_BLEND_ALPHA; + f[2] = a * (f_neb[2] - feq_neb[2] + feq_tar[2]) + (1.0f - a) * f_neb[2]; + f[8] = a * (f_neb[8] - feq_neb[8] + feq_tar[8]) + (1.0f - a) * f_neb[8]; + f[10] = a * (f_neb[10] - feq_neb[10] + feq_tar[10]) + (1.0f - a) * f_neb[10]; + f[14] = a * (f_neb[14] - feq_neb[14] + feq_tar[14]) + (1.0f - a) * f_neb[14]; + f[16] = a * (f_neb[16] - feq_neb[16] + feq_tar[16]) + (1.0f - a) * f_neb[16]; +#else f[2] = f_neb[2] - feq_neb[2] + feq_tar[2]; f[8] = f_neb[8] - feq_neb[8] + feq_tar[8]; f[10] = f_neb[10] - feq_neb[10] + feq_tar[10]; f[14] = f_neb[14] - feq_neb[14] + feq_tar[14]; f[16] = f_neb[16] - feq_neb[16] + feq_tar[16]; +#endif +#endif } #endif // NQ == 19 diff --git a/src/CelerisLab/lbm/kernels/kernel_v2.cu b/src/CelerisLab/lbm/kernels/kernel_v2.cu index 199eefb..4c041ab 100644 --- a/src/CelerisLab/lbm/kernels/kernel_v2.cu +++ b/src/CelerisLab/lbm/kernels/kernel_v2.cu @@ -39,6 +39,7 @@ #include "operators/collision_trt.cuh" #include "operators/collision_mrt.cuh" #include "operators/forcing_guo.cuh" +#include "operators/turbulence_smag.cuh" // --------------------------------------------------------------------------- // Layer 3: Streaming @@ -208,18 +209,31 @@ __global__ void OneStep( } } + // Obstacle nodes: full-way bounce-back (same swap as wall nodes) + if (fl & LEGACY_OBSTACLE) { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float t = f[i]; f[i] = f[i+1]; f[i+1] = t; + } + } + // Collision if (fl & LEGACY_FLUID) { float feq[NQ], Fin[NQ]; compute_feq(rho_n, ux, uy, feq); zero_forcing(Fin); + float omega_col = d_params.omega; + #if USE_LES + omega_col = compute_omega_smag(f, feq, rho_n, omega_col); + #endif + omega_col = fminf(OMEGA_COLLISION_MAX, fmaxf(OMEGA_COLLISION_MIN, omega_col)); #if COLLISION_MODEL == 0 - collide_srt(f, feq, Fin, d_params.omega); + collide_srt(f, feq, Fin, omega_col); #elif COLLISION_MODEL == 1 - collide_trt(f, feq, Fin, d_params.omega); + collide_trt(f, feq, Fin, omega_col); #elif COLLISION_MODEL == 2 - collide_mrt(f, rho_n, ux, uy, Fin, d_params.omega); + collide_mrt(f, rho_n, ux, uy, Fin, omega_col); #endif } @@ -289,7 +303,18 @@ __global__ void OneStep( float feq[NQ], Fin[NQ]; compute_feq(rho_n, ux, uy, uz, feq); zero_forcing(Fin); - collide_srt(f, feq, Fin, d_params.omega); + float omega_col = d_params.omega; +#if USE_LES + omega_col = compute_omega_smag(f, feq, rho_n, omega_col); +#endif + omega_col = fminf(OMEGA_COLLISION_MAX, fmaxf(OMEGA_COLLISION_MIN, omega_col)); + #if COLLISION_MODEL == 0 + collide_srt(f, feq, Fin, omega_col); + #elif COLLISION_MODEL == 1 + collide_trt(f, feq, Fin, omega_col); + #elif COLLISION_MODEL == 2 + collide_mrt(f, rho_n, ux, uy, uz, Fin, omega_col); + #endif } stream_pull_store(k, f, fi_out); diff --git a/src/CelerisLab/lbm/kernels/macros.h b/src/CelerisLab/lbm/kernels/macros.h index dda58fc..d784f34 100644 --- a/src/CelerisLab/lbm/kernels/macros.h +++ b/src/CelerisLab/lbm/kernels/macros.h @@ -60,4 +60,44 @@ // DDF-shifting: 0=off, 1=on #ifndef USE_DDF_SHIFTING #define USE_DDF_SHIFTING 0 +#endif + +// LES model: 0=off, 1=Smagorinsky +#ifndef USE_LES +#define USE_LES 0 +#endif + +// Smagorinsky constant C_s +#ifndef LES_CS +#define LES_CS 0.16f +#endif + +// Inlet profile: 1=parabolic (channel), 0=uniform (external flow) +#ifndef INLET_PROFILE +#define INLET_PROFILE 1 +#endif + +// Outlet mode: 0=non-equilibrium extrapolation, 1=zero-gradient copy (more dissipative) +#ifndef OUTLET_MODE +#define OUTLET_MODE 0 +#endif + +// Outlet blend factor for damped outlet mode (OUTLET_MODE=2): +// f_out = a*(non-eq extrapolation) + (1-a)*(zero-gradient copy) +#ifndef OUTLET_BLEND_ALPHA +#define OUTLET_BLEND_ALPHA 0.70f +#endif + +// Outlet backflow clamp: 0=off, 1=force non-negative streamwise velocity at outlet target +#ifndef OUTLET_BACKFLOW_CLAMP +#define OUTLET_BACKFLOW_CLAMP 1 +#endif + +// Global collision omega guardrails +#ifndef OMEGA_COLLISION_MIN +#define OMEGA_COLLISION_MIN 0.01f +#endif + +#ifndef OMEGA_COLLISION_MAX +#define OMEGA_COLLISION_MAX 1.999f #endif \ No newline at end of file diff --git a/src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh b/src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh index 5aab699..e8e3d80 100644 --- a/src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh +++ b/src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh @@ -31,19 +31,19 @@ __device__ __forceinline__ void collide_mrt(float* __restrict__ g, float omega) { // ----- Relaxation rates ----- - // s_rho = s_jx = s_jy = 1.0 (conserved moments → overwrite to eq) + // s_rho = s_jx = s_jy = 0.0 (strictly conserved in collision) // s_e = s_eps = s_q = 1.2 (kinetic transport) // s_nu = omega (viscosity-related) - const float s_rho = 1.0f; // conserved moment relaxation + const float s_rho = 0.0f; // conserved moments const float s_e = 1.2f; const float s_eps = 1.2f; - const float s_jx = 1.0f; + const float s_jx = 0.0f; const float s_q = 1.2f; - const float s_jy = 1.0f; + const float s_jy = 0.0f; const float s_nu = omega; - // ----- Pressure (from density) ----- - const float p = (g[0]+g[1]+g[2]+g[3]+g[4]+g[5]+g[6]+g[7]+g[8]) / 3.0f; + // ----- Pressure from local density ----- + const float p = rho * (1.0f / 3.0f); // ----- Forward transform: m = M * g (new paired ordering) ----- float m[9]; @@ -61,14 +61,14 @@ __device__ __forceinline__ void collide_mrt(float* __restrict__ g, const float u2 = ux * ux + uy * uy; float meq[9]; meq[0] = 3.0f * p; // ρ - meq[1] = -6.0f * p + 3.0f * RHO * u2; // e - meq[2] = 3.0f * p - 3.0f * RHO * u2; // ε - meq[3] = RHO * ux; // jx - meq[4] = -RHO * ux; // qx - meq[5] = RHO * uy; // jy - meq[6] = -RHO * uy; // qy - meq[7] = RHO * (ux * ux - uy * uy); // pxx - meq[8] = RHO * ux * uy; // pxy + meq[1] = -6.0f * p + 3.0f * rho * u2; // e + meq[2] = 3.0f * p - 3.0f * rho * u2; // ε + meq[3] = rho * ux; // jx + meq[4] = -rho * ux; // qx + meq[5] = rho * uy; // jy + meq[6] = -rho * uy; // qy + meq[7] = rho * (ux * ux - uy * uy); // pxx + meq[8] = rho * ux * uy; // pxy // ----- Relaxation: delta_m[i] = s_i * (meq[i] - m[i]) ----- float dm[9]; @@ -112,21 +112,106 @@ __device__ __forceinline__ void collide_mrt_no_force(float* __restrict__ g, #elif NQ == 19 // --------------------------------------------------------------------------- -// D3Q19 MRT (placeholder – use SRT or TRT until fully validated) +// D3Q19 MRT (tensor-projected multi-mode relaxation) +// +// This implementation performs a true multi-relaxation update by splitting +// non-equilibrium content into three subspaces: +// 1) deviatoric 2nd-order stress modes -> s_nu (shear, controlled by omega) +// 2) isotropic 2nd-order stress mode -> s_bulk (bulk, controlled by omega_bulk) +// 3) higher-order residual modes -> s_high (kinetic damping) +// +// It is formulated in Hermite/tensor space, avoiding explicit 19x19 matrices +// while still relaxing different mode families at different rates. // --------------------------------------------------------------------------- __device__ __forceinline__ void collide_mrt(float* __restrict__ g, float rho, float ux, float uy, float uz, const float* __restrict__ Fin, float omega) { - // TODO: implement D3Q19 MRT with 19-moment Gram–Schmidt basis - // Fall back to SRT for now float feq[19]; compute_feq(rho, ux, uy, uz, feq); - const float c_tau = 1.0f - 0.5f * omega; + + // Relaxation rates + const float s_nu = omega; + const float s_bulk = (d_params.omega_bulk > 0.0f) ? d_params.omega_bulk : 1.2f; + const float s_high = 1.4f; + + const float one_minus_s_nu = 1.0f - s_nu; + const float one_minus_s_bulk = 1.0f - s_bulk; + const float one_minus_s_high = 1.0f - s_high; + + // Non-equilibrium populations + float neq[19]; #pragma unroll for (int i = 0; i < 19; i++) { - g[i] = fmaf(1.0f - omega, g[i], fmaf(omega, feq[i], c_tau * Fin[i])); + neq[i] = g[i] - feq[i]; + } + + // Build non-equilibrium 2nd-order tensor Πneq = Σ (ci ci) (fi-feqi) + float pixx = 0.0f, piyy = 0.0f, pizz = 0.0f; + float pixy = 0.0f, pixz = 0.0f, piyz = 0.0f; + + #pragma unroll + for (int i = 0; i < 19; i++) { + const float ci_x = (float)d_cx[i]; + const float ci_y = (float)d_cy[i]; + const float ci_z = (float)d_cz[i]; + const float fneq = neq[i]; + pixx += fneq * ci_x * ci_x; + piyy += fneq * ci_y * ci_y; + pizz += fneq * ci_z * ci_z; + pixy += fneq * ci_x * ci_y; + pixz += fneq * ci_x * ci_z; + piyz += fneq * ci_y * ci_z; + } + + // Isotropic / deviatoric split of Πneq + const float tr_pi = pixx + piyy + pizz; + const float tr_pi_thrd = tr_pi * (1.0f / 3.0f); + + const float dev_xx = pixx - tr_pi_thrd; + const float dev_yy = piyy - tr_pi_thrd; + const float dev_zz = pizz - tr_pi_thrd; + const float dev_xy = pixy; + const float dev_xz = pixz; + const float dev_yz = piyz; + + // cs^2 = 1/3 => 2*cs^4 = 2/9, inverse = 4.5 + // Project neq onto second-order Hermite basis and relax mode families. + const float proj_pref = 4.5f; + const float c_tau = 1.0f - 0.5f * omega; + + #pragma unroll + for (int i = 0; i < 19; i++) { + const float ci_x = (float)d_cx[i]; + const float ci_y = (float)d_cy[i]; + const float ci_z = (float)d_cz[i]; + + // Q = ci ci - cs^2 I + const float q_xx = ci_x * ci_x - CS2; + const float q_yy = ci_y * ci_y - CS2; + const float q_zz = ci_z * ci_z - CS2; + const float q_xy = ci_x * ci_y; + const float q_xz = ci_x * ci_z; + const float q_yz = ci_y * ci_z; + + // Contractions Q:Πdev and Q:Πiso + const float q_dot_dev = + q_xx * dev_xx + q_yy * dev_yy + q_zz * dev_zz + + 2.0f * (q_xy * dev_xy + q_xz * dev_xz + q_yz * dev_yz); + + const float q_trace = q_xx + q_yy + q_zz; // = |ci|^2 - 1 + const float q_dot_iso = q_trace * tr_pi_thrd; + + const float neq_dev = d_w[i] * proj_pref * q_dot_dev; + const float neq_iso = d_w[i] * proj_pref * q_dot_iso; + const float neq_h = neq[i] - neq_dev - neq_iso; + + g[i] = feq[i] + + one_minus_s_nu * neq_dev + + one_minus_s_bulk * neq_iso + + one_minus_s_high * neq_h + + c_tau * Fin[i]; } } diff --git a/src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh b/src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh new file mode 100644 index 0000000..bc8b00b --- /dev/null +++ b/src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh @@ -0,0 +1,111 @@ +// CelerisLab – operators/turbulence_smag.cuh +// Smagorinsky LES: compute effective omega from local non-equilibrium stress. +// +// Model: +// nu_t = (C_s * Delta)^2 * |S|, Delta = 1 (lattice unit) +// omega_eff = 1 / (3*(nu + nu_t) + 0.5) +// +// |S| is estimated from non-equilibrium second-order moments using tau0. +// ============================================================================ + +#ifndef CELERIS_OPERATORS_TURBULENCE_SMAG_CUH +#define CELERIS_OPERATORS_TURBULENCE_SMAG_CUH + +#ifndef USE_LES +#define USE_LES 0 +#endif + +#ifndef LES_CS +#define LES_CS 0.16f +#endif + +__device__ __forceinline__ float clamp_omega(float w) { + return fminf(1.999f, fmaxf(0.01f, w)); +} + +#if NQ == 9 + +__device__ __forceinline__ float compute_omega_smag(const float* __restrict__ f, + const float* __restrict__ feq, + float rho, + float omega0) +{ + const float rho_safe = fmaxf(rho, 1.0e-12f); + const float tau0 = fmaxf(1.0f / fmaxf(omega0, 1.0e-6f), 0.500001f); + + // Πneq = Σ (ci ci)(fi-feqi) + float pixx = 0.0f, piyy = 0.0f, pixy = 0.0f; + + #pragma unroll + for (int i = 0; i < 9; i++) { + const float fneq = f[i] - feq[i]; + const float cx = (float)d_cx[i]; + const float cy = (float)d_cy[i]; + pixx += fneq * cx * cx; + piyy += fneq * cy * cy; + pixy += fneq * cx * cy; + } + + const float denom = 2.0f * rho_safe * CS2 * tau0; + const float sxx = -pixx / denom; + const float syy = -piyy / denom; + const float sxy = -pixy / denom; + + // |S| = sqrt(2 Sij Sij) + const float s_mag = sqrtf(2.0f * (sxx*sxx + syy*syy + 2.0f*sxy*sxy)); + + const float nu0 = (tau0 - 0.5f) * (1.0f / 3.0f); + const float nut = (LES_CS * LES_CS) * s_mag; + const float nue = nu0 + nut; + return clamp_omega(1.0f / (3.0f * nue + 0.5f)); +} + +#elif NQ == 19 + +__device__ __forceinline__ float compute_omega_smag(const float* __restrict__ f, + const float* __restrict__ feq, + float rho, + float omega0) +{ + const float rho_safe = fmaxf(rho, 1.0e-12f); + const float tau0 = fmaxf(1.0f / fmaxf(omega0, 1.0e-6f), 0.500001f); + + // Πneq = Σ (ci ci)(fi-feqi) + float pixx = 0.0f, piyy = 0.0f, pizz = 0.0f; + float pixy = 0.0f, pixz = 0.0f, piyz = 0.0f; + + #pragma unroll + for (int i = 0; i < 19; i++) { + const float fneq = f[i] - feq[i]; + const float cx = (float)d_cx[i]; + const float cy = (float)d_cy[i]; + const float cz = (float)d_cz[i]; + pixx += fneq * cx * cx; + piyy += fneq * cy * cy; + pizz += fneq * cz * cz; + pixy += fneq * cx * cy; + pixz += fneq * cx * cz; + piyz += fneq * cy * cz; + } + + const float denom = 2.0f * rho_safe * CS2 * tau0; + const float sxx = -pixx / denom; + const float syy = -piyy / denom; + const float szz = -pizz / denom; + const float sxy = -pixy / denom; + const float sxz = -pixz / denom; + const float syz = -piyz / denom; + + // |S| = sqrt(2 Sij Sij) + const float s_mag = sqrtf(2.0f * (sxx*sxx + syy*syy + szz*szz + + 2.0f*(sxy*sxy + sxz*sxz + syz*syz))); + + const float nu0 = (tau0 - 0.5f) * (1.0f / 3.0f); + const float nut = (LES_CS * LES_CS) * s_mag; + const float nue = nu0 + nut; + return clamp_omega(1.0f / (3.0f * nue + 0.5f)); +} + +#endif // NQ + +#endif // CELERIS_OPERATORS_TURBULENCE_SMAG_CUH diff --git a/src/CelerisLab/lbm/kernels/step/one_step_double.cu b/src/CelerisLab/lbm/kernels/step/one_step_double.cu index 960c0f8..b6cf1a6 100644 --- a/src/CelerisLab/lbm/kernels/step/one_step_double.cu +++ b/src/CelerisLab/lbm/kernels/step/one_step_double.cu @@ -69,7 +69,8 @@ __global__ void StreamCollideDouble( // ----- Boundary conditions (inlet/outlet/wall) ----- #if NQ == 9 if (fl & LEGACY_SOLID) { - if (x == 0) { + bool interior_y = (y > 0u) && (y < (unsigned int)(NY - 1)); + if (x == 0 && interior_y) { float f_neb[NQ]; unsigned long k_neb = linear_index(x + 1u, y); for (int i = 0; i < NQ; i++) { @@ -77,18 +78,31 @@ __global__ void StreamCollideDouble( } apply_parabolic_inlet(f, f_neb, (float)y); } - else if (x == NX - 1) { + else if (x == (unsigned int)(NX - 1) && interior_y) { float f_neb[NQ]; unsigned long k_neb = linear_index(x - 1u, y); for (int i = 0; i < NQ; i++) { f_neb[i] = load_ddf(fi_in, index_f(k_neb, (unsigned int)i)); } apply_pressure_outlet(f, f_neb, (float)y); + } else { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float t = f[i]; f[i] = f[i+1]; f[i+1] = t; + } + } + } + + if (fl & LEGACY_OBSTACLE) { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float t = f[i]; f[i] = f[i+1]; f[i+1] = t; } } #elif NQ == 19 if (fl & LEGACY_SOLID) { - if (x == 0) { + bool interior_y = (y > 0u) && (y < (unsigned int)(NY - 1)); + if (x == 0 && interior_y) { float f_neb[NQ]; unsigned long k_neb = linear_index(x + 1u, y, z); for (int i = 0; i < NQ; i++) { @@ -96,13 +110,18 @@ __global__ void StreamCollideDouble( } apply_parabolic_inlet_3d(f, f_neb, (float)y); } - else if (x == NX - 1) { + else if (x == (unsigned int)(NX - 1) && interior_y) { float f_neb[NQ]; unsigned long k_neb = linear_index(x - 1u, y, z); for (int i = 0; i < NQ; i++) { f_neb[i] = load_ddf(fi_in, index_f(k_neb, (unsigned int)i)); } apply_pressure_outlet_3d(f, f_neb, (float)y); + } else { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float t = f[i]; f[i] = f[i+1]; f[i+1] = t; + } } } #endif @@ -126,20 +145,36 @@ __global__ void StreamCollideDouble( #if NQ == 9 compute_feq(rho_n, ux, uy, feq); zero_forcing(Fin); + float omega_col = d_params.omega; +#if USE_LES + omega_col = compute_omega_smag(f, feq, rho_n, omega_col); +#endif + omega_col = fminf(OMEGA_COLLISION_MAX, fmaxf(OMEGA_COLLISION_MIN, omega_col)); // ----- Collision ----- #if COLLISION_MODEL == 0 - collide_srt(f, feq, Fin, d_params.omega); + collide_srt(f, feq, Fin, omega_col); #elif COLLISION_MODEL == 1 - collide_trt(f, feq, Fin, d_params.omega); + collide_trt(f, feq, Fin, omega_col); #elif COLLISION_MODEL == 2 - collide_mrt(f, rho_n, ux, uy, Fin, d_params.omega); + collide_mrt(f, rho_n, ux, uy, Fin, omega_col); #endif #elif NQ == 19 compute_feq(rho_n, ux, uy, uz, feq); zero_forcing(Fin); - collide_srt(f, feq, Fin, d_params.omega); + float omega_col = d_params.omega; +#if USE_LES + omega_col = compute_omega_smag(f, feq, rho_n, omega_col); +#endif + omega_col = fminf(OMEGA_COLLISION_MAX, fmaxf(OMEGA_COLLISION_MIN, omega_col)); +#if COLLISION_MODEL == 0 + collide_srt(f, feq, Fin, omega_col); +#elif COLLISION_MODEL == 1 + collide_trt(f, feq, Fin, omega_col); +#elif COLLISION_MODEL == 2 + collide_mrt(f, rho_n, ux, uy, uz, Fin, omega_col); +#endif #endif } diff --git a/src/CelerisLab/lbm/kernels/step/one_step_esopull.cu b/src/CelerisLab/lbm/kernels/step/one_step_esopull.cu index 907fd63..d93b094 100644 --- a/src/CelerisLab/lbm/kernels/step/one_step_esopull.cu +++ b/src/CelerisLab/lbm/kernels/step/one_step_esopull.cu @@ -70,7 +70,8 @@ __global__ void StreamCollideEsoPull( // ----- Boundary conditions ----- #if NQ == 9 if (fl & LEGACY_SOLID) { - if (x == 0) { + bool interior_y = (y > 0u) && (y < (unsigned int)(NY - 1)); + if (x == 0 && interior_y) { float f_neb[NQ]; unsigned long k_neb = linear_index(x + 1u, y); load_f_esopull(k_neb, f_neb, fi, j, t); // approximate: reuse j @@ -80,19 +81,67 @@ __global__ void StreamCollideEsoPull( load_f_esopull(k_neb, f_neb, fi, j_neb, t); apply_parabolic_inlet(f, f_neb, (float)y); } - else if (x == (unsigned int)(NX - 1)) { + else if (x == (unsigned int)(NX - 1) && interior_y) { unsigned long k_neb = linear_index(x - 1u, y); unsigned long j_neb[NQ]; compute_neighbors(k_neb, j_neb); float f_neb[NQ]; load_f_esopull(k_neb, f_neb, fi, j_neb, t); apply_pressure_outlet(f, f_neb, (float)y); + } else { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float ttmp = f[i]; f[i] = f[i+1]; f[i+1] = ttmp; + } + } + } + + if (fl & LEGACY_OBSTACLE) { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float ttmp = f[i]; f[i] = f[i+1]; f[i+1] = ttmp; } } if (y == 1 || y == (unsigned int)(NY - 2)) { apply_wall_bb_d2q9(y, f); } +#elif NQ == 19 + if (fl & LEGACY_SOLID) { + bool interior_y = (y > 0u) && (y < (unsigned int)(NY - 1)); + if (x == 0 && interior_y) { + unsigned long k_neb = linear_index(x + 1u, y, z); + unsigned long j_neb[NQ]; + compute_neighbors(k_neb, j_neb); + float f_neb[NQ]; + load_f_esopull(k_neb, f_neb, fi, j_neb, t); + apply_parabolic_inlet_3d(f, f_neb, (float)y); + } + else if (x == (unsigned int)(NX - 1) && interior_y) { + unsigned long k_neb = linear_index(x - 1u, y, z); + unsigned long j_neb[NQ]; + compute_neighbors(k_neb, j_neb); + float f_neb[NQ]; + load_f_esopull(k_neb, f_neb, fi, j_neb, t); + apply_pressure_outlet_3d(f, f_neb, (float)y); + } else { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float ttmp = f[i]; f[i] = f[i+1]; f[i+1] = ttmp; + } + } + } + + if (fl & LEGACY_OBSTACLE) { + #pragma unroll + for (int i = 1; i < NQ; i += 2) { + float ttmp = f[i]; f[i] = f[i+1]; f[i+1] = ttmp; + } + } + + if (y == 1 || y == (unsigned int)(NY - 2)) { + apply_wall_bb_d3q19_y(y, f); + } #endif // ----- Forcing ----- @@ -123,13 +172,18 @@ __global__ void StreamCollideEsoPull( float feq[NQ]; #if NQ == 9 compute_feq(rho_n, ux, uy, feq); + float omega_col = d_params.omega; +#if USE_LES + omega_col = compute_omega_smag(f, feq, rho_n, omega_col); +#endif + omega_col = fminf(OMEGA_COLLISION_MAX, fmaxf(OMEGA_COLLISION_MIN, omega_col)); #if COLLISION_MODEL == 0 - collide_srt(f, feq, Fin, d_params.omega); + collide_srt(f, feq, Fin, omega_col); #elif COLLISION_MODEL == 1 - collide_trt(f, feq, Fin, d_params.omega); + collide_trt(f, feq, Fin, omega_col); #elif COLLISION_MODEL == 2 - collide_mrt(f, rho_n, ux, uy, Fin, d_params.omega); + collide_mrt(f, rho_n, ux, uy, Fin, omega_col); #endif #elif NQ == 19 @@ -137,7 +191,18 @@ __global__ void StreamCollideEsoPull( if (force_field != nullptr) fzn += force_field[2*TOTAL_CELLS + k]; apply_guo_velocity_correction(ux, uy, uz, fxn, fyn, fzn, rho_n); compute_feq(rho_n, ux, uy, uz, feq); - collide_srt(f, feq, Fin, d_params.omega); + float omega_col = d_params.omega; +#if USE_LES + omega_col = compute_omega_smag(f, feq, rho_n, omega_col); +#endif + omega_col = fminf(OMEGA_COLLISION_MAX, fmaxf(OMEGA_COLLISION_MIN, omega_col)); +#if COLLISION_MODEL == 0 + collide_srt(f, feq, Fin, omega_col); +#elif COLLISION_MODEL == 1 + collide_trt(f, feq, Fin, omega_col); +#elif COLLISION_MODEL == 2 + collide_mrt(f, rho_n, ux, uy, uz, Fin, omega_col); +#endif #endif } diff --git a/tests/test_d2q9_visual.py b/tests/test_d2q9_visual.py index 8c96c84..9f60b66 100644 --- a/tests/test_d2q9_visual.py +++ b/tests/test_d2q9_visual.py @@ -2,12 +2,13 @@ """ D2Q9 Regression Test — Poiseuille Channel + Cylinder Flow ========================================================== -Uses the ORIGINAL kernel.cu with same grid / BCs. +Uses kernel_v2.cu by default (legacy kernel.cu remains optional fallback). Produces matplotlib figures for visual validation. Usage: python tests/test_d2q9_visual.py --device 2 python tests/test_d2q9_visual.py --device 2 --cylinder + python tests/test_d2q9_visual.py --device 2 --legacy """ import sys, os, argparse, time @@ -47,7 +48,7 @@ INTERFACE_FLAG = 0b00001000 # ━━━━━━━━━━━━━━━━━━━━━━━ Helpers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ def configure_macros(n_objs=0): - """Write macros.h to match original kernel settings.""" + """Write macros.h for D2Q9 regression (v2 default, legacy optional).""" lines = compiler.read_lines(compiler.kernel_path("macros.h")) defs = { 'MULT_GPU': 'False', 'NT': NT, @@ -58,23 +59,31 @@ def configure_macros(n_objs=0): 'DIM': DIM, 'NQ': NQ, 'VIS': VIS, 'RHO': f'{RHO}', 'U0': U0, 'N_OBJS': n_objs, + 'COLLISION_MODEL': 0, # SRT + 'STREAMING_MODEL': 0, # double-buffer + 'STORE_PRECISION': 0, # FP32 + 'USE_DDF_SHIFTING': 0, # keep unshifted for v2 defaults } for name, val in defs.items(): lines = compiler.modify_macro(lines, name, val) compiler.write_lines(compiler.kernel_path("macros.h"), lines) -def extract_fields(ddf_host): - """Compute rho, u, v from host DDF (original const.h ordering). - - The original kernel uses DDF-shifting: stores f_shifted = f - w_i*RHO. - So sum(f_shifted) = rho - RHO (~0 for incompressible flow), - and momentum = sum(e_x * f_shifted) works because sum(w_i * e_x) = 0. - """ +def extract_fields(ddf_host, use_ddf_shifting=False): + """Compute rho, u, v from host DDF in original D2Q9 direction ordering.""" f = ddf_host.reshape(NQ, NY, NX) - rho = np.sum(f, axis=0) + RHO # un-shift: rho = sum(f_shifted) + RHO - u = (f[1] + f[5] + f[8] - f[3] - f[6] - f[7]) / RHO - v = (f[2] + f[5] + f[6] - f[4] - f[7] - f[8]) / RHO + if use_ddf_shifting: + rho = np.sum(f, axis=0) + RHO + denom = np.full_like(rho, RHO) + else: + rho = np.sum(f, axis=0) + denom = rho + + denom_safe = np.where(np.abs(denom) > 1e-12, denom, 1.0) + u = (f[1] + f[5] + f[8] - f[3] - f[6] - f[7]) / denom_safe + v = (f[2] + f[5] + f[6] - f[4] - f[7] - f[8]) / denom_safe + u = np.where(np.abs(denom) > 1e-12, u, 0.0) + v = np.where(np.abs(denom) > 1e-12, v, 0.0) return rho, u, v @@ -132,7 +141,7 @@ def build_cylinder_data(cx, cy, radius): # ━━━━━━━━━━━━━━━━━━━━━━━ Simulation ━━━━━━━━━━━━━━━━━━━━━━━━━━ -def run_simulation(device_id, n_steps, n_objs, flag_host, indx_host, delta_host): +def run_simulation(device_id, n_steps, n_objs, flag_host, indx_host, delta_host, use_legacy=False): """Compile kernel, run LBM, return DDF on host.""" cuda.init() dev = cuda.Device(device_id) @@ -141,11 +150,17 @@ def run_simulation(device_id, n_steps, n_objs, flag_host, indx_host, delta_host) try: configure_macros(n_objs) - compiler.compile_kernel() - ptx_path = compiler.kernel_path("kernel.ptx") + if use_legacy: + compiler.compile_kernel() + ptx_path = compiler.kernel_path("kernel.ptx") + init_name = "InitTubeFlow" + else: + compiler.compile_kernel_v2() + ptx_path = compiler.kernel_path("kernel_v2.ptx") + init_name = "InitTubeFlow_v2" mod = cuda.module_from_file(ptx_path) step_fn = mod.get_function("OneStep") - init_fn = mod.get_function("InitTubeFlow") + init_fn = mod.get_function(init_name) nbytes_ddf = TOTAL * NQ * 4 ddf_gpu = cuda.mem_alloc(nbytes_ddf) @@ -198,9 +213,9 @@ def run_simulation(device_id, n_steps, n_objs, flag_host, indx_host, delta_host) # ━━━━━━━━━━━━━━━━━━━━━━━ Visualization ━━━━━━━━━━━━━━━━━━━━━━━ -def plot_poiseuille(ddf, flag, out_path): +def plot_poiseuille(ddf, flag, out_path, use_ddf_shifting=False): """3-panel figure: velocity mag, u(y) profile, pressure along centerline.""" - rho, u, v = extract_fields(ddf) + rho, u, v = extract_fields(ddf, use_ddf_shifting=use_ddf_shifting) vel_mag = np.sqrt(u**2 + v**2) # Mask solid cells for display @@ -244,9 +259,9 @@ def plot_poiseuille(ddf, flag, out_path): plt.close(fig) -def plot_cylinder(ddf, flag, cx, cy, radius, out_path): +def plot_cylinder(ddf, flag, cx, cy, radius, out_path, use_ddf_shifting=False): """3-panel figure: velocity magnitude (zoom), vorticity, streamlines.""" - rho, u, v = extract_fields(ddf) + rho, u, v = extract_fields(ddf, use_ddf_shifting=use_ddf_shifting) vel_mag = np.sqrt(u**2 + v**2) mask = (flag.reshape(NY, NX) & SOLID_FLAG).astype(bool) @@ -313,6 +328,8 @@ def main(): parser = argparse.ArgumentParser(description='D2Q9 Regression Test') parser.add_argument('--device', type=int, default=2, help='CUDA device ID (default: 2)') + parser.add_argument('--legacy', action='store_true', + help='Use legacy kernel.cu path (default uses kernel_v2.cu)') parser.add_argument('--cylinder', action='store_true', help='Also run cylinder flow test') parser.add_argument('--steps-pois', type=int, default=5000, @@ -324,6 +341,10 @@ def main(): out_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'output') os.makedirs(out_dir, exist_ok=True) + use_ddf_shifting = bool(args.legacy) + mode = 'legacy kernel.cu' if args.legacy else 'kernel_v2.cu' + print(f"\n[Mode] {mode}") + # ---- Test 1: Poiseuille ---- print("\n===== Test 1: Poiseuille Channel Flow =====") flag_pois = np.ones(TOTAL, dtype=np.uint8) @@ -331,11 +352,13 @@ def main(): delta_pois = np.zeros(1, dtype=np.float32) ddf, flag = run_simulation(args.device, args.steps_pois, 0, - flag_pois, indx_pois, delta_pois) - plot_poiseuille(ddf, flag, os.path.join(out_dir, 'poiseuille_d2q9.png')) + flag_pois, indx_pois, delta_pois, + use_legacy=args.legacy) + plot_poiseuille(ddf, flag, os.path.join(out_dir, 'poiseuille_d2q9.png'), + use_ddf_shifting=use_ddf_shifting) # Error metric - rho, u, v = extract_fields(ddf) + rho, u, v = extract_fields(ddf, use_ddf_shifting=use_ddf_shifting) y_arr = np.arange(NY, dtype=float) u_ana = analytical_poiseuille(y_arr) x_mid = NX // 2 @@ -351,9 +374,11 @@ def main(): flag_cyl, indx_cyl, delta_cyl = build_cylinder_data(cyl_cx, cyl_cy, cyl_r) ddf2, flag2 = run_simulation(args.device, args.steps_cyl, 1, - flag_cyl, indx_cyl, delta_cyl) + flag_cyl, indx_cyl, delta_cyl, + use_legacy=args.legacy) plot_cylinder(ddf2, flag2, cyl_cx, cyl_cy, cyl_r, - os.path.join(out_dir, 'cylinder_d2q9.png')) + os.path.join(out_dir, 'cylinder_d2q9.png'), + use_ddf_shifting=use_ddf_shifting) print("\nDone.") diff --git a/tests/test_high_re_validation.py b/tests/test_high_re_validation.py new file mode 100644 index 0000000..9b6fcd3 --- /dev/null +++ b/tests/test_high_re_validation.py @@ -0,0 +1,547 @@ +#!/usr/bin/env python3 +""" +High-Re Validation (kernel_v2) +============================== +Unified validation script for high-Re runs with optional LES. + +Default targets: +- 2D D2Q9: Re=5000 +- 3D D3Q19: Re=3000 + +The script configures macros.h temporarily, compiles kernel_v2, runs the case, +and restores macros.h automatically. +""" + +import argparse +import json +import os +import struct +import sys +import time + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "src")) + +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import numpy as np +import pycuda.driver as cuda + +from CelerisLab.cuda import compiler + +FLUID_FLAG = 0x01 +SOLID_FLAG = 0x02 +OBSTACLE_FLAG = 0x04 + + +def collision_name(model): + return {0: "SRT", 1: "TRT", 2: "MRT"}.get(model, f"M{model}") + + +def make_case_tag(cfg): + les_tag = "LES" if cfg["use_les"] else "NoLES" + return ( + f"{cfg['name']}_Re{int(cfg['target_re'])}_" + f"{collision_name(cfg['collision_model'])}_{les_tag}_" + f"OM{int(cfg['outlet_mode'])}_WMAX{cfg['omega_collision_max']:.3f}" + ) + + +def validate_case(rho): + nan_count = int(np.isnan(rho).sum()) + if nan_count > 0: + return False, "NaN detected" + + rho_min = float(np.min(rho)) + rho_max = float(np.max(rho)) + if rho_min <= 0.0: + return False, "Non-positive density" + if rho_max >= 2.0: + return False, "Density blow-up" + return True, "OK" + + +def plot_case(cfg, host_ddf, out_dir): + nq = cfg["nq"] + nx, ny, nz = cfg["nx"], cfg["ny"], cfg["nz"] + flag = cfg["flag"] + tag = make_case_tag(cfg) + out_path = os.path.join(out_dir, f"{tag}.png") + + if nq == 9: + f = host_ddf.reshape(nq, ny, nx) + rho = np.sum(f, axis=0) + ux = np.zeros_like(rho) + uy = np.zeros_like(rho) + cx = [0, 1, -1, 0, 0, 1, -1, 1, -1] + cy = [0, 0, 0, 1, -1, 1, -1, -1, 1] + for i in range(nq): + ux += cx[i] * f[i] + uy += cy[i] * f[i] + rho_safe = np.where(np.abs(rho) > 1.0e-12, rho, 1.0) + ux /= rho_safe + uy /= rho_safe + vel = np.sqrt(ux * ux + uy * uy) + + mask = flag.reshape(ny, nx) != FLUID_FLAG + vel_m = np.ma.array(vel, mask=mask) + vort = np.gradient(uy, axis=1) - np.gradient(ux, axis=0) + vort_m = np.ma.array(vort, mask=mask) + + fig, axes = plt.subplots(1, 3, figsize=(16, 5)) + + im0 = axes[0].imshow(vel_m, origin="lower", aspect="auto", cmap="turbo") + plt.colorbar(im0, ax=axes[0], label="|u|") + axes[0].set_title("Velocity Magnitude") + + vmax = np.percentile(np.abs(vort[~mask]), 99) if np.any(~mask) else 1e-6 + vmax = max(vmax, 1.0e-6) + im1 = axes[1].imshow(vort_m, origin="lower", aspect="auto", cmap="RdBu_r", vmin=-vmax, vmax=vmax) + plt.colorbar(im1, ax=axes[1], label="vorticity") + axes[1].set_title("Vorticity") + + X, Y = np.meshgrid(np.arange(nx), np.arange(ny)) + ux_s = np.ma.array(ux, mask=mask) + uy_s = np.ma.array(uy, mask=mask) + speed = np.ma.sqrt(ux_s * ux_s + uy_s * uy_s) + axes[2].streamplot(X, Y, ux_s, uy_s, color=speed, cmap="viridis", density=2.0, linewidth=0.7) + axes[2].set_xlim(0, nx) + axes[2].set_ylim(0, ny) + axes[2].set_title("Streamlines") + + fig.suptitle(tag) + fig.tight_layout() + fig.savefig(out_path, dpi=150) + plt.close(fig) + return out_path + + # D3Q19: visualize mid-z slice + f = host_ddf.reshape(nq, nz, ny, nx) + z0 = nz // 2 + fs = f[:, z0, :, :] + rho = np.sum(fs, axis=0) + ux = np.zeros_like(rho) + uy = np.zeros_like(rho) + uz = np.zeros_like(rho) + cx = np.array([0, 1,-1, 0, 0, 0, 0, 1,-1, 1,-1, 0, 0, 1,-1, 1,-1, 0, 0]) + cy = np.array([0, 0, 0, 1,-1, 0, 0, 1,-1, 0, 0, 1,-1,-1, 1, 0, 0, 1,-1]) + cz = np.array([0, 0, 0, 0, 0, 1,-1, 0, 0, 1,-1, 1,-1, 0, 0,-1, 1,-1, 1]) + for i in range(nq): + ux += cx[i] * fs[i] + uy += cy[i] * fs[i] + uz += cz[i] * fs[i] + rho_safe = np.where(np.abs(rho) > 1.0e-12, rho, 1.0) + ux /= rho_safe + uy /= rho_safe + uz /= rho_safe + vel = np.sqrt(ux * ux + uy * uy + uz * uz) + + mask3 = flag.reshape(nz, ny, nx)[z0] != FLUID_FLAG + vel_m = np.ma.array(vel, mask=mask3) + vort = np.gradient(uy, axis=1) - np.gradient(ux, axis=0) + vort_m = np.ma.array(vort, mask=mask3) + + fig, axes = plt.subplots(1, 3, figsize=(16, 5)) + im0 = axes[0].imshow(vel_m, origin="lower", aspect="auto", cmap="turbo") + plt.colorbar(im0, ax=axes[0], label="|u|") + axes[0].set_title("Velocity Magnitude (z-mid)") + + vmax = np.percentile(np.abs(vort[~mask3]), 99) if np.any(~mask3) else 1.0e-6 + vmax = max(vmax, 1.0e-6) + im1 = axes[1].imshow(vort_m, origin="lower", aspect="auto", cmap="RdBu_r", vmin=-vmax, vmax=vmax) + plt.colorbar(im1, ax=axes[1], label="vorticity") + axes[1].set_title("Vorticity (z-mid)") + + X, Y = np.meshgrid(np.arange(nx), np.arange(ny)) + ux_s = np.ma.array(ux, mask=mask3) + uy_s = np.ma.array(uy, mask=mask3) + speed = np.ma.sqrt(ux_s * ux_s + uy_s * uy_s) + axes[2].streamplot(X, Y, ux_s, uy_s, color=speed, cmap="viridis", density=2.0, linewidth=0.7) + axes[2].set_xlim(0, nx) + axes[2].set_ylim(0, ny) + axes[2].set_title("Streamlines (z-mid)") + + fig.suptitle(tag) + fig.tight_layout() + fig.savefig(out_path, dpi=150) + plt.close(fig) + return out_path + + +def compute_vis_omega(reynolds, diameter, u0): + vis = u0 * diameter / reynolds + omega = 1.0 / (3.0 * vis + 0.5) + return vis, omega + + +def set_macros(nx, ny, nz, dim, nq, vis, u0, collision_model, use_les, les_cs, + outlet_mode, outlet_backflow_clamp, outlet_blend_alpha, + omega_collision_max): + lines = compiler.read_lines(compiler.kernel_path("macros.h")) + defs = { + "MULT_GPU": "False", + "NT": 128, + "X_1U": nx, + "Y_1U": ny, + "Z_1U": nz, + "LBtype": "float", + "UX": 1, + "UY": 1, + "UZ": 1, + "NX": nx, + "NY": ny, + "NZ": nz, + "DIM": dim, + "NQ": nq, + "VIS": f"{vis:.10f}", + "RHO": "1.0", + "U0": u0, + "N_OBJS": 0, + "COLLISION_MODEL": collision_model, + "STREAMING_MODEL": 0, + "STORE_PRECISION": 0, + "USE_DDF_SHIFTING": 0, + "USE_LES": int(use_les), + "LES_CS": f"{les_cs:.6f}f", + "INLET_PROFILE": 0, + "OUTLET_MODE": int(outlet_mode), + "OUTLET_BACKFLOW_CLAMP": int(outlet_backflow_clamp), + "OUTLET_BLEND_ALPHA": f"{float(outlet_blend_alpha):.3f}f", + "OMEGA_COLLISION_MAX": f"{float(omega_collision_max):.3f}f", + } + for name, value in defs.items(): + lines = compiler.modify_macro(lines, name, value) + compiler.write_lines(compiler.kernel_path("macros.h"), lines) + + +def build_flags_2d(nx, ny, cx, cy, radius): + n = nx * ny + flag = np.ones(n, dtype=np.uint8) * FLUID_FLAG + for y in range(ny): + for x in range(nx): + k = y * nx + x + if y == 0 or y == ny - 1 or x == 0 or x == nx - 1: + flag[k] = SOLID_FLAG + elif (x - cx) ** 2 + (y - cy) ** 2 < radius ** 2: + flag[k] = OBSTACLE_FLAG + return flag + + +def build_flags_3d(nx, ny, nz, cx, cy, radius): + n = nx * ny * nz + flag = np.ones(n, dtype=np.uint8) * FLUID_FLAG + for z in range(nz): + for y in range(ny): + for x in range(nx): + k = z * ny * nx + y * nx + x + if y == 0 or y == ny - 1 or x == 0 or x == nx - 1: + flag[k] = SOLID_FLAG + elif (x - cx) ** 2 + (y - cy) ** 2 < radius ** 2: + flag[k] = OBSTACLE_FLAG + return flag + + +def run_case(device_id, cfg): + nx, ny, nz = cfg["nx"], cfg["ny"], cfg["nz"] + dim, nq = cfg["dim"], cfg["nq"] + n = nx * ny * nz + + set_macros( + nx=nx, + ny=ny, + nz=nz, + dim=dim, + nq=nq, + vis=cfg["vis"], + u0=cfg["u0"], + collision_model=cfg["collision_model"], + use_les=cfg["use_les"], + les_cs=cfg["les_cs"], + outlet_mode=cfg["outlet_mode"], + outlet_backflow_clamp=cfg["outlet_backflow_clamp"], + outlet_blend_alpha=cfg["outlet_blend_alpha"], + omega_collision_max=cfg["omega_collision_max"], + ) + compiler.compile_kernel_v2() + + cuda.init() + dev = cuda.Device(device_id) + ctx = dev.make_context() + try: + mod = cuda.module_from_file(compiler.kernel_path("kernel_v2.ptx")) + init_fn = mod.get_function("InitTubeFlow_v2") + step_fn = mod.get_function("OneStep") + + params_ptr, params_size = mod.get_global("d_params") + params_data = struct.pack( + "IIIQfffffffI", + nx, + ny, + nz, + n, + cfg["omega"], + 1.1, + 0.0, + 0.0, + 0.0, + 1.0, + cfg["u0"], + 0, + ) + if len(params_data) < params_size: + params_data += b"\x00" * (params_size - len(params_data)) + cuda.memcpy_htod(params_ptr, params_data) + + fsize = n * nq * 4 + d_fi = cuda.mem_alloc(fsize) + d_fi2 = cuda.mem_alloc(fsize) + d_flag = cuda.mem_alloc(n) + d_indx = cuda.mem_alloc(n * 4) + d_delta = cuda.mem_alloc(4) + d_action = cuda.mem_alloc(4) + d_obs = cuda.mem_alloc(4) + + cuda.memset_d32(d_indx, 0, n) + cuda.memset_d32(d_delta, 0, 1) + cuda.memset_d32(d_action, 0, 1) + cuda.memset_d32(d_obs, 0, 1) + + block = (128, 1, 1) + grid = ((nx + 127) // 128, ny, nz) + + init_fn(d_flag, d_fi, block=block, grid=grid) + cuda.memcpy_dtod(d_fi2, d_fi, fsize) + + cuda.memcpy_htod(d_flag, cfg["flag"]) + + t0 = time.time() + for step in range(cfg["steps"]): + step_fn(d_flag, d_fi, d_fi2, d_indx, d_delta, d_action, d_obs, block=block, grid=grid) + d_fi, d_fi2 = d_fi2, d_fi + + if (step + 1) % cfg["report_every"] == 0: + cuda.Context.synchronize() + host = np.empty(n * nq, dtype=np.float32) + cuda.memcpy_dtoh(host, d_fi) + if nq == 9: + rho = host.reshape(nq, ny, nx).sum(axis=0) + c = float(rho[ny // 2, nx // 2]) + else: + rho = host.reshape(nq, nz, ny, nx).sum(axis=0) + c = float(rho[nz // 2, ny // 2, nx // 2]) + nan_count = int(np.isnan(rho).sum()) + print(f" step {step+1:7d}: rho_center={c:.6f}, nan={nan_count}") + if nan_count > 0: + break + + cuda.Context.synchronize() + elapsed = time.time() - t0 + + host = np.empty(n * nq, dtype=np.float32) + cuda.memcpy_dtoh(host, d_fi) + if nq == 9: + rho = host.reshape(nq, ny, nx).sum(axis=0) + center = float(rho[ny // 2, nx // 2]) + else: + rho = host.reshape(nq, nz, ny, nx).sum(axis=0) + center = float(rho[nz // 2, ny // 2, nx // 2]) + + ok, reason = validate_case(rho) + plot_path = None + if cfg.get("save_plot", True): + plot_path = plot_case(cfg, host, cfg["out_dir"]) + + return { + "case_tag": make_case_tag(cfg), + "name": cfg["name"], + "target_re": cfg["target_re"], + "steps": cfg["steps"], + "mlups": float(n * cfg["steps"] / elapsed / 1e6), + "nan_count": int(np.isnan(rho).sum()), + "rho_center": center, + "rho_min": float(np.nanmin(rho)), + "rho_max": float(np.nanmax(rho)), + "omega": cfg["omega"], + "vis": cfg["vis"], + "collision_model": cfg["collision_model"], + "use_les": bool(cfg["use_les"]), + "les_cs": float(cfg["les_cs"]), + "outlet_mode": int(cfg["outlet_mode"]), + "outlet_backflow_clamp": int(cfg["outlet_backflow_clamp"]), + "outlet_blend_alpha": float(cfg["outlet_blend_alpha"]), + "omega_collision_max": float(cfg["omega_collision_max"]), + "pass": bool(ok), + "reason": reason, + "plot_path": plot_path, + } + finally: + ctx.pop() + + +def build_case_2d(re2d, steps2d, collision_model, use_les, les_cs, out_dir, + outlet_mode, outlet_backflow_clamp, outlet_blend_alpha, + omega_collision_max): + nx, ny, nz = 512, 256, 1 + cx, cy, radius = 128.0, 128.0, 24.0 + u0 = 0.03 + vis, omega = compute_vis_omega(re2d, 2.0 * radius, u0) + return { + "name": "2D_D2Q9_highRe", + "dim": 2, + "nq": 9, + "nx": nx, + "ny": ny, + "nz": nz, + "flag": build_flags_2d(nx, ny, cx, cy, radius), + "u0": u0, + "vis": vis, + "omega": omega, + "steps": steps2d, + "report_every": max(steps2d // 10, 1), + "collision_model": collision_model, + "use_les": use_les, + "les_cs": les_cs, + "outlet_mode": int(outlet_mode), + "outlet_backflow_clamp": int(outlet_backflow_clamp), + "outlet_blend_alpha": float(outlet_blend_alpha), + "omega_collision_max": float(omega_collision_max), + "target_re": re2d, + "save_plot": True, + "out_dir": out_dir, + } + +def build_case_3d(re3d, steps3d, collision_model, use_les, les_cs, out_dir, + outlet_mode, outlet_backflow_clamp, outlet_blend_alpha, + omega_collision_max): + nx, ny, nz = 256, 128, 32 + cx, cy, radius = 64.0, 64.0, 12.0 + u0 = 0.04 + vis, omega = compute_vis_omega(re3d, 2.0 * radius, u0) + return { + "name": "3D_D3Q19_highRe", + "dim": 3, + "nq": 19, + "nx": nx, + "ny": ny, + "nz": nz, + "flag": build_flags_3d(nx, ny, nz, cx, cy, radius), + "u0": u0, + "vis": vis, + "omega": omega, + "steps": steps3d, + "report_every": max(steps3d // 10, 1), + "collision_model": collision_model, + "use_les": use_les, + "les_cs": les_cs, + "outlet_mode": int(outlet_mode), + "outlet_backflow_clamp": int(outlet_backflow_clamp), + "outlet_blend_alpha": float(outlet_blend_alpha), + "omega_collision_max": float(omega_collision_max), + "target_re": re3d, + "save_plot": True, + "out_dir": out_dir, + } + + +def build_comprehensive_cases(args, out_dir): + cases = [] + # Coverage matrix at moderate Re to verify all changed pathways. + for cm in (0, 1, 2): + for les in (0, 1): + cases.append(build_case_2d(re2d=200.0, steps2d=args.matrix_steps2d, + collision_model=cm, use_les=les, + les_cs=args.les_cs, out_dir=out_dir, + outlet_mode=args.outlet_mode, + outlet_backflow_clamp=1, + outlet_blend_alpha=args.outlet_blend_alpha, + omega_collision_max=args.omega_collision_max)) + cases.append(build_case_3d(re3d=200.0, steps3d=args.matrix_steps3d, + collision_model=cm, use_les=les, + les_cs=args.les_cs, out_dir=out_dir, + outlet_mode=args.outlet_mode, + outlet_backflow_clamp=1, + outlet_blend_alpha=args.outlet_blend_alpha, + omega_collision_max=args.omega_collision_max)) + return cases + + +def main(): + parser = argparse.ArgumentParser(description="High-Re validation for kernel_v2") + parser.add_argument("--device", type=int, default=0) + parser.add_argument("--re2d", type=float, default=5000.0) + parser.add_argument("--re3d", type=float, default=3000.0) + parser.add_argument("--steps2d", type=int, default=10000) + parser.add_argument("--steps3d", type=int, default=20000) + parser.add_argument("--collision", type=int, default=1, choices=[0, 1, 2], + help="0=SRT, 1=TRT, 2=MRT") + parser.add_argument("--use-les", action="store_true", default=True, + help="Enable Smagorinsky LES") + parser.add_argument("--no-les", action="store_false", dest="use_les") + parser.add_argument("--les-cs", type=float, default=0.16) + parser.add_argument("--outlet-mode", type=int, default=0, choices=[0, 1, 2], + help="0=non-equilibrium extrapolation, 1=zero-gradient copy, 2=damped blend") + parser.add_argument("--outlet-blend-alpha", type=float, default=0.70, + help="Blend alpha for outlet-mode 2") + parser.add_argument("--omega-collision-max", type=float, default=1.999, + help="Upper clamp for collision omega") + parser.add_argument("--only", choices=["2d", "3d", "both"], default="both") + parser.add_argument("--comprehensive", action="store_true", + help="Run coverage matrix: SRT/TRT/MRT x LES on/off for 2D and 3D") + parser.add_argument("--matrix-steps2d", type=int, default=1000) + parser.add_argument("--matrix-steps3d", type=int, default=600) + args = parser.parse_args() + + macro_path = compiler.kernel_path("macros.h") + macro_backup = compiler.read_lines(macro_path) + + out_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "output") + os.makedirs(out_dir, exist_ok=True) + out_json = os.path.join(out_dir, "high_re_validation_summary.json") + + try: + results = [] + + if args.only in ("2d", "both"): + c2 = build_case_2d(args.re2d, args.steps2d, args.collision, args.use_les, + args.les_cs, out_dir, args.outlet_mode, 1, + args.outlet_blend_alpha, args.omega_collision_max) + print("\n=== Running 2D high-Re case ===") + print(f" target Re={args.re2d:.1f}, vis={c2['vis']:.6e}, omega={c2['omega']:.6f}") + results.append(run_case(args.device, c2)) + + if args.only in ("3d", "both"): + c3 = build_case_3d(args.re3d, args.steps3d, args.collision, args.use_les, + args.les_cs, out_dir, args.outlet_mode, 1, + args.outlet_blend_alpha, args.omega_collision_max) + print("\n=== Running 3D high-Re case ===") + print(f" target Re={args.re3d:.1f}, vis={c3['vis']:.6e}, omega={c3['omega']:.6f}") + results.append(run_case(args.device, c3)) + + if args.comprehensive: + print("\n=== Running comprehensive coverage matrix ===") + for cfg in build_comprehensive_cases(args, out_dir): + print(f" {cfg['name']} Re={cfg['target_re']:.1f} " + f"{collision_name(cfg['collision_model'])} LES={int(cfg['use_les'])}") + results.append(run_case(args.device, cfg)) + + with open(out_json, "w", encoding="utf-8") as f: + json.dump(results, f, indent=2) + + print("\n=== Summary ===") + n_pass = 0 + for r in results: + if r["pass"]: + n_pass += 1 + print(f"{r['name']}: nan={r['nan_count']}, rho_center={r['rho_center']:.6f}, " + f"rho[min,max]=[{r['rho_min']:.6f}, {r['rho_max']:.6f}], " + f"MLUPS={r['mlups']:.1f}, pass={r['pass']} ({r['reason']})") + if r.get("plot_path"): + print(f" plot: {r['plot_path']}") + print(f"Pass rate: {n_pass}/{len(results)}") + print(f"Saved: {out_json}") + finally: + compiler.write_lines(macro_path, macro_backup) + + +if __name__ == "__main__": + main()