From abb48d7a1a0acace520f3031b1d489405e43dc11 Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 17 Dec 2024 17:21:29 -0500 Subject: [PATCH] condense normalize loops --- .../fluid/sim/pressurecell/normalization.h | 5 ----- .../c/src/fluid/sim/pressurecell/normalization.c | 16 ++++++---------- .../c/src/fluid/sim/pressurecell/pressurecell.c | 14 +++++++++----- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/main/c/includes/fluid/sim/pressurecell/normalization.h b/src/main/c/includes/fluid/sim/pressurecell/normalization.h index 7563ffc0..8e730aee 100644 --- a/src/main/c/includes/fluid/sim/pressurecell/normalization.h +++ b/src/main/c/includes/fluid/sim/pressurecell/normalization.h @@ -11,11 +11,6 @@ */ LIBRARY_API void fluid_pressurecell_calculate_expected_intake(Environment * env, Chunk * chunk); -/** - * Calculates the ratio to normalize the chunk by - */ -LIBRARY_API void fluid_pressurecell_calculate_normalization_ratio(Environment * env, Chunk * chunk); - /** * Normalizes the chunk */ diff --git a/src/main/c/src/fluid/sim/pressurecell/normalization.c b/src/main/c/src/fluid/sim/pressurecell/normalization.c index 17f10686..b8b7d9de 100644 --- a/src/main/c/src/fluid/sim/pressurecell/normalization.c +++ b/src/main/c/src/fluid/sim/pressurecell/normalization.c @@ -26,10 +26,11 @@ LIBRARY_API void fluid_pressurecell_calculate_expected_intake(Environment * env, /** - * Calculates the ratio to normalize the chunk by + * Normalizes the chunk */ -LIBRARY_API void fluid_pressurecell_calculate_normalization_ratio(Environment * env, Chunk * chunk){ +LIBRARY_API void fluid_pressurecell_normalize_chunk(Environment * env, Chunk * chunk){ int x, y, z; + //calculate ratio double sum; for(x = 1; x < DIM-1; x++){ for(y = 1; y < DIM-1; y++){ @@ -39,7 +40,6 @@ LIBRARY_API void fluid_pressurecell_calculate_normalization_ratio(Environment * } } double expected = chunk->pressureCellData.densitySum; - env->state.existingDensity = env->state.existingDensity + expected; if(sum > 0){ double normalizationRatio = expected / sum; chunk->pressureCellData.normalizationRatio = normalizationRatio; @@ -49,13 +49,7 @@ LIBRARY_API void fluid_pressurecell_calculate_normalization_ratio(Environment * } chunk->pressureCellData.normalizationRatio = 1.0f; } -} - -/** - * Normalizes the chunk - */ -LIBRARY_API void fluid_pressurecell_normalize_chunk(Environment * env, Chunk * chunk){ - int x, y, z; + //apply ratio double ratio = chunk->pressureCellData.normalizationRatio; for(x = 1; x < DIM-1; x++){ for(y = 1; y < DIM-1; y++){ @@ -64,6 +58,8 @@ LIBRARY_API void fluid_pressurecell_normalize_chunk(Environment * env, Chunk * c } } } + //metadata work + env->state.existingDensity = env->state.existingDensity + expected; } diff --git a/src/main/c/src/fluid/sim/pressurecell/pressurecell.c b/src/main/c/src/fluid/sim/pressurecell/pressurecell.c index daab4520..696a0e8b 100644 --- a/src/main/c/src/fluid/sim/pressurecell/pressurecell.c +++ b/src/main/c/src/fluid/sim/pressurecell/pressurecell.c @@ -145,16 +145,20 @@ LIBRARY_API void fluid_pressurecell_simulate( } + // + // Normalization Phase + // + for(int i = 0; i < numChunks; i++){ + Chunk * currentChunk = chunks[i]; + fluid_pressurecell_normalize_chunk(environment,currentChunk); + } + + // // Setup for next iteration // for(int i = 0; i < numChunks; i++){ Chunk * currentChunk = chunks[i]; - fluid_pressurecell_calculate_normalization_ratio(environment,currentChunk); - } - for(int i = 0; i < numChunks; i++){ - Chunk * currentChunk = chunks[i]; - fluid_pressurecell_normalize_chunk(environment,currentChunk); pressurecell_copy_for_next_frame(environment,currentChunk); fluid_pressurecell_clearArr(currentChunk->d0[CENTER_LOC]); fluid_pressurecell_clearArr(currentChunk->u0[CENTER_LOC]);