Use temp cache in pressurecell
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
1136014b1f
commit
aa6058ed00
@ -24,7 +24,7 @@ LIBRARY_API void pressurecell_add_density(Environment * environment, Chunk * chu
|
||||
LIBRARY_API void pressurecell_diffuse_density(Environment * environment, Chunk * chunk){
|
||||
int x, y, z;
|
||||
float * densityArr = chunk->d[CENTER_LOC];
|
||||
float * densityTemp = chunk->d0[CENTER_LOC];
|
||||
float * densityTemp = chunk->dTempCache;
|
||||
for(z = 1; z < DIM-1; z++){
|
||||
for(y = 1; y < DIM-1; y++){
|
||||
for(x = 1; x < DIM-1; x++){
|
||||
|
||||
@ -33,9 +33,9 @@ LIBRARY_API void pressurecell_diffuse_velocity(Environment * environment, Chunk
|
||||
float * uArr = chunk->u[CENTER_LOC];
|
||||
float * vArr = chunk->v[CENTER_LOC];
|
||||
float * wArr = chunk->w[CENTER_LOC];
|
||||
float * uTemp = chunk->u0[CENTER_LOC];
|
||||
float * vTemp = chunk->v0[CENTER_LOC];
|
||||
float * wTemp = chunk->w0[CENTER_LOC];
|
||||
float * uTemp = chunk->uTempCache;
|
||||
float * vTemp = chunk->vTempCache;
|
||||
float * wTemp = chunk->wTempCache;
|
||||
for(z = 1; z < DIM-1; z++){
|
||||
for(y = 1; y < DIM-1; y++){
|
||||
for(x = 1; x < DIM-1; x++){
|
||||
|
||||
@ -51,7 +51,7 @@ int fluid_sim_pressurecell_diffuse_test1(){
|
||||
// cell that originall had values
|
||||
//
|
||||
expected = MAX_FLUID_VALUE - FLUID_PRESSURECELL_DIFFUSION_CONSTANT * 6 * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(4,4,4)];
|
||||
actual = currentChunk->dTempCache[IX(4,4,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (4,4,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
@ -61,37 +61,37 @@ int fluid_sim_pressurecell_diffuse_test1(){
|
||||
// neighbors
|
||||
//
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(3,4,4)];
|
||||
actual = currentChunk->dTempCache[IX(3,4,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (3,4,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(5,4,4)];
|
||||
actual = currentChunk->dTempCache[IX(5,4,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (5,4,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(4,3,4)];
|
||||
actual = currentChunk->dTempCache[IX(4,3,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (4,3,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(4,5,4)];
|
||||
actual = currentChunk->dTempCache[IX(4,5,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (4,5,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(4,4,3)];
|
||||
actual = currentChunk->dTempCache[IX(4,4,3)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (4,4,3)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->d0[CENTER_LOC][IX(4,4,5)];
|
||||
actual = currentChunk->dTempCache[IX(4,4,5)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse density correctly (4,4,5)! expected: %f actual: %f \n");
|
||||
}
|
||||
@ -127,7 +127,7 @@ int fluid_sim_pressurecell_diffuse_test2(){
|
||||
// cell that originall had values
|
||||
//
|
||||
expected = MAX_FLUID_VALUE - FLUID_PRESSURECELL_DIFFUSION_CONSTANT * 6 * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(4,4,4)];
|
||||
actual = currentChunk->uTempCache[IX(4,4,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (4,4,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
@ -137,37 +137,37 @@ int fluid_sim_pressurecell_diffuse_test2(){
|
||||
// neighbors
|
||||
//
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(3,4,4)];
|
||||
actual = currentChunk->uTempCache[IX(3,4,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (3,4,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(5,4,4)];
|
||||
actual = currentChunk->uTempCache[IX(5,4,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (5,4,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(4,3,4)];
|
||||
actual = currentChunk->uTempCache[IX(4,3,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (4,3,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(4,5,4)];
|
||||
actual = currentChunk->uTempCache[IX(4,5,4)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (4,5,4)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(4,4,3)];
|
||||
actual = currentChunk->uTempCache[IX(4,4,3)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (4,4,3)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
expected = FLUID_PRESSURECELL_DIFFUSION_CONSTANT * MAX_FLUID_VALUE;
|
||||
actual = currentChunk->u0[CENTER_LOC][IX(4,4,5)];
|
||||
actual = currentChunk->uTempCache[IX(4,4,5)];
|
||||
if(fabs(expected - actual) > FLUID_PRESSURE_CELL_ERROR_MARGIN){
|
||||
rVal += assertEqualsFloat(expected,actual,"Failed to diffuse velocity correctly (4,4,5)! expected: %f actual: %f \n");
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user