rtx-cfd legacy GPU: kernel outputs were device-buffer CLONES (every write lost) — the buffers are borrowed mutably now; the Poisson kernels keep boundary Dirichlet values; tests: the advection pulse marched 50 steps, the Jacobi budget 20k, the reduction reference in f64
CI / Build CPU-Only (Explicit) (push) Failing after 5s
Documentation / Build User Guide (push) Successful in 5s
Documentation / Build API Documentation (push) Failing after 5s
CI / Format Check (push) Failing after 10s
CI / Build (ubuntu-latest) (push) Failing after 1m22s
CI / Clippy Check (push) Failing after 1m38s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m50s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
CI / Build CPU-Only (Explicit) (push) Failing after 5s
Documentation / Build User Guide (push) Successful in 5s
Documentation / Build API Documentation (push) Failing after 5s
CI / Format Check (push) Failing after 10s
CI / Build (ubuntu-latest) (push) Failing after 1m22s
CI / Clippy Check (push) Failing after 1m38s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m50s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
This commit is contained in:
@@ -147,7 +147,7 @@ impl PisoGpuSolver {
|
||||
fn copy_to_gpu(&self, flow_field: &FlowField) -> CfdResult<()> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// Convert nalgebra matrices to flat vectors
|
||||
@@ -171,7 +171,7 @@ impl PisoGpuSolver {
|
||||
fn copy_from_gpu(&self, flow_field: &mut FlowField) -> CfdResult<()> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// Copy from GPU
|
||||
@@ -271,7 +271,7 @@ impl PisoGpuSolver {
|
||||
let (nx, ny) = {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
(buffers.nx, buffers.ny)
|
||||
};
|
||||
@@ -313,7 +313,7 @@ impl PisoGpuSolver {
|
||||
let residual_norm = {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
self.matrix_ops_kernel.vector_norm(&buffers.mass_source)?
|
||||
};
|
||||
@@ -464,8 +464,8 @@ impl PisoGpuSolver {
|
||||
.stream()
|
||||
.launch_builder(&func)
|
||||
.arg(&buffers.pressure_correction)
|
||||
.arg(&mut buffers.u_correction.clone())
|
||||
.arg(&mut buffers.v_correction.clone())
|
||||
.arg(&mut buffers.u_correction)
|
||||
.arg(&mut buffers.v_correction)
|
||||
.arg(&correction_factor)
|
||||
.arg(&dx)
|
||||
.arg(&dy)
|
||||
|
||||
@@ -136,7 +136,7 @@ impl SimpleGpuSolver {
|
||||
fn copy_to_gpu(&self, flow_field: &FlowField) -> CfdResult<()> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// Convert nalgebra matrices to flat vectors
|
||||
@@ -163,7 +163,7 @@ impl SimpleGpuSolver {
|
||||
fn copy_from_gpu(&self, flow_field: &mut FlowField) -> CfdResult<()> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// Copy from GPU
|
||||
@@ -300,7 +300,7 @@ impl SimpleGpuSolver {
|
||||
async fn gpu_pressure_update(&self, pressure_relaxation: f32) -> CfdResult<()> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// p = p + α_p * p' (pressure update with relaxation)
|
||||
|
||||
Reference in New Issue
Block a user