don't cache pressure

This commit is contained in:
austin 2025-01-19 16:27:27 -05:00
parent a44d04ed6c
commit 69528eeb3e
9 changed files with 20 additions and 19 deletions

View File

@ -29,7 +29,7 @@
/**
* Updates the bounds of the chunk based on its neighbors
*/
LIBRARY_API void pressurecell_update_bounds(Environment * environment, Chunk * chunk);
LIBRARY_API void fluid_pressurecell_update_bounds(Environment * environment, Chunk * chunk);
/**
* Updates the interest tree for this chunk

View File

@ -10,17 +10,17 @@
/**
* Adds density from the delta buffer to this chunk
*/
LIBRARY_API void pressurecell_add_density(Environment * environment, Chunk * chunk);
LIBRARY_API void fluid_pressurecell_add_density(Environment * environment, Chunk * chunk);
/**
* Diffuses the density in this chunk
*/
LIBRARY_API void pressurecell_diffuse_density(Environment * environment, Chunk * chunk);
LIBRARY_API void fluid_pressurecell_diffuse_density(Environment * environment, Chunk * chunk);
/**
* Advects the density of this chunk
*/
LIBRARY_API void pressurecell_advect_density(Environment * environment, Chunk * chunk);
LIBRARY_API void fluid_pressurecell_advect_density(Environment * environment, Chunk * chunk);
#endif

View File

@ -135,7 +135,7 @@ void fluid_pressurecell_set_bounds_zero(
/**
* Updates the bounds of the chunk based on its neighbors
*/
LIBRARY_API void pressurecell_update_bounds(Environment * environment, Chunk * chunk){
LIBRARY_API void fluid_pressurecell_update_bounds(Environment * environment, Chunk * chunk){
// fluid_pressurecell_set_bounds_legacy(environment,FLUID_PRESSURECELL_BOUND_NO_DIR,chunk->d[CENTER_LOC]);
// fluid_pressurecell_set_bounds_legacy(environment,FLUID_PRESSURECELL_BOUND_NO_DIR,chunk->d0[CENTER_LOC]);

View File

@ -7,7 +7,7 @@
/**
* Adds density from the delta buffer to this chunk
*/
LIBRARY_API void pressurecell_add_density(Environment * environment, Chunk * chunk){
LIBRARY_API void fluid_pressurecell_add_density(Environment * environment, Chunk * chunk){
int x, y, z;
float * densityArr = chunk->d[CENTER_LOC];
float * sourceArr = chunk->d0[CENTER_LOC];
@ -23,7 +23,7 @@ LIBRARY_API void pressurecell_add_density(Environment * environment, Chunk * chu
/**
* Diffuses the density in this chunk
*/
LIBRARY_API void pressurecell_diffuse_density(Environment * environment, Chunk * chunk){
LIBRARY_API void fluid_pressurecell_diffuse_density(Environment * environment, Chunk * chunk){
int x, y, z;
float * densityArr = chunk->d[CENTER_LOC];
float * densityTemp = chunk->dTempCache;
@ -152,7 +152,7 @@ LIBRARY_API void pressurecell_diffuse_density(Environment * environment, Chunk *
/**
* Advects the density of this chunk
*/
LIBRARY_API void pressurecell_advect_density(Environment * environment, Chunk * chunk){
LIBRARY_API void fluid_pressurecell_advect_density(Environment * environment, Chunk * chunk){
int x, y, z;
float * densityArr = chunk->d[CENTER_LOC];
float * densityTemp = chunk->dTempCache;

View File

@ -43,12 +43,13 @@ LIBRARY_API void fluid_pressurecell_simulate(
for(int i = 0; i < numChunks; i++){
Chunk * currentChunk = chunks[i];
fluid_pressurecell_clearArr(currentChunk->pressureTempCache);
fluid_pressurecell_clearArr(currentChunk->pressureCache[CENTER_LOC]);
fluid_pressurecell_clearArr(currentChunk->dTempCache);
fluid_pressurecell_clearArr(currentChunk->uTempCache);
fluid_pressurecell_clearArr(currentChunk->vTempCache);
fluid_pressurecell_clearArr(currentChunk->wTempCache);
fluid_pressurecell_calculate_expected_intake(environment,currentChunk);
pressurecell_update_bounds(environment,currentChunk);
fluid_pressurecell_update_bounds(environment,currentChunk);
// pressurecell_update_interest(environment,currentChunk);
}
@ -126,14 +127,14 @@ LIBRARY_API void fluid_pressurecell_simulate(
// fflush(stdout);
for(int i = 0; i < numChunks; i++){
Chunk * currentChunk = chunks[i];
pressurecell_add_density(environment,currentChunk);
fluid_pressurecell_add_density(environment,currentChunk);
}
// printf("diff dens\n");
// fflush(stdout);
for(int i = 0; i < numChunks; i++){
Chunk * currentChunk = chunks[i];
pressurecell_diffuse_density(environment,currentChunk);
fluid_pressurecell_diffuse_density(environment,currentChunk);
}
// printf("adv dens\n");
@ -141,7 +142,7 @@ LIBRARY_API void fluid_pressurecell_simulate(
for(int i = 0; i < numChunks; i++){
//uTemp->d
Chunk * currentChunk = chunks[i];
pressurecell_advect_density(environment,currentChunk);
fluid_pressurecell_advect_density(environment,currentChunk);
if(FLUID_PRESSURECELL_ENABLE_RECAPTURE){
//d->dTemp->d
fluid_pressurecell_recapture_density(environment,currentChunk);

View File

@ -43,7 +43,7 @@ int fluid_sim_pressurecell_add_source_test1(){
currentChunk->u[CENTER_LOC][IX(4,4,4)] = MAX_FLUID_VALUE;
//actually simulate
pressurecell_add_density(env,currentChunk);
fluid_pressurecell_add_density(env,currentChunk);
//test the result
float expected, actual;

View File

@ -44,7 +44,7 @@ int fluid_sim_pressurecell_advection_test1(){
currentChunk->u[CENTER_LOC][IX(5,4,4)] = FLUID_PRESSURECELL_MAX_VELOCITY;
//actually simulate
pressurecell_advect_density(env,currentChunk);
fluid_pressurecell_advect_density(env,currentChunk);
//test the result
float expected, actual;

View File

@ -85,7 +85,7 @@ int fluid_sim_pressurecell_bounds_test2(){
//actually simulate
pressurecell_enforce_bounds(env,currentChunk);
pressurecell_advect_density(env,currentChunk);
fluid_pressurecell_advect_density(env,currentChunk);
//test the result
float expected, actual;
@ -124,7 +124,7 @@ int fluid_sim_pressurecell_bounds_test3(){
currentChunk->bounds[CENTER_LOC][IX(1,0,1)] = 1.0f;
//actually simulate
pressurecell_advect_density(env,currentChunk);
fluid_pressurecell_advect_density(env,currentChunk);
//test the result
float expected, actual;

View File

@ -43,7 +43,7 @@ int fluid_sim_pressurecell_diffuse_test1(){
float diffuseConst = FLUID_PRESSURECELL_DIFFUSION_CONSTANT / (FLUID_PRESSURECELL_SPACING * FLUID_PRESSURECELL_SPACING);
//actually simulate
pressurecell_diffuse_density(env,currentChunk);
fluid_pressurecell_diffuse_density(env,currentChunk);
//test the result
float expected, actual;
@ -204,7 +204,7 @@ int fluid_sim_pressurecell_diffuse_test3(){
bounds[IX(4,5,4)] = 1.0f;
//actually simulate
pressurecell_diffuse_density(env,currentChunk);
fluid_pressurecell_diffuse_density(env,currentChunk);
//test the result
float expected, actual;
@ -289,7 +289,7 @@ int fluid_sim_pressurecell_diffuse_test4(){
bounds[IX(4,4,5)] = 1.0f;
//actually simulate
pressurecell_diffuse_density(env,currentChunk);
fluid_pressurecell_diffuse_density(env,currentChunk);
//test the result
float expected, actual;